resources

CISC 811 - High Performance Computing

PREREQUISITE: Permission of the Instructor for students not registered in the CSE Master's specialization.

This course covers the principles and practices of current high performance computing architectures and software, with a focus on applications and performance. Shared-memory parallel, distributed-memory parallel, and grid computing architectures, and their associated programming paradigms will be reviewed. The HPC productivity crisis and possible solutions will be examined. Contemporary tools for analyzing, debugging and optimizing the performance of algorithms relevant to computational science will be introduced. High performance libraries and development frameworks will also be covered.

Syllabus:

1. Performance issues and measurement: Profiling and development tools, Sustained versus peak performance

2. High performance sequential computing: Effects of the memory hierarchy, Out-of-order execution, superscalar processors

3. Vector processing

4. Shared-memory processing: Architectures (extensions of the memory hierarchy), Programming paradigms, OpenMP

5. Distributed-memory processing: Architectural issues (networks and interconnects), Programming paradigms, MPI (+MPI2)

6. Grids: Computational grids, Data grids

7. Performance libraries and packages

8. The productivity crisis & future directions: Development overheads, Petaflops programming, New parallel languages: UPC, Titanium, Co-Array FORTRAN

back