Skip to main content

The OpenPME Problem Solving Environment for Numerical Simulations

  • Conference paper
  • First Online:
Computational Science – ICCS 2021 (ICCS 2021)

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

Included in the following conference series:

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++.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 99.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 129.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

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)

    Article  MathSciNet  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)

    Article  Google Scholar 

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

    Book  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)

    Article  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)

    Article  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)

    Article  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)

    Article  MathSciNet  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)

    Article  MathSciNet  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)

    Article  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)

    Article  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)

    Article  MathSciNet  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)

    Article  Google Scholar 

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

    Article  MathSciNet  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)

    Article  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

Check for updates. 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)

Publish with us

Policies and ethics