Barbara Chapman (2002)
Parallel Application Development with the Hybrid MPI+OpenMP Programming Model
In: Proceedings of the Recent Advances in Parallel Virtual Machine and Message Passing Interface: 9th European PVM/MPI Users' Group Meeting, ed. by D. Kranzlmüller, P. Kacsuk, J. Dongarra, J. Volkert, pp. 13, Heidelberg, Germany, Springer-Verlag.
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.