| MPI I |
Processes, Messages, and the Machine |
Six separate rooms: SPMD, the four-call skeleton, Send/Recv, Probe before Recv, barrier-fenced timing, Slurm and one-process-per-node |
| MPI II |
Splitting the Work, Timing It, Talking to It |
The trapezoid split by rank, linear vs tree merge, the cost model and when splitting pays, whose clock counts, who does I/O |
| One File, Three Questions |
Code walk: the hand merge, designing MPI_Reduce and MPI_Bcast, the n/p bug that prints a plausible answer, the fix, timing rules |
| MPI III |
Moving the Data, Not Just the Answer |
Scatter/Gather and the bytes bill, Scatterv counts and displs, the collectives family and rules, t(m) = α + m·β and the 40 KB crossover |
| Five Ways to Add Two Vectors |
Code walk: the N/p and ANY_SOURCE bugs, counts and displs by hand, the same in three calls, cyclic deals and the pack loop |
| MPI IV |
Describe the Data, Don't Copy It |
Struct padding and offsets, size vs extent, Type_vector for a column, resized types, Boost.MPI and what the wrapper costs |
| One Record, One Column, One Deal |
Code walk: the guessed-offsets bug byte by byte, pack and position, Boost serialize, the column, the resized cyclic scatter |
| MPI V |
Who Am I Talking To? |
Comm_split color and key, context and dup, the ragged two-stage sum, groups, Cartesian grids, Cart_shift and PROC_NULL, strips vs blocks |
| MPI VI |
Hang, Wrong, Crash, Silent |
Sorting every bug by symptom, eager vs rendezvous, choosing p from the shape, tracing a hang, error handlers, the silent Bcast, one model for R01–R04 |
| MPI Review |
MPI Quiz/Exam Review |
Messages, costs, and the bugs that pass. Weeks 3–8: SPMD, collectives, the cost model, derived types, communicators, hang/wrong/crash/silent, metrics |