Abstract
MPI is often thought of as a low-level approach, even as a sort of “assembly language,” for parallel programming. This is both true and false. While MPI is designed to afford the programmer the ability to control the flow of data at a detailed level for maximum performance, MPI also provides highly expressive operations that support high-level programming. MPI’s design has also encouraged the design of parallel libraries, which can provide performance while shielding the user from the details of MPI programming.
This tutorial will begin with the basics of MPI, so that attendees need not be familiar with MPI beforehand. We will focus, however, on using MPI as a high-level language by exploiting data type libraries, collective operations, and MPI-I/O. We will cover both MPI-1 and MPI-2 topics in this area, and will introduce some tools for analyzing performance of MPI programs. We will then familiarize attendees with libraries that have been built on MPI, such as ScaLAPACK, PETSc, and parallel NetCDF.
We will conclude with a hands-on, “class participation” project. Using whatever laptops attendees can bring to the tutorial together with a wireless network we will supply, we will set up a parallel computer and supply attendees with copies of MPICH-2, our all-new implementation of MPI-1 and MPI-2. If all goes well, we should thus be able to have a quite capable parallel computer available for some interesting demonstrations and experiments. Both Windows and Linux laptops will be accommodated.
This work was supported by the Mathematical, Information, and Computational Sciences Division subprogram of the Office of Advanced Scientific Computing Research, U.S. Department of Energy, under Contract W-31-109-Eng-38.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gropp, W.D., Lusk, E. (2003). High-Level Programming in MPI. In: Dongarra, J., Laforenza, D., Orlando, S. (eds) Recent Advances in Parallel Virtual Machine and Message Passing Interface. EuroPVM/MPI 2003. Lecture Notes in Computer Science, vol 2840. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39924-7_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-39924-7_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20149-6
Online ISBN: 978-3-540-39924-7
eBook Packages: Springer Book Archive