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