Obiettivi formativi
Il corso introduce i principi fondamentali del calcolo ad alte prestazioni (High Performance Computing, HPC), con l’obiettivo di fornire ai partecipanti le competenze teoriche e pratiche di base necessarie per sviluppare applicazioni parallele su sistemi multi-core e cluster di calcolo (supercalcolatori). Dopo una panoramica sulle architetture hardware e sui modelli di parallelismo, il corso affronta i principali paradigmi di programmazione parallela, con esempi pratici in MPI (Message Passing Interface) e OpenMP. Vengono inoltre introdotti i concetti di scalabilità, speedup, efficienza indispensabili per l’analisi delle prestazioni dei codici paralleli.
Agenda sintetica del Corso
Prima Parte
- Breve introduzione al calcolo ad alte prestazioni (HPC)
- Esempi concreti della necessità dei sistemi HPC: simulazioni numeriche e intelligenza artificiale
- Concetto di elaborazione parallela
- Le architetture parallele
- Il supercalcolatore CRESCO dell’ENEA
Seconda Parte
- Paradigmi della programmazione parallela
- Programmazione parallela Message Passing Interface (MPI)
- Programmazione parallela multithreading (OpenMP)
- Valutazione delle prestazioni di un programma parallelo
Iscrizione disponibile QUI