20410426 - IN480 - CALCOLO PARALLELO E DISTRIBUITO

Acquisire le tecniche di programmazione parallela e distribuita, e la conoscenza delle moderne architetture hardware e software per il calcolo scientifico ad alte prestazioni. Paradigmi di parallelizzazione, parallelizzazione su CPU che su GPU, sistemi a memoria distribuita. Applicazioni Data intensive, Memory Intensive and Compute Intensive. Analisi delle prestazioni nei sistemi HPC.

Curriculum

scheda docente | materiale didattico

Programma

- Introduzione al calcolo parallelo e distribuito
- Concetti base: architetture hardware e gerarchie di memorie
- Il linguaggio C
- Modelli di programmazione parallela
- MPI: Message Passing Interface
- Calcolo parallelo con OpenMP: Open Multiprocessing
- Input/Output parallelo
- Introduzione alla programmazione general-purpose su Graphics Processing Unit (GPU)
- CUDA e OpenCL

Testi Adottati

Introduction to Parallel Computing: From Algorithms to Programming on State-of-the-Art Platforms, Trobec, Slivnik, Bulić, Robič, Springer

Programming on Parallel Machines, Norm Matloff

Modalità Erogazione

Il corso consiste in lezioni frontali ed esercitazioni al computer.

Modalità Frequenza

Facoltativa (ma consigliata)

Modalità Valutazione

L'esame consiste nella realizzazione di un progetto e nella presentazione e discussione di una breve relazione sul progetto stesso e delle scelte implementative.

scheda docente | materiale didattico

Programma

- Introduzione al calcolo parallelo e distribuito
- Concetti base: architetture hardware e gerarchie di memorie
- Il linguaggio C
- Modelli di programmazione parallela
- MPI: Message Passing Interface
- Calcolo parallelo con OpenMP: Open Multiprocessing
- Input/Output parallelo
- Introduzione alla programmazione general-purpose su Graphics Processing Unit (GPU)
- CUDA e OpenCL

Testi Adottati

Introduction to Parallel Computing: From Algorithms to Programming on State-of-the-Art Platforms, Trobec, Slivnik, Bulić, Robič, Springer

Programming on Parallel Machines, Norm Matloff

Modalità Erogazione

Il corso consiste in lezioni frontali ed esercitazioni al computer.

Modalità Frequenza

Facoltativa (ma consigliata)

Modalità Valutazione

L'esame consiste nella realizzazione di un progetto e nella presentazione e discussione di una breve relazione sul progetto stesso e delle scelte implementative.

scheda docente | materiale didattico

Programma

- Introduzione al calcolo parallelo e distribuito
- Concetti base: architetture hardware e gerarchie di memorie
- Il linguaggio C
- Modelli di programmazione parallela
- MPI: Message Passing Interface
- Calcolo parallelo con OpenMP: Open Multiprocessing
- Input/Output parallelo
- Introduzione alla programmazione general-purpose su Graphics Processing Unit (GPU)
- CUDA e OpenCL

Testi Adottati

Introduction to Parallel Computing: From Algorithms to Programming on State-of-the-Art Platforms, Trobec, Slivnik, Bulić, Robič, Springer

Programming on Parallel Machines, Norm Matloff

Modalità Erogazione

Il corso consiste in lezioni frontali ed esercitazioni al computer.

Modalità Frequenza

Facoltativa (ma consigliata)

Modalità Valutazione

L'esame consiste nella realizzazione di un progetto e nella presentazione e discussione di una breve relazione sul progetto stesso e delle scelte implementative.