Table of Contents
CPS615 Introduction to Computational ScienceThe Message Passing Interface MPI
Abstract of MPI Presentation
MPI Overview -- Comparison with HPF -- I
MPI Overview -- Comparison with HPF -- II
Some Key Features of MPI
What is MPI?
History of MPI
Who Designed MPI?
Some Difficulties with MPI
Sending/Receiving Messages: Issues
What Gets Sent: The Buffer
Generalizing the Buffer in MPI
Advantages of Datatypes
To Whom It Gets Sent: Process Identifiers
Generalizing the Process Identifier in MPI
Why use Process Groups?
How It Is Identified: Message Tags
Sample Program using Library
Correct Library Execution
Incorrect Library Execution
What Happened?
Solution to the Tag Problem
MPI Conventions
Standard Constants in MPI
The Six Fundamental MPI routines
MPI_Init -- Environment Management
MPI_Comm_rank -- Environment Inquiry
MPI_Comm_size -- Environment Inquiry
MPI_Finalize -- Environment Management
Hello World in C plus MPI
Comments on Parallel Input/Output - I
Comments on Parallel Input/Output - II
Blocking Send: MPI_Send(C) or MPI_SEND(Fortran)
Example MPI_SEND in Fortran
Blocking Receive: MPI_RECV(Fortran)
Blocking Receive: MPI_Recv(C)
Fortran example: Receive
Hello World:C Example of Send and Receive
HelloWorld, continued
Interpretation of Returned Message Status
Collective Communication
Some Collective Communication Operations
Hello World:C Example of Broadcast
Collective Computation
Examples of Collective Communication/Computation
Collective Computation Patterns
More Examples of Collective Communication/Computation
Data Movement (1)
Examples of MPI_ALLTOALL
Data Movement (2)
List of Collective Routines
Example Fortran: Performing a Sum
Example C: Computing Pi
Pi Example continued
Buffering Issues
Avoiding Buffering Costs
Combining Blocking and Send Modes
Cartesian Topologies
Defining a Cartesian Topology
MPI_Cart_coords or Who am I?
Who are my neighbors?
Periodic meshes
Motivation for Derived Datatypes in MPI
Derived Datatype Basics
Simple Example of Derived Datatype
Derived Datatypes: Vectors
Example of Vector type
Why is this interesting?
Use of Derived Types in Jacobi Iteration
Derived Datatypes: Indexed
Designing MPI Programs
Jacobi Iteration: The Problem
Jacobi Iteration: MPI Program Design
Jacobi Iteration: MPI Program Design
Jacobi Iteration: Fortran MPI Program
Jacobi Iteration: create topology
Jacobi iteration: data structures
Jacobi Iteration: send guard values
Jacobi Iteration: update and error
The MPI Timer
MPI-2
I/O included in MPI-2
|