Programma di Sistemi Di Calcolo Parallelo E Applicazioni:
Prima parte
Programmazione parallela a memoria distribuita
Concetti generali di programmazione parallela
Il modello di programmazione MPI:
- Ambiente, tipi di dato;
- Comunicazioni punto-punto: blocking, non-blocking, semantica delle
comunicazioni
- Comunicazioni collettive: globali, non-blocking, neighbour-collectives,
comunicazioni persistenti;
- Tipi di dato derivati;
- Comunicatori, gruppi, topologie;
- Comunicazioni one-sided
Esempi applicativi
Cenni ai modelli di programmazione PGAS: CoArrays, UPC.
Seconda parte: Programmazione parallela a memoria condivisa tramite direttive
Il modello di programmazione OpenMP:
- Programmazione di thread, modello di esecuzione, modello di
coerenza della memoria;
- Direttive di compilazione, regioni parallele;
- Parallelizzazione di cicli;
- Gestione della memoria;
- Programmazione di task
Cenni ad OpenACC
Esempi applicativi
Terza parte: CUDA
- Acceleratori grafici
- Programmazione in CUDA
- Esempi applicativi