Direct N-Body problem optimisation using the AVX-512 instruction set
Résumé
The integration of the equations of motion of N interacting particles, represents a classical problem in many branches of physics and chemistry. The direct N-body problem is at the heart of simulations studying Coulomb Crystals. We present an hand-optimized code for the latest AVX-512 set of instructions that achieve a single core speed up of $\approx 340\%$ respect the version optimized by the compiler. The increase performance is due a optimization on the organization of the memory access on the inner loop on the Coulomb and, specially, on the usage of an intrinsic function to faster compute the $1/\sqrt{x}$. Our parallelization, which is implemented in OpenMP, achieves an excellent scalability with the number of cores. In total, we achieve $\approx 500GFLOPS$ using a just a standard WorkStation with one Intel Skylake CPU (10 cores). It represents $\approx 75\%$ of the theoretical maximum number of double precision FLOPS corresponding to Fused Multiplication Addition (FMA) operations.
Origine | Fichiers produits par l'(les) auteur(s) |
---|