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.
- Basic course information
- Required and recommended textbooks
- Homework assignments
- Final Project
- Grading policy
Send me an e-mail
Please send me an e-mail at firstname.lastname@example.org 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|
|Place||MG136 (Math Computing Lab)|
|Office Hours||Wednesday 1:30-3:30|
|Prerequesites||Prior programming experience|
Required and recommended textbooks
- Parallel Programming with MPI, by Peter Pacheco. Morgan Kaufmann, (1996) (required).
- Professional C CUDA Programming, by John Cheng, Max Grossman, Ty McKercher. Wrox, (2014) (suggested).
- CUDA by Example, by Jason Sanders and Edward Kandrot. NVIDIA, (2011) (suggested).
- A Primer on Scientific Programming with Python, by Hans Petter Langtangen. Springer, (2016) (suggested).
- Python : Visual Quickstart Guide (3rd Edition), by Toby Donaldson. Peachpit Press, (2013) (suggested).
|Week #1 (Jan. 8)||
Tuesday -- Introduction to terminal window, bash shell commands, OSX
Thursday -- Difference between Python lists and numpy arrays
|Week #2 (Jan. 15)||
Tuesday -- Introduction to multiprocessing module
Thursday -- Using queues; Introduction to Pandas; timeit
Due 1/26, 5PM
Due 2/18, 5PM
Due 3/11, 5PM
Due TBA, 5PM
The final will be a final project