Class Goals
This course provides students with knowledge of the fundamental concepts of
high performance computing as well as hands-on experience of the core
technology in the field. By the end of the course, students will be
proficient in performance analysis and performance tuning for sequential
programs, parallel programs on shared-memory architectures, parallel
programs on distributed-memory architecture, and parallel programs on
hybrid architectures.
Textbook
Parallel Algorithms, by H. Casanova, A. Legrand, and Y. Robert. Chapman & Hall, 2008. Available from amazon.com.
Syllabus
The syllabus for the class is available here in PDF format.
These papers are to be read by all students before 11/15.
Projects need to be chosen by students before 10/27. Guidelines for projects and possible project topics are listed here.
| Topic | Notes, Links, Reading |
| Course details and Introduction | [PPT] [PDF] |
| Parallel Architectures | [PPT] [PDF] |
| Sequential Peformance | [PPT] [PDF] |
| How to use our cluster (for 1-node jobs) | [PPT] [PDF] |
| Programming with Threads | [PPT] [PDF] |
| Concurrency and Performance | [PPT] [PDF] |
| Shared Memory Programs | [PPT] [PDF] |
| MPI | [PPT]
[PDF] A MPI Tutorial |
| Virtual Topologies | [PPT]
[PDF]
Section 3.1.2, 4.6 |
| Communication on a Ring | [PPT]
[PDF]
Section 3.3, 3.2.1 |
| Algorithms on a Ring | [PPT]
[PDF]
Section 4.1, 4.2 |
| Algorithms on a Ring (II) | [PPT]
[PDF]
Section 4.3, 4.4, 4.5 |
| Algorithms on a Grid (I) | [PPT]
[PDF]
Section 5.2, 5.3.1, 5.3.2 |
| Algorithms on a Grid (II) | [PPT]
[PDF]
Section 5.3.3, 5.3.4, 5.4 |
| Heterogeneous Load-Balancing | [PPT]
[PDF]
Section 6.1, 6.2 |
| Scheduling | [PPT]
[PDF]
Chapter 7 (overview only) |
| Map-Reduce | [PPT] [PDF] |
| Job Scheduling | [PPT] [PDF] |
| Grid Computing | [PPT] [PDF] |
| Distributed Systems | [PPT] [PDF] |
| Theoretical Parallel Computing | [PPT] [PDF] |