Parallel and Distributed Computing

Parallel and Distributed Computing

Insegnamento: Parallel and Distributed Computing

Titolo insegnamento in inglese:  Parallel and Distributed Computing

Lingua: italiano

Anno di corso: 1

Semestre: 1

CFU: 6

Insegnamenti propedeutici previsti: Nessuno.

Docenti:

  • Giuliano Laccetti 

Obiettivi Formativi

Fornire idee di base, metodologie, strumenti software per lo sviluppo di algoritmi in ambiente di calcolo parallelo e/o distribuito. Parte integrante del corso è l'attività di laboratorio. 

Programma 

Concetto di “parallelismo” e di “alte prestazioni”. I supercomputer. Classificazione e principali caratteristiche funzionali delle architetture parallele (classificazione di Flynn, rivista e aggiornata).  Parametri di valutazione delle prestazioni degli algoritmi paralleli. I parametri classici di SpeedUp ed Efficiency. Metodologie per lo sviluppo di algoritmi paralleli e loro dipendenza dall'architettura. Esempi di progettazione e implementazione di algoritmi su architetture di tipo MIMD distributed memory (uso di message programming; la libreria MPI) e di tipo MIMD shared memory (l’esempio dei multicore; condivisione di memoria; la libreria OpenMP). Parametri di valutazione e scalabilità degli algoritmi paralleli. SpeedUp scalato ed Efficiency scalata. Legge di Amdahl; legge di Ware generalizzata. Legge di Gustafson.   Il bilanciamento del Carico. Vari esempi (e relativa implementazione) di algoritmi paralleli per il calcolo matriciale. Cenni alle GPU e alla libreria CUDA. La documentazione del software parallelo: linee guida.

Modalità didattiche

Lezioni frontali e attività in laboratorio; sviluppo di piccoli progetti durante il corso. 

Materiale didattico 

- A. Murli:  Lezioni di Calcolo Parallelo, Liguori Editore.

- B. Chapman, G. Jost, R. van der Pas: Using OpenMP. Portable Shared Memory Parallel Programming”, The MIT Press, 2007

- un manuale di MPI

- un manuale di OpenMp

- Slides delle lezioni; altro materiale fornito dal docente 

Modalità di esame

L'esame si articola in prova scritta ed orale. 

In caso di prova scritta i quesiti sono a risposta libera ed esercizi numerici. 

Realizzazione e consegna di piccoli progetti durante il corso; OPPURE prova pratica di Laboratorio