Advanced High Performance Computing

Learning Goals

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.

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

D

Curriculum Industry
TAF Type

D

Curriculum Health
TAF Type

D

Curriculum Economy
TAF Type

SSD

INF/01

ECTS

6

Semester

2

Lecturers

Luca Tornatore
Stefano Cozzini