Session
Steering Massively Parallel Simulations Under Python
Patrick J. Miller, Computer Scientist, Lawrence Livermore National Laboratory
Track: Python
Date: Wednesday, July 25
Time: 4:15pm
- 4:45pm
Location: Bel Aire North
We examine how the addition of an explicit MPI messaging layer to the
Python language allows developers to craft flexible and powerful
interfaces to high performance, massively parallel (1000+ processors)
simulation codes. In designing these code, a great deal of care is
given to the performance and capability of the underlying physics or
mathematics of the simulation. Just as important, however, is the
framework that ties the various parts of the simulation together. A
framework must be both flexible and extensible. Flexible to allow
components of the simulation to work together in (perhaps)
unanticipated ways. Extensible to allow new components and algorithms
to be quickly prototyped or added to the simulation. We use the power
of the scripting language Python to form the core of our framework.
Python is more complete than a handcrafted simulation control
language would otherwise be. Python becomes the glue that combines
otherwise unrelated components for computation, graphics, and analysis
of data. We present how using pyMPI, an Open Source extension to
Python, we can control and co-ordinate SPMD and MIMD simulations up to
thousands of processors. We will also present PYFFLE, an Open Source
extension generator, which we use to integrate C++ and FORTRAN
simulation components into Python. We will also discuss initial
findings from our use of PyCOT, a Python to C++ translator which we
will use to accelerate user extensions written in Python.