(PP22): OpenFPM for Scalable Particle-Mesh Codes on CPUs and GPUs
Math Library Design
Programming Models & Languages
Scientific Software Development
TimeTuesday, June 18th3:15pm - 3:45pm CEST
DescriptionScalable and efficient numerical simulations are of increasing importance in all areas of science and technology. This is fueled by a steady growth in the performance of computing hardware and increasing heterogeneous parallelism. However, efficiently implementing scalable simulation codes on heterogeneous, distributed hardware systems is the current bottleneck. This bottleneck can be relaxed by intermediate software layers that provide abstractions closer to the problem domain, allowing the computational scientist to focus on the simulation algorithm. Here, we present OpenFPM, an open and scalable framework that provides an abstraction layer for numerical simulations using particles and/or meshes. OpenFPM provides transparent and scalable infrastructure for shared-memory and distributed-memory implementations of hybrid particle-mesh simulations of both discrete and continuous models. This infrastructure is complemented with portable implementations of frequently used numerical routines, as well as interfaces to third-party libraries. We present the architecture and design of OpenFPM, detail the underlying abstractions, and benchmark the framework in applications ranging from Smoothed Particle Hydrodynamics (SPH) to Molecular Dynamics (MD), Discrete Element Methods (DEM), and stencil solvers, comparing it to the current state of the art and existing simulation software frameworks.