OpenMP in VASP: Threading and SIMD

Author(s)
Florian Wende, Martijn Marsman, Jeongnim Kim, Fedor Vasilev, Zhengji Zhao, Thomas Steinke
Abstract

The Vienna Ab initio Simulation Package (VASP) is a widely used electronic structure code that originally exploits process-level parallelism through the Message Passing Interface (MPI) for work distribution within and across nodes. Architectural changes of modern parallel processors urge programmers to address thread- and data-level parallelism as well to benefit most from the available compute resources within a node. We describe for VASP how to approach for an MPI + OpenMP parallelization including data-level parallelism through OpenMP SIMD constructs together with a generic high-level vector coding scheme. We can demonstrate an improved scalability of VASP and more than 20% gain over the MPI-only version as well as a 2x increased performance of collective operations using the multiple-endpoint MPI feature. The high-level vector coding scheme applied to VASP's general gradient approximation routine gives up 9x performance gain on AVX512 platforms with the Intel compiler.

Organisation(s)
Computational Materials Physics
Journal
International Journal of Quantum Chemistry
Volume
119
No. of pages
17
ISSN
0020-7608
DOI
https://doi.org/10.1002/qua.25851
Publication date
12-2018
Publication status
E-pub ahead of print
Peer reviewed
Yes
Austrian Fields of Science 2012
102009 Computer simulation, 102023 Supercomputing, 102022 Software development, 103018 Materials physics
Portal url
https://ucris.univie.ac.at/portal/en/publications/openmp-in-vasp-threading-and-simd(63c02b3d-bfd3-4dc2-8f21-8eedff2b185c).html