Parallel Programming Curriculum
From Education
Contents |
Background/Refreshers
MPI - Message Passing Interface
Presentations
- Tom's MPI Basics: 6+1 and Advanced MPI are available on Contra Costa's site
- Source slides typed by Kay are here (PPT)
- Notes typed by Kay from Tom's MPI II
- Toms deadlock.c
- Alex's version is available on the Earlham cluster CVS
- Kristina's version with Minnows and Geese
- Learning MPI on Sooner (PDF)
- SIPE Overview (PDF)
- SIPE Distributed Mem PDF or PPT
- SIPE Overview PDF or PPT
Handouts
Lab Exercises
- MPI Modifying Hello World Lab
- MPI Trapezoid Rule Lab
- MPI Duck, Duck... Goose! - practice MPI_Send, MPI_Recv in a ring; look at tags and MPI_Status values
- MPI Scatter/Gather Lab
- Another MPI Scatter/Gather Lab
openMP - Open Standard for Multi-Processing
Lab Exercises
Lab exercises on converting scalar code to parallel
The intent of these labs is that language neutral scalar code can be used for a variety of parallel explorations: shared, distributed, hybrid, and data parallel. The code is language neutral in the sense that the same code has been written in C, C++, and Fortran90, keeping to the spirit of each language, but also keeping the code flow and content as similar as possible.
Parameter studies can easily be run to assess performance characteristics of parallelization attempts, since the code is command line driven and there is a single line of output.
The code can also be used to explore numerical sensitivity and the non-commutativity of computer calculations.
Tom's numerical integration of x^2
Parallel Chicken Dance Brainstorm
Linear
- Getting in order (arrange) - shake hands
- Turn clockwise - 180*
Cube
- Turn clockwise - 90*
- Shake-show-trade
- Shaking hand while showing
