The implementation of the second generation MPICH ADIWilliam Gropp
Ewing Lusknumberdate

The MPICH implementation of the MPI standard is built on a lower level communications layer called the abstract device interface. The purpose of this interface is to make it easy to port the MPICH implementation by separating into a separate module that handles just the communication between two processes. This note describes an implementation for this interface that is flexible and efficient. In addition, this implementation supports multiple devices (e.g., TCP/IP and shared memory or TCP/IP and propritary interconnect) in a single MPI application.


Contents
  • Introduction
  • Protocols
  • Devices
  • Design
  • Sending
  • Receiving
  • Synchronous sends
  • Freeing requests
  • Single device optimizations
  • Requests
  • Implementation sketch
  • Noncontiguous and Heterogeneous
  • Message queue management
  • Miscelleous Routines
  • Rationale for three modes