程序代写代做代考 Microsoft PowerPoint – Chapter 6 – Programming Using the Message Passing Interface

Microsoft PowerPoint – Chapter 6 – Programming Using the Message Passing Interface

Introduction to
Parallel Computing

Irene Moulitsas
Programming using the
Message-Passing Paradigm

MPI Background
MPI : Message Passing Interface
Began in Supercomputing ’92

Vendors
IBM, Intel, Cray

Library writers
PVM

Application specialists
National Laboratories, Universities

Why MPI ?
One of the oldest libraries
Wide-spread adoption. Portable.
Minimal requirements on the underlying
hardware
Explicit parallelization

Intellectually demanding
Achieves high performance
Scales to large number of processors

MPI Programming Structure
Asynchronous

Hard to reason
Non-deterministic behavior

Loosely synchronous
Synchronize to perform interactions
Easier to reason

SPMD
Single Program Multiple Data

MPI Features
Communicator Information
Point to Point communication
Collective Communication
Topology Support
Error Handling

Six Golden MPI Functions
MPI is 125 functions
MPI has 6 most used functions

MPI Functions: Initialization

Must be called by all processes
MPI_SUCCESS

“mpi.h”

MPI Functions: Communicator

MPI_Comm
MPI_COMM_WORLD

Hello World !

Hello World ! (correct)

MPI Functions: Send, Recv

source
MPI_ANY_SOURCE

MPI_Status
MPI_SOURCE
MPI_TAG
MPI_ERROR

MPI Functions: Datatypes

Send/Receive Examples

Blocking Non-Buffered
Communication

Send/Receive Examples

Blocking Buffered Communication

Send/Receive Examples

MPI Functions: SendRecv

MPI Functions: ISend, IRecv

Non-blocking
MPI_Request

MPI Functions: Test, Wait

MPI_Test tests if operation finished.
MPI_Wait blocks until operation is finished.

Non-Blocking Non-Buffered
Communication

Example

Example

Example

MPI Functions: Synchronization

Collective Communications
One-to-All Broadcast
All-to-One Reduction
All-to-All Broadcast & Reduction
All-Reduce & Prefix-Sum
Scatter and Gather
All-to-All Personalized

MPI Functions: Broadcast

MPI Functions: Scatter & Gather

MPI Functions: All Gather

MPI Functions: All-to-All Personalized

MPI Functions: Reduction

MPI Functions: Operations

MPI Functions: All-reduce
Same as MPI_Reduce, but all processes receive
the result of MPI_Op operation.

MPI Functions: Prefix Scan

MPI Names

MPI Functions: Topology

Performance Evaluation
Elapsed (wall-clock) time

Matrix/Vector Multiply