Back to Prof. Calhoun's Homepage

Parallel Scientific Computing (ME 471/571)

In this course, we will learn how to use parallel programming tools to solve problems in science and engineering. Topics covered include parallel tools available in Python, basics of MPI programming, CUDA programming for graphics processing units, and OpenMP (if time permits). We will also cover version control using Git, and build systems using Make. Basic programming skills in a compiled language such as C, C++ or Java is desirable, as is some knowledge of interpreted languages such as Python or Matlab.

Send me an e-mail

Please send me an e-mail at so that I can compile an e-mail list for the class. At the very least, include a subject header that says "ME 471". You may leave the message area blank, if you wish, or send me a short note about what you hope to get out of this course.

Basic course information

Instructor Prof. Donna Calhoun
Time Tues/Thurs 9:00-10:15
Place MG136 (Math Computing Lab)
Office Hours Wednesday 1:30-3:30
Prerequesites Prior programming experience

Return to top of page

Required and recommended textbooks

Return to top of page


Week #1 (Jan. 8)
Tuesday --  Introduction to terminal window, bash shell commands, OSX
Other items of interest :
Sample .bash_profile (.bash_profile)
Some useful or interesting links
In class notes, scripts and topics (Course Wiki)
Thursday --  Difference between Python lists and numpy arrays

Week #2 (Jan. 15)
Tuesday --  Introduction to multiprocessing module
Some useful or interesting links site (multiprocessing)
Thursday --  Using queues; Introduction to Pandas; timeit

Return to top of page

Homework assignments

Homework #1

Due 1/26, 5PM

Assignment :
Updates to homework :
 --  (1/21/2018) Added details on how to show timing results.

Homework #2

Due 2/18, 5PM

Assignment :
Other resources :
pool_matmult.ipynb  -- Jupyter notebook with Pool example.
Prob2_create_data.ipynb  -- Notebook to run MPI code
Prob2_accuracy.ipynb  -- Notebook to verify accuracy
Prob2_performance.ipynb  -- Notebook to plot scaling results
Updates to homework :
 --  (2/11/2018) Updated problem descriptions; added notebooks
 --  (2/12/2018) Fixed minor typo

Homework #3

Due 3/11, 5PM

Assignment :
Updates to homework :
 --  (2/27/2018) Minor typo fixes
Comments : See notebooks on course wiki for sample codes

Homework #4

Due TBA, 5PM

Assignment :
Updates to homework :
 --  (4/21/2018) Added more details on fractal problem; uploaded modified codes
Comments : Sample code available on Github site.

Return to top of page

Final Project

The final will be a final project

Return to top of page

Grading policy


Return to top of page