Using MPI-2: Advanced Features of the Message-Passing Interface

by
William Gropp, Ewing Lusk, and Rajeev Thakur
Published in 1999 by MIT Press, 382
pages. The MIT Press page, together with ordering information for this book
can be seen
here.
See our companion book, Using MPI, 2nd edition,
by William Gropp, Ewing Lusk,
and
Anthony Skjellum,
published by MIT Press, 1999; ISBN 0-262-57132-3.
The MIT Press page,
together with ordering information for this book, can be seen
here.
Example Programs
The examples from Using MPI-2 are available:
Errata
An errata for the book Using MPI-2 is available as
A figure on page 62 did not print properly. Get this figure here.
Table of Contents
- Introduction
- Background
- What's New in MPI-2
- Reading This Book
- Getting Started with MPI-2
- Portable Process Startup
- Parallel I/O
- Remote Memory Access
- Dynamic Process Management
- More Info on Info
- Summary
- Parallel I/O
- Introduction
- Using MPI for Simple I/O
- Noncontiguous Accesses and Collective I/O
- Accessing Arrays Stored in Files
- Nonblocking I/O and Split Collective I/O
- Shared File Pointers
- Passing Hints to the Implementation
- Consistency Semantics
- File Interoperability
- Achieving High I/O Performance with MPI
- An Astrophysics Example
- Summary
- Understanding Synchronization
- Introduction
- Synchronization in Message Passing
- Comparison with Shared Memory
- Introduction to Remote Memory Operations
- Introduction
- Contrast with Message Passing
- Memory Windows
- Moving Data
- Completing Data Transfers
- Examples of RMA Operations
- Pitfalls in Accessing Memory
- Performance Tuning for RMA Operations
- Advanced Remote Memory Access
- Introduction
- Lock and Unlock
- Allocating Memory for MPI Windows
- Global Arrays
- Another Version of NXTVAL
- An RMA Mutex
- The Rest of Global Arrays
- Differences between RMA and Shared Memory
- Managing a Distributed Data Structure
- Compiler Optimization and Passive Targets
- Scalable Synchronization
- Summary
- Dynamic Process Management
- Introduction
- Creating New MPI Processes
- Connecting MPI Processes
- Design of the MPI Dynamic Process Routines
- Using MPI with Threads
- Thread Basics and Issues
- MPI and Threads
- Yet Another Version of NXTVAL
- Implementing Nonblocking Collective Operations
- Mixed-Model Programming: MPI for SMP Clusters
- Advanced Features
- Defining New File Data Representations
- External Interface Functions
- Mixed-Language Programming
- Attribute Caching
- Error Handling
- Topics Not Covered in This Book
- Conclusions
- New Classes of Parallel Programs
- MPI-2 Implementation Status
- Where does MPI Go From Here?
- Final Words
Appendices:
- Summary of MPI-2 Routines and Their Arguments
- MPI Resources on the World Wide Web
- Surprises, Questions, and Problems in MPI
- Standardizing External Startup with mpiexec
A code repository for the examples used in the book will be available soon
The MPI Standard itself, information on several MPI implementations, and
related MPI locations on the Web can be found on the Argonne MPI home page.