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 donnacalhoun@boisestate.edu 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


Lectures

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
Python.org site (multiprocessing)
Thursday --  Using queues; Introduction to Pandas; timeit

Return to top of page


Homework assignments

Homework #1

Due 1/26, 5PM

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

Homework #2

Due 2/18, 5PM

Assignment :
hmwk2.pdf
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

Return to top of page


Final Project

The final will be a final project

Return to top of page


Grading policy

TBA

Return to top of page