Textbooks:
Course Summary: A course in design, analysis, and implementation of algorithms for parallel programming. Sorting, searching, matrix multiplication, graph theory and other fundamental areas of computation are considered for parallel program design. Students will implement parallel algorithms on parallel architectures, such as GPUs.
The dates below are tentative. Actual due dates are always and exclusively found via Canvas. Beware due dates from 2019. If you see a due date in Canvas for 2019, I have not yet assigned that work!!! The assignment may well change before I give it out, setting an actual due date.
Date | Topics |
1/6, 8 | Introduction to Parallelism |
1/13, 15 | CUDA and C Example: Basic vector addition |
1/20 MLK Day (no classes), 22 | CUDA memory model. Chapter 3 |
1/27, 29 | CUDA memory model (cont.) CUDA memory model. Chapter 4 |
2/3, 5 | CUDA memory model. Chapter 4 Performance Considerations. Chapter 5 |
2/10, 12 On-line classes | Performance Considerations. Chapter 5 Parallel Pattern: Convolution |
2/17, 19 | Parallel Patttern: Prefix Sum Parallel Pattern: Histogram Calculation
|
2/24-28 Winter Break |
|
3/2, 4 | Parallel Pattern: Spare matrix calculations Parallel Merge Sort
|
3/9, 11 | Parallel graph search |
3/16, 18 | Dynamic Parallelism |
3/23, 25 | Case study: non-Cartesian magnetic resonance imaging Case study: molecula(r visualization and analysis |
3/30, 4/1 | Case study: machine learning |
4/6, 8 | Parallel programming and computational thinking |
4/13, 15 | MPI (heterogenous clusters) and OpenACC |
4/20 | OpenACC |
4/27 5:30 | Final Exam, 5:30 PM |
Students will submit written and programming assignments. In addition there will be lab assignments throughout the course.
The final course grade will be a weighted average of the grades received
in each of the following categories, as specified: Assignments 60% (of this 70% are programming, 10% for writtten, and 20% for labs), Midterm exam 20%, Final exam
20%.
Tardiness Policy: Programming and other homework assignments will be due at the beginning of class. After that, assignments will be accepted through the start of the next scheduled class, but will suffer a full grade penalty. E.g., if a late programming assignment is worthy of an 'A', I will mark it a 'B'. Assignments more than one class late will not be accepted, and will receive a grade of 'F'. Missed assignments, and exams shall only be excused by a doctor's written note, verifying that the student was medically indisposed to participate on that day.
Grading of Programs: Programs shall be submitted to the online "dropbox" corresponding to each assignment and will consist of a zip file of the source code or of an Eclipse project directory. The zip file should also contain a file named "README.txt", a simple text file, containing any directions I might need to run your program, as well as a description of any known bugs in the program. Grading of programming assignments will reflect three factors, weighted as shown.
Students should view Canvas regularly for announcements regarding programming assignments, readings, etc. I update Canvas frequently!
The Halle Library provides excellent resources for writing and research (including avoiding plagiarism). You can get more information on this at this link: https://docs.google.com/document/d/1KaCkdV59k2eo7GepHnrimPOhPcXONdXe6hh2A2KJjmE/edit