A flexible algorithm for calculating pair interactions on SIMD architectures
arXiv:1306.1737 · doi:10.1016/j.cpc.2013.06.003
Abstract
Calculating interactions or correlations between pairs of particles is typically the most time-consuming task in particle simulation or correlation analysis. Straightforward implementations using a double loop over particle pairs have traditionally worked well, especially since compilers usually do a good job of unrolling the inner loop. In order to reach high performance on modern CPU and accelerator architectures, single-instruction multiple-data (SIMD) parallelization has become essential. Avoiding memory bottlenecks is also increasingly important and requires reducing the ratio of memory to arithmetic operations. Moreover, when pairs only interact within a certain cut-off distance, good SIMD utilization can only be achieved by reordering input and output data, which quickly becomes a limiting factor. Here we present an algorithm for SIMD parallelization based on grouping a fixed number of particles, e.g. 2, 4, or 8, into spatial clusters. Calculating all interactions between particles in a pair of such clusters improves data reuse compared to the traditional scheme and results in a more efficient SIMD parallelization. Adjusting the cluster size allows the algorithm to map to SIMD units of various widths. This flexibility not only enables fast and efficient implementation on current CPUs and accelerator architectures like GPUs or Intel MIC, but it also makes the algorithm future-proof. We present the algorithm with an application to molecular dynamics simulations, where we can also make use of the effective buffering the method introduces.
Accepted for publication in Computer Physics Communications
References in corpus (2)
Cited by in corpus (25)
- Tackling Exascale Software Challenges in Molecular Dynamics Simulations with GROMACS
- Heterogeneous Parallelization and Acceleration of Molecular Dynamics Simulations in GROMACS
- Strong scaling of general-purpose molecular dynamics simulations on GPUs
- More Bang for Your Buck: Improved use of GPU Nodes for GROMACS 2018
- Efficient molecular dynamics simulations with many-body potentials on graphics processing units
- Best bang for your buck: GPU nodes for GROMACS biomolecular simulations
- 86 PFLOPS Deep Potential Molecular Dynamics simulation of 100 million atoms with ab initio accuracy
- RUMD: A general purpose molecular dynamics package optimized to utilize GPU hardware down to a few thousand particles
- Bulk self-assembly of giant, unilamellar vesicles
- Quantized bounding volume hierarchies for neighbor search in molecular simulations on graphics processing units
- A random batch Ewald method for charged particles in the isothermal-isobaric ensemble
- Improved random batch Ewald method in molecular dynamics simulations
- Subdiffusive-Brownian crossover in membrane proteins: a Generalized Langevin Equation-based approach
- Performance Evaluation of the Zero-Multipole Summation Method in Modern Molecular Dynamics Software
- A hybrid algorithm for parallel molecular dynamics simulations
- Wavefunction-based electrostatic-embedding QM/MM using CFOUR through MiMiC
- A Domain Specific Language for Performance Portable Molecular Dynamics Algorithms
- Drug-induced activation of integrin alpha IIb beta 3 leads to minor localized structural changes
- Structural and Dynamical Mechanisms of a Naturally Occurring Variant of the Human Prion Protein in Preventing Prion Conversion
- Locating large flexible ligands on proteins
- Redesigning GROMACS Halo Exchange: Improving Strong Scaling with GPU-initiated NVSHMEM
- Noncovalent Interactions of Hydrated DNA and RNA Mapped by 2D-IR Spectroscopy
- tinyMD: A Portable and Scalable Implementation for Pairwise Interactions Simulations
- Acceleration of Linear Finite-Difference Poisson-Boltzmann Methods on Graphics Processing Units
- Random-batch list algorithm for short-range molecular dynamics simulations