OpenFPM: A scalable open framework for particle and particle-mesh codes on parallel computers
arXiv:1804.07598 · doi:10.1016/j.cpc.2019.03.007
Abstract
Scalable and efficient numerical simulations continue to gain importance, as computation is firmly established as the third pillar of discovery, alongside theory and experiment. Meanwhile, the performance of computing hardware grows through increasing heterogeneous parallelism, enabling simulations of ever more complex models. However, efficiently implementing scalable codes on heterogeneous, distributed hardware systems becomes the bottleneck. This bottleneck can be alleviated by intermediate software layers that provide higher-level abstractions closer to the problem domain, hence allowing the computational scientist to focus on the simulation. 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 particles-only and hybrid particle-mesh simulations of both discrete and continuous models, as well as non-simulation codes. 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), Vortex Methods, stencil codes, high-dimensional Monte Carlo sampling (CMA-ES), and Reaction-Diffusion solvers, comparing it to the current state of the art and existing software frameworks.
32 pages, 12 figures
References in corpus (6)
- Granular flow down an inclined plane: Bagnold scaling and rheology
- Complex Patterns in a Simple System
- DOLFIN: Automated Finite Element Computing
- The CMA Evolution Strategy: A Tutorial
- Implementation and performance of FDPS: A Framework Developing Parallel Particle Simulation Codes
- QCD simulations with staggered fermions on GPUs
Cited by in corpus (11)
- A Consistent Parallel Isotropic Unstructured Mesh Generation Method based on Multi-phase SPH
- A Feature-aware SPH for Isotropic Unstructured Mesh Generation
- Stability selection enables robust learning of partial differential equations from limited noisy data
- Spontaneous flow instabilities of active polar fluids in three dimensions
- LLAMA: The Low-Level Abstraction For Memory Access
- An open-source pipeline for solving continuous reaction-diffusion models in image-based geometries of porous media
- Distributed Evolution Strategies with Multi-Level Learning for Large-Scale Black-Box Optimization
- A high-order fully Lagrangian particle level-set method for dynamic surfaces
- A meshfree collocation scheme for surface differential operators on point clouds
- A Mathematical Definition of Particle Methods
- TinyDEM: Minimal open granular DEM code with sliding, rolling and twisting friction