CPS615 Introduction to Computational Science The Message Passing Interface MPI

9/19/98


Click here to start


Table of Contents

CPS615 Introduction to Computational Science The 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

Author: Neil Jasper

Email: gcf@npac.syr.edu

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