Skip to main content

The OpenPME Problem Solving Environment for Numerical Simulations

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 12742)

Abstract

We introduce OpenPME, the Open Particle-Mesh Environment, a problem solving environment that provides a Domain Specific Language (DSL) for numerical simulations in scientific computing. It is built atop a domain metamodel that is general enough to cover the main types of numerical simulations: simulations using particles, meshes, and hybrid combinations of particles and meshes. Using model-to-model transformations, OpenPME generates code against the state-of-the-art C++ parallel computing library OpenFPM. This effectively lowers the programming barrier and enables users to implement scalable simulation codes for high-performance computing (HPC) systems using high-level abstractions. Plenty of recent research has shown that higher-level abstractions and problem solving environments are well suited to alleviate low-level implementation overhead. We demonstrate this for OpenPME and its compiler on three different test cases—particle-based, mesh-based, and hybrid particle-mesh—showing up to 7-fold reduction in the number of lines of code compared to a direct OpenFPM implementation in C++.

Keywords

  • Domain specific compiler
  • Particle-mesh methods

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-030-77961-0_49
  • Chapter length: 14 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   109.00
Price excludes VAT (USA)
  • ISBN: 978-3-030-77961-0
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   149.99
Price excludes VAT (USA)
Fig. 1.
Fig. 2.
Fig. 3.
Fig. 4.
Fig. 5.
Fig. 6.
Fig. 7.
Fig. 8.
Fig. 9.

Notes

  1. 1.

    Jetbrains Meta Programming System (MPS) https://www.jetbrains.com/mps/.

  2. 2.

    OpenPME is available under https://github.com/Nesrinekh/OpenPME.

References

  1. Alnæs, M.S., Logg, A., Ølgaard, K.B., Rognes, M.E., Wells, G.N.: Unified form language: a domain-specific language for weak formulations of partial differential equations. ACM Trans. Math. Softw. 40(2), 1–37 (2014)

    MathSciNet  CrossRef  Google Scholar 

  2. Awile, O., Mitrovic, M., Reboux, S., Sbalzarini, I.F.: A domain-specific programming language for particle simulations on distributed-memory parallel computers. In: Proceedings of III International Conference on Particle-Based Methods (PARTICLES). Stuttgart, Germany (2013)

    Google Scholar 

  3. Baumgartner, G., et al.: Synthesis of high-performance parallel programs for a class of ab initio quantum chemistry models. Proc. IEEE 93(2), 276–292 (2005)

    CrossRef  Google Scholar 

  4. Cottet, G.H., Koumoutsakos, P.: Vortex Methods - Theory and Practice. Cambridge University Press, New York (2000)

    CrossRef  Google Scholar 

  5. DeVito, Z., et al.: Liszt: a domain specific language for building portable mesh-based PDE solvers. In: Proceedings of SC 2011, p. 1. ACM Press (2011)

    Google Scholar 

  6. Gallopoulos, E., Houstis, E., Rice, J.R.: Computer as thinker/doer: problem-solving environments for computational science. IEEE Comput. Sci. Engrg. 1(2), 11–23 (1994)

    CrossRef  Google Scholar 

  7. Gray, P., Scott, S.K.: Sustained oscillations and other exotic patterns of behavior in isothermal reactions. J. Phys. Chem. 89(1), 22–32 (1985)

    CrossRef  Google Scholar 

  8. Gupta, A., Incardona, P., Aydin, A.D., Gumhold, S., Günther, U., Sbalzarini, I.F.: An architecture for interactive in situ visualization and its transparent implementation in OpenFPM. In: Proceedings of Workshop In Situ Infrastructures for Enabling Extreme-scale Analysis and Visualization (ISAV), SC 2020, pp. 20–26. ACM (2020)

    Google Scholar 

  9. Hecht, F.: New development in Freefem++. J. Numer. Math. 20(3–4), 251–266 (2012)

    Google Scholar 

  10. Hockney, R.W., Eastwood, J.W.: Computer Simulation using Particles. Institute of Physics Publishing, Bristol (1988)

    Google Scholar 

  11. Incardona, P., Leo, A., Zaluzhnyi, Y., Ramaswamy, R., Sbalzarini, I.F.: OpenFPM: a scalable open framework for particle and particle-mesh codes on parallel computers. Comput. Phys. Commun. 241, 155–177 (2019)

    CrossRef  Google Scholar 

  12. Iwasawa, M., Tanikawa, A., Hosono, N., Nitadori, K., Muranushi, T., Makino, J.: Implementation and performance of FDPS: a framework for developing parallel particle simulation codes. Publ. Astron. Soc. Japan 68(4), 54 (2016)

    Google Scholar 

  13. Jones, J.E.: On the determination of molecular fields. II. from the equation of state of a gas. Proc. Roy. Soc. London A 106(738), 463–477 (1924)

    Google Scholar 

  14. Karol, S., Nett, T., Castrillon, J., Sbalzarini, I.F.: A domain-specific language and editor for parallel particle methods. ACM Trans. Math. Softw. 44(3), 34:1–34:32 (2018)

    Google Scholar 

  15. Logg, A., Ølgaard, K.B., Rognes, M.E., Wells, G.N.: FFC: the FEniCS form compiler. In: Logg, A., Mardal, KA., Wells, G. (eds.) Automated Solution of Differential Equations by the Finite Element Method, vol. 84, pp. 227–238. Springer, Berlin (2012) https://doi.org/10.1007/978-3-642-23099-8_11

  16. Luporini, F., Ham, D.A., Kelly, P.H.J.: An algorithm for the optimization of finite element integration loops. ACM Trans. Math. Softw. 44(1), 1–26 (2017)

    MathSciNet  CrossRef  Google Scholar 

  17. Luporini, F., et al.: Architecture and performance of Devito, a system for automated stencil computation. ACM Trans. Math. Softw. 46(1), 1–28 (2020)

    MathSciNet  CrossRef  Google Scholar 

  18. Luporini, F., et al.: Cross-loop optimization of arithmetic intensity for finite element local assembly. ACM Trans. Arch. Code Opt. 11(4), 1–25 (2015)

    CrossRef  Google Scholar 

  19. Macià, S., Mateo, S., Martínez-Ferrer, P.J., Beltran, V., Mira, D., Ayguadé, E.: Saiph: Towards a DSL for high-performance computational fluid dynamics. In: Proceedings of Real World DSL Workshop 2018, pp. 6:1–6:10. ACM, New York (2018)

    Google Scholar 

  20. Oñate, E., Owen, D.R.J.: Particle-based methods: fundamentals and applications. Springer, New York (2013) https://doi.org/10.1007/978-94-007-0735-1

  21. Püschel, M., et al.: SPIRAL: code generation for DSP transforms. Proc. IEEE 93(2), 232–275 (2005)

    CrossRef  Google Scholar 

  22. Rathgeber, F., et al.: Firedrake: automating the finite element method by composing abstractions. ACM Trans. Math. Softw. 43(3), 1–27 (2016)

    MathSciNet  CrossRef  Google Scholar 

  23. Rathgeber, F., et al.: Pyop2: a high-level framework for performance-portable simulations on unstructured meshes. SC Companion, pp. 1116–1123 (2012)

    Google Scholar 

  24. Rink, N.A., et al.: CFDlang: high-level code generation for high-order methods in fluid dynamics. In: Proceedings of 3rd International Workshop on Real World DSLs, pp. 5:1–5:10. ACM, New York (2018)

    Google Scholar 

  25. Sbalzarini, I.F.: Abstractions and middleware for petascale computing and beyond. Intl. J. Distr. Syst. Tech. 1(2), 40–56 (2010)

    CrossRef  Google Scholar 

  26. Sbalzarini, I.F.: Modeling and simulation of biological systems from image data. Bioessays 35(5), 482–490 (2013)

    MathSciNet  CrossRef  Google Scholar 

  27. Sbalzarini, I.F., Walther, J.H., Bergdorf, M., Hieber, S.E., Kotsalis, E.M., Koumoutsakos, P.: PPM - a highly efficient parallel particle-mesh library for the simulation of continuum systems. J. Comput. Phys. 215(2), 566–588 (2006)

    CrossRef  Google Scholar 

  28. Šinkarovs, A., Bernecky, R., Vießmann, H.N., Scholz, S.B.: A rosetta stone for array languages. In: Proceedings of 5th ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, pp. 1–10 (2018)

    Google Scholar 

  29. Veldhuizen, T.L.: Blitz++: the library that thinks it is a compiler. In: Langtangen, H.P., Bruaset, A.M., Quak, E. (eds.) Advances in Software Tools for Scientific Computing, vol. 10, pp. 57–87. Springer, Berlin (2000) https://doi.org/10.1007/978-3-642-57172-5_2

Download references

Acknowledgement

This work was partly supported by the German Research Foundation (DFG) within the OpenPME project (number 350008342) and by the Federal Ministry of Education and Research (Bundesministerium für Bildung und Forschung, BMBF) under funding code 031L0160 (project “SPlaT-DM – computer simulation platform for topology-driven morphogenesis”).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nesrine Khouzami .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Verify currency and authenticity via CrossMark

Cite this paper

Khouzami, N. et al. (2021). The OpenPME Problem Solving Environment for Numerical Simulations. In: Paszynski, M., Kranzlmüller, D., Krzhizhanovskaya, V.V., Dongarra, J.J., Sloot, P.M.A. (eds) Computational Science – ICCS 2021. ICCS 2021. Lecture Notes in Computer Science(), vol 12742. Springer, Cham. https://doi.org/10.1007/978-3-030-77961-0_49

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-77961-0_49

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-77960-3

  • Online ISBN: 978-3-030-77961-0

  • eBook Packages: Computer ScienceComputer Science (R0)