OpenMP in VASP: Threading and SIMD
in press
- 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.
Author: | Florian WendeORCiD, Martijn Marsman, Jeongnim Kim, Fedor Vasilev, Zhengji Zhao, Thomas Steinke |
---|---|
Document Type: | Article |
Parent Title (German): | International Journal of Quantum Chemistry |
Issue: | Emerging Architectures in Computational Chemistry |
First Page: | e25851 |
Publisher: | Wiley Online Library |
Date of first Publication: | 2018/12/19 |
DOI: | https://doi.org/10.1002/qua.25851 |