Outline

1/17/98


Click here to start


Table of Contents

Outline

A Short History of MPI

Message Passing Interface (MPI)

A First MPI Program

What is MPI?

Compiling and Linking (in MPICH)

Running MPI Programs (in MPICH)

Implementation of MPI

MPI Implementation Effect on Programmers

Outline

Sending/Receiving Messages: Issues

First-Generation Message-Passing Systems

First Generation Message-Passing, contd.

The Buffer

Generalizing the Buffer Description

Advantages of Datatypes

Generalizing the Tag

Sample Program using Library

Correct Execution

Incorrect Execution

What Happened?

Correct Execution with Pending Communcication

Incorrect Execution with Pending Communication

What Happened This Time?

Solution to the Tag Problem

Delimiting Scope of Communication: Summary

Generalizing the Process Identifier

Process Groups

MPI Basic Send/Receive

Six-Function MPI

Simple Fortran Example

Simple Fortran Example (2)

Simple Fortran Example (3)

Outline

Message Information

Message Information Example

Fortran Message Info Example

Collective Communication

First Generation Collective Communictation

Two Simple Collective Operations

Collective Communication Functions

Synchronization

Data Movement (1)

Data Movement (2)

Collective Computation Patterns

Implementation of Collective Communication

List of Collective Routines

List of Collective Computation Operators

Example: Performing a Sum

Nonblocking Communication

Nonblocking Communication (2)

Waiting for Requests

Other Solutions to the “Unsafe” Problem

Buffering Issues

Avoiding Buffering Costs

Combining Blocking and Send Modes

MPI Datatypes

MPI Datatypes

MPI Datatype Examples

MPI Datatype Examples (2)

MPI Datatype Examples (3)

Connecting Programs Together

Connecting Programs via Intercommunicators

Tools for Writing Libraries

Other MPI Features

Outline

Designing MPI Programs

Task Decomposition Example: Server

Alternative Server

Regular Grid Example

Regular Grid Example: Getting the Decomposition

Regular Grid Example: Conclusion

Outline

MPI-2

One-Sided Communication

One-Sided Communication in MPI

One-Sided Communication Schematics

Dynamic Process Management

Dynamic Process Management in MPI

Example: Spawning a Manager/Worker Application

Parallel I/O

Parallel I/O in MPI

I/O Operations in MPI-2

C++ Bindings

Fortran Bindings

Fortran Bindings (2)

Email: jake@npac.syr.edu

Home Page: http://www.npac.syr.edu/users/jake