Course Description

This course gives a basic introduction to parallel architectures and programming (distributed, shared memory, and GPU). We shall study how algorithms interact with these architectures, performance analysis, understanding compiler optimizations, and techniques for writing efficient code. Selected numerical methods will be presented. Current trends in HPC, such as mixed-precision computations will be discussed. The focus will be on the C/C++ languages. Interoperability with other languages (e.g. Fortran) will be addressed.