Point-to-point, data types, and communicators

Overview

Addresses in MPI

Data messages (objects) being sent/received (passed around) in MPI are referred to by their addresses:

Parallel workflow

Individual processes rely on communication (message passing) to enforce workflow

Point-to-point communication

MPI_Send
MPI_Recv
Hands-on: send_recv.c
1
2
mpicc -o send_recv send_recv.c
mpirun --host compute01:1,compute02:1 -np 2 ./send_recv
Hands-on: p2p communication at scale
1
2
mpicc -o multi_send_recv multi_send_recv.c
mpirun --host compute01:2,compute02:2 -np 4 ./multi_send_recv
Hands-on: blocking risk
1
2
mpicc -o deadlock_send_recv deadlock_send_recv.c
mpirun --host compute01:1,compute02:1 -np 2 ./deadlock_send_recv