Introduction to High Performance Computing
This is Introduction to High Performance Computing (CS1645/CS2045) at the University of Pittsburgh for Spring 2017/8.
Contacts | Office | ||
---|---|---|---|
Instructor | Bryan Mills | --- | --- |
Teaching Assistant | TBD | --- | --- |
Goal
This course is an introduction to the architecture of and software techniques for parallel and high performance computing systems. The content includes fundamental architecture aspects of shared-memory and distributed-memory systems, as well as paradigms, algorithms and languages used to program parallel systems. Students will complete a number of projects demonstrating specific applications on parallel processing systems.
The Syllabus provides more details on the class meeting times, prerequisites, grading, and topics covered.
Textbook
"An Introduction to Parallel Programming" by Peter Pacheco (Morgan Kaufman, 2011, ISBN:978-0123742605).
Schedule
Date | Topic | Reading | Assignment |
---|---|---|---|
Jan 8 | Introduction to HPC (notes) | Chapter 1 | HW1 |
Jan 10 | Parallel Hardware and Software (notes) | Chapter 2.1 & 2.2 | |
Jan 15 | No Class - MLK Day | ----- | ----- |
Jan 17 | Posix Threads (notes) | Chapter 4.2-4.6 | HW2 |
Jan 22 | Lab Day - Professor at conference | ----- | HW3 |
Jan 24 | Lab Day - Professor at conference | ----- | ----- |
Jan 29 | Posix Critical Sections (cont) | Chapter 4.4-4.9 | ----- |
Jan 31 | HW1 Review + Hardware & Interconnects | Chapter 2.3 | HW4 |
Feb 5 | Interconnects (notes) | Chapter 2.3 | |
Feb 7 | No Class - Sick Day | Chapter 2 | |
Feb 12 | OpenMP (notes) | Chapter 5 | HW5 |
Feb 14 | Parallel Sorting OpenMP (notes) | Chapter 5 | |
Feb 19 | Parallel Patterns (notes) | ---- | HW6 |
Feb 21 | Parallel Scan (notes) | ---- | |
Feb 26 | Review + MPI | ---- | |
Feb 28 | Mid-term (playlist) | ---- | |
------ | Spring Break | ---- | |
Mar 12 | MPI (notes) | Chapter 3.1-3.4.5 | HW7 |
Mar 14 | MPI | ---- | |
Mar 19 | More MPI (notes) | Chapter 3.4 | |
Mar 21 | HW Review | HW8 | |
Mar 26 | More MPI (cont.) | Chapter 3.5, 3.6 & 3.8 | |
Mar 28 | Intro to Cuda (notes) | ||
Apr 2 | Intro to Cuda | HW9 | |
Apr 4 | GPU Optimization (notes) | ||
Apr 9 | GPU Algorithms (notes) | ||
Apr 11 | GPU Sorting (notes) | HW10 | |
Apr 16 | Resilience + Review (final review) | ||
Apr 18 | Final Exam! | ||
Apr 25 | Graduate Report Due! |
Project
Graduate students are required to work on a research project as a final project. The result of this project will be a research paper describing the project and the contribution the student has made. The project will be specified by the student in a proposal that will be due after the mid-term exam and must be approved by the instructor. Topics have to be related to one of the following:
- Evaluation of Parallel Computing tools
- Design and implementation of new parallel algorithm
- Design of new parallel system tool
- Design of new parallel computing model
- Parallelization of existing scientific code
- Survey of some parallel computing topic