Distributed Programming with MPI
For the final project, you will gain experience with another form of parallelism based on CPUs rather than GPUs: Message Passing. The project will be divided into 4 sections. You will submit the deliverables for each section as a group using GitHub classroom (except for Part 0, which will be completed individually by each of you).
Below are the descriptions, deadlines and deliverables for each part of the project:
-
Section 0 - Getting started with GitHub, the HPCC and MPI: Due Tuesday, March 17, 11:59 pm.
The purpose of this section assignment is to familiarize you with the way assignments are submitted through GitHub classroom, with MSU's High Performance Computing Center (HPCC), and to implement an extremely simple multi-core hello world program.
Deliverables:
- Multi-core
hello.cpp - Reflections in
README.md
- Multi-core
-
Section 1 - Eat some Pi: Due Thursday, March 26, 11:59 pm.
You will use message passing to implement a distributed Monte Carlo simulation that calculates the value of Pi. This section will familiarize you with the concepts of scaling: weak and strong.
Deliverables:- Code: your parallel implementations of the computation. The assignment aks you to iteratively modify your code. To avoid creating too many versions of your program (
.sh, and.cppfiles) you may document your progress through your commit history (see this link to learn how to tag and annotate your commits). If you prefer to create separate files for each implementation, you must document what each file does and how to run it in yourREADME.md. - Write-up: This is the most important part of your submission. Make sure to clerly respond to the questions, include your figures, and provide a discussion and interpretation for them.
- Code: your parallel implementations of the computation. The assignment aks you to iteratively modify your code. To avoid creating too many versions of your program (
-
Section 2 - MPI Ping-Pong and Ring Shift: Due Thursday, April 9, 11:59 pm.
-
Section 3 - Advanced MPI Topics: Due Thursday, April 30, 12:00 pm.