[DBPP] previous next up contents index [Search]
Next: Exercises Up: 8 Message Passing Interface Previous: 8.8 Case Study: Earth System Model

8.9 Summary

This chapter has described the message-passing library approach to parallel programming and has shown how parallel algorithm designs developed using the techniques from Part I can be translated into message-passing programs. It has also provided a tutorial introduction to the MPI message-passing standard. Table 8.2 summarizes the MPI routines described in this chapter; Tables 8.3 and 8.4 summarize the C and Fortran language bindings, respectively, for these functions and give the types of each function's arguments.

 

 
Table 8.2: MPI quick reference: the functions included in the MPI subset, the figure in which each is defined, the section in which each is described, and the programs that illustrate their use.  

The principal features of the message-passing programming model as realized in MPI are as follows.

  1. A computation consists of a (typically fixed) set of heavyweight processes, each with a unique identifier (integers 0..P--1).

  2. Processes interact by exchanging typed messages, by engaging in collective communication operations, or by probing for pending messages.

  3. Modularity is supported via communicators, which allow subprograms to encapsulate communication operations and to be combined in sequential and parallel compositions.

  4. Algorithms developed using the techniques set out in Part I can be expressed directly if they do not create tasks dynamically or place multiple tasks on a processor.

  5. Algorithms that do create tasks dynamically or place multiple tasks on a processor can require substantial refinement before they can be implemented in MPI.

  6. Determinism is not guaranteed but can be achieved with careful programming.

 
Table 8.3: MPI quick reference: C language binding.  

 
Table: MPI quick reference: Fortran language binding. For brevity, we adopt the convention that arguments with an I prefix have type INTEGER unless specified otherwise. The ISTATUS argument is always an integer array of size MPI_STATUS_SIZE.  



[DBPP] previous next up contents index [Search]
Next: Exercises Up: 8 Message Passing Interface Previous: 8.8 Case Study: Earth System Model

© Copyright 1995 by Ian Foster