TY - GEN
T1 - Parallel application development with the hybrid MPI+OpenMP programming model
AU - Chapman, Barbara
N1 - Publisher Copyright:
© Springer-Verlag Berlin Heidelberg 2002.
PY - 2002
Y1 - 2002
N2 - Many parallel platforms in use today are clusters of SMP systems, connected by Ethernet or one of the high-speed networks available. Some provide global memory addressing. Codes developed to run on these machines are often written using the MPI library for exchanging data. Increasingly, however, application developers have begun exploring the use of OpenMP in conjunction with MPI as a programming model. OpenMP is an industry standard for shared memory parallel program. Unlike MPI, it is based upon a set of directives that are inserted into a Fortran or C/C++ code and translated by a compiler into an explicitly parallel code. When used together with MPI, OpenMP is normally used to exploit the shared memory within each of the SMPs in the target platform. In this tutorial, we review the OpenMP API for shared memory parallel programming, and then consider how OpenMP directives may be inserted into an existing MPI program. In order to understand how to do this well, we also look at performance issues related to the use of OpenMP. We complete the tutorial by discussing the potential benefits of this model and reporting on experiences already gained in a variety of efforts that have developed codes under this hybrid model.
AB - Many parallel platforms in use today are clusters of SMP systems, connected by Ethernet or one of the high-speed networks available. Some provide global memory addressing. Codes developed to run on these machines are often written using the MPI library for exchanging data. Increasingly, however, application developers have begun exploring the use of OpenMP in conjunction with MPI as a programming model. OpenMP is an industry standard for shared memory parallel program. Unlike MPI, it is based upon a set of directives that are inserted into a Fortran or C/C++ code and translated by a compiler into an explicitly parallel code. When used together with MPI, OpenMP is normally used to exploit the shared memory within each of the SMPs in the target platform. In this tutorial, we review the OpenMP API for shared memory parallel programming, and then consider how OpenMP directives may be inserted into an existing MPI program. In order to understand how to do this well, we also look at performance issues related to the use of OpenMP. We complete the tutorial by discussing the potential benefits of this model and reporting on experiences already gained in a variety of efforts that have developed codes under this hybrid model.
UR - https://www.scopus.com/pages/publications/84974663117
U2 - 10.1007/3-540-45825-5_11
DO - 10.1007/3-540-45825-5_11
M3 - Conference contribution
AN - SCOPUS:84974663117
SN - 3540442960
SN - 9783540442967
SN - 9783540442967
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 13
BT - Recent Advances in Parallel Virtual Machine and Message Passing Interface - 9th European PVM/MPI Users' Group Meeting, Proceedings
A2 - Kranzlmüller, Dieter
A2 - Volkert, Jens
A2 - Kacsuk, Peter
A2 - Dongarra, Jack
PB - Springer Verlag
T2 - 9th European Parallel Virtual Machine and Message Passing Interface Users’ Group Meeting, PVM/MPI 2002
Y2 - 29 September 2002 through 2 October 2002
ER -