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++.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Jetbrains Meta Programming System (MPS) https://www.jetbrains.com/mps/.
- 2.
OpenPME is available under https://github.com/Nesrinekh/OpenPME.
References
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)
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)
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)
Cottet, G.H., Koumoutsakos, P.: Vortex Methods - Theory and Practice. Cambridge University Press, New York (2000)
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)
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)
Gray, P., Scott, S.K.: Sustained oscillations and other exotic patterns of behavior in isothermal reactions. J. Phys. Chem. 89(1), 22–32 (1985)
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)
Hecht, F.: New development in Freefem++. J. Numer. Math. 20(3–4), 251–266 (2012)
Hockney, R.W., Eastwood, J.W.: Computer Simulation using Particles. Institute of Physics Publishing, Bristol (1988)
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)
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)
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)
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)
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
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)
Luporini, F., et al.: Architecture and performance of Devito, a system for automated stencil computation. ACM Trans. Math. Softw. 46(1), 1–28 (2020)
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)
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)
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
Püschel, M., et al.: SPIRAL: code generation for DSP transforms. Proc. IEEE 93(2), 232–275 (2005)
Rathgeber, F., et al.: Firedrake: automating the finite element method by composing abstractions. ACM Trans. Math. Softw. 43(3), 1–27 (2016)
Rathgeber, F., et al.: Pyop2: a high-level framework for performance-portable simulations on unstructured meshes. SC Companion, pp. 1116–1123 (2012)
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)
Sbalzarini, I.F.: Abstractions and middleware for petascale computing and beyond. Intl. J. Distr. Syst. Tech. 1(2), 40–56 (2010)
Sbalzarini, I.F.: Modeling and simulation of biological systems from image data. Bioessays 35(5), 482–490 (2013)
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)
Š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)
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
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
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)