This course will provide a comprehensive knowledge of advanced topics in High Performance Computing in both distributed (using MPI) and shared (using OpenMP) memory paradigms.
Advanced techniques in single-core optimization will also be presented.
At the end of the course the students will be able to design massively parallel codes to be deployed on modern large-scale infrastructures and capable of effectively exploit the features of modern architectures.
Students are supposed to have good knowledge of C, or C++, and to master the basic topics in computer and CPU architecture, MPI and OpenMP.
Advanced High Performance Computing
Learning Goals
Program in pills
Single-core optimization: vectorization, effective exploiting of pipelines and instruction-level parallelism, accessing and using hardware performance counters.
Usage of advanced features and techniques of both MPI and OpenMP will be covered. Among other topics in MPI: the effective usage of MPI on large-scale systems with non-blocking communications and complex topologies, the remote inter-node memory access and the intra-node shared memory, massively parallel I/O. Among other topics in OpenMP: advanced affinity control, task decomposition, vectorizations and elements of heteogenous acceleration.
Area
Computer Science and Intensive Computing
Curriculum Foundations
TAF Type
Curriculum Industry
TAF Type
Curriculum Health
TAF Type
Curriculum Economy
TAF Type
SSD
ECTS
Semester
Lecturers
Luca Tornatore
Stefano Cozzini