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 ImplementationEffect on Programmers
Outline
Sending/Receiving Messages:Issues
First-GenerationMessage-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)
|