The emphasis is on teaching skills in using MPI, the message passing interface, and OpenMP, shared-memory parallel programming. A disciplined approach to methods of measuring program performance is also highlighted. The school also features GPU programming and discussions of future programming models.
Modern Computer Architectures
A survey of the aspects of processors, memory hierarchies, switch and networking technologies relevant for programming of HPC applications.
Basic ideas in parallel algorithms will be covered in the framework of numerical linear algebra. The potential for parallelization and parallelization techniques in different fields of applications will be discussed.
Code optimizations for distributed- and shared-memory machines.
Real-world examples from a variety of areas.