PPM Library

The PPM Library and PPML Language

The Parallel Particle Mesh (PPM) library provides a transparent parallelization middleware for particle-mesh simulations. PPML is a domain-specific programming language for parallel particle-mesh simulations on distributed-memory computers. It implements the PPM abstractions and allows rapid prototyping and automatic code generation.


More information about the PPML domain-specific programming language for parallel particle simulations, including code examples, and information about the new object-oriented PPM core design and its multi-core and GPU support can be found in Omar Awile's PhD thesis:

O. Awile. A Domain-Specific Language and Scalable Middleware for Particle-Mesh Simulations on Heterogeneous Parallel Computers. PhD thesis, Diss. ETH No. 20959, MOSAIC Group, ETH Zurich, 2013. (PDF)

and in the conference paper:

O. Awile, M. Mitrovic, S. Reboux, and I. F. Sbalzarini. A Domain-Specific Programming Language for Particle Simulations on Distributed-Memory Parallel Computers. In Proc. III International Conference on Particle-based Methods, Stuttgart, Germany, September 2013. (PDF)

For the public releases of PPM and a PPM documentation, please see http://www.ppm-library.org. The current public release, however, does not yet include PPML, nor the object-oriented Fortran 2003 core. The latest public release is the stable Fortran90 version 1.2.2.


You can check out the latest PPM development version (object-oriented Fortran 2003) by anonymous Git access:
  • For the PPM library core: git clone http://ppm.mpi-cbg.de/git/ppm.git
  • For the PPM Numerics library: git clone http://ppm.mpi-cbg.de/git/ppmnumerics.git
  • For the PPML language and compiler: git clone http://ppm.mpi-cbg.de/git/cg.git
  • Installation manual for the development version of PPM (see http://www.ppm-library.org for the installation manual of the public stable release).
  • Metis 4 library

The PPM library is described in the following publications. Please cite them in your work when using PPM or PPML:

I. F. Sbalzarini, J. H. Walther, M. Bergdorf, S. E. Hieber, E. M. Kotsalis, and P. Koumoutsakos. PPM – A Highly Efficient Parallel Particle-Mesh Library for the Simulation of Continuum Systems, Journal of Computational Physics 215(2):566-588, 2006. (PDF)

I. F. Sbalzarini. Abstractions and middleware for petascale computing and beyond. Intl. J. Distr. Systems & Technol., 1(2):40–56, 2010. (PDF)

O. Awile, M. Mitrovic, S. Reboux, and I. F. Sbalzarini. A Domain-Specific Programming Language for Particle Simulations on Distributed-Memory Parallel Computers. In Proc. III International Conference on Particle-based Methods, Stuttgart, Germany, September 2013b. (PDF)

O. Awile, O. Demirel, and I. F. Sbalzarini. Toward an object-oriented core of the PPM library. In Proc. ICNAAM, Numerical Analysis and Applied Mathematics, International Conference, pages 1313–1316, Rhodes, Greece, September 2010. AIP. (PDF)

F. Büyükkeçeci, O. Awile and I. F. Sbalzarini. A portable OpenCL implementation of generic particle-mesh and mesh-particle interpolation 2D and 3D. Parallel Comput., 39:94-111, 2013. (PDF)

I. F. Sbalzarini, J. H. Walther, B. Polasek, P. Chatelin, M. Bergdorf, S. E. Hieber, E. M. Kotsalis, and P. Koumoutsakos. A Software Framework for Portable Parallelization of Particle-Mesh Simulations, Lecture Notes in Computer Science, 4128:730-739, 2006. (PDF)

IN NO EVENT SHALL THE MOSAIC GROUP BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE MOSAIC GROUP HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE MOSAIC GROUP SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE MOSAIC GROUP HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.