Porting VASP from MPI to MPI+OpenMP [SIMD]
- We describe for the VASP application (a widely used electronic structure code written in FORTRAN) the transition from an MPI-only to a hybrid code base leveraging the three relevant levels of parallelism to be addressed when optimizing for an effective execution on modern computer platforms: multiprocessing, multithreading and SIMD vectorization. To achieve code portability, we draw on MPI parallelization together with OpenMP threading and SIMD constructs. Combining the latter can be challenging in complex code bases. Optimization targets are combining multithreading and vectorization in different calling contexts as well as whole function vectorization. In addition to outlining design decisions made throughout the code transformation process, we will demonstrate the effectiveness of the code adaptations using different compilers (GNU, Intel) and target platforms (CPU, Intel Xeon Phi (KNL)).
Author: | Florian WendeORCiD, Martijn Marsman, Zhengji Zhao, Jeongnim Kim |
---|---|
Document Type: | In Proceedings |
Parent Title (English): | Scaling OpenMP for Exascale Performance and Portability - 13th International Workshop on OpenMP, IWOMP 2017, Stony Brook, NY, USA, September 20-22, 2017 |
Volume: | 8766 |
First Page: | 107 |
Last Page: | 122 |
Series: | LNCS |
Year of first publication: | 2017 |
DOI: | https://doi.org/10.1007/978-3-319-65578-9_8 |