Next:
Preliminary material
MPI: from Fundamentals to Applications
A half-day tutorial by David W. Walker
A
PostScript version
of this tutorial is available.
The PostScript of a shortened,
two hour version
of this tutorial is also available.
Preliminary material
Title page
Copyright notice
MPI resources on the WWW
Aims of this tutorial
What is MPI?
The need for a standard
Historical background and the MPI Forum
History of MPI
The MPI Forum
Companies in MPI
Universities in MPI
Government organizations in MPI
The MPI standard
What is in MPI?
Introduction to groups and communicators
Process model and groups
Communication scope
Communicators
Examples of communication safety
Libraries and communicators
Overview of point-to-point communication
Overview of collective communication
Process groups
Overview of process groups
Routines for managing groups
Routines for constructing groups
Example of group construction
Communicators
Routines for managing communicators
Routines for constructing communicators
Forming sub-communicators
Example of splitting a communicator
Labeling of pprocesses in split communicator
Intercommunicators
Point-to-point communication
Communication completion
Communication modes
Buffered mode
Blocking behavior
Flavors of communication
Naming of send and receive routines
Blocking send
Blocking receive
Return status objects
Nonblocking send
Nonblocking receive
Completion routines
Multiple completions
MPI datatypes
General datatypes
Contiguous datatypes
Vector datatypes
Indexed datatypes
Struct datatypes
Other datatype routines
Array subsectioning example
Send/receive operations
Persistent communication requests
Defining persistent communication requests
Starting persistent communication operations
Collective communication
Introduction to collective communication
Collective data movement
Collective data movement routines
Vector variants
Collective global computation
Collective global computation routines
Process topologies
Application topologies
Topological inquiry routines
Uses of topologies
Topologies and data shifts
Partitioning Cartesian topologies
Topologies and collective communication
Caching
Caching data
Manipulating cached data
Creating and freeing keys
Associating cached data
Packing and unpacking messages
Packing messages
Routines for packing data
Routines for unpacking data
Example of unpacking data
Code for unpacking data
Unpacking integers and reals
Example applications
Redistribution of block-cyclic data
The problem
Example of redistribution
Skeleton code for redistribution
Creating the general datatype
Code for creating the general datatype
Code for communicating the data
Packing the data
Unpacking the data
Detailed communication code
Communication using send/receive
General redistributions
Use of caching in redistribution
Skeleton code for caching
Code for caching operations
Code for creating the general datatype
Notes on caching
Particle migration
The problem
Creating a 3D topology
Skeleton code for migration
Creating the particle datatype
Creating the send and receive datatypes
Communicating the data
Scattering particles
The problem
Creating the datatype
Skeleton code for scattering
Heterogeneous computing with MPI
The future of MPI
About this document ...
David W Walker
Mon Jan 20 11:10:22 GMT 1997