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. Computing facilities available on the BSU campus will also be discussed. 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, Matlab or Julia.
- Basic course information
- Required and recommended textbooks
- Lectures
- Homework assignments
- Final Project
- Grading policy
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 | Mon/Wed 3:00-4:15 |
Place | MG136 (Math Computing Lab) |
Office Hours | Tuesday 1:30-3:00, or by appt. |
Prerequesites | Prior programming experience |
Required and recommended textbooks
- Introduction to High Performance Scientific Computing, by Victor Eijkhout, with Edmond Chow, Robert van de Geijn. , (2015) (suggested).
- Parallel Programming with MPI, by Peter Pacheco. Morgan Kaufmann, (1996) (suggested).
- 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).
Lectures
Week #1 (Jan. 10) |
Monday --
Introduction to terminal window, bash shell commands, OSX
|
Week #2 (Jan. 15) | |
Week #3 (Jan. 27) | |
Week #4 (Feb. 3) | |
Week #5 (Feb. 10) | |
Week #6 (Feb. 17) | |
Week #7 (Feb. 24) | |
Week #8 (Mar. 2) | |
Week #9 (Mar. 9) | |
Week #10 (Mar. 16) | |
Week #11 (Mar. 30) | |
Week #12 (Apr. 6) | |
Week #13 (Apr. 13) | |
Week #14 (Apr. 20) | |
Week #15 (Apr. 27) |
Homework assignments
Homework #1 |
Due Feb. 1 (tentative)
|
Homework #2 |
Due Feb. 28 (tentative)
|
Homework #3 |
Due March 13
|
Homework #4 |
Due April 10 (tentative)
|
Homework #5 |
Due May 1 (tentative)
|
Final Project
The final will be a final project
Grading policy
Grades will be based on successful completion of all homeworks. Students missing one or more homeworks can expect to only receive a grade not greater than a B.