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