Titolo insegnamento in inglese: Parallel and Distributed Computing
Lingua: italiano
Insegnamento: Parallel and Distributed Computing
Anno di corso: II
CFU: 6
Semestre: 1
Docenti:
- Canale unico: Giuliano Laccetti
Insegnamenti propedeutici previsti
nessuno
Obiettivi Formativi
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. Il bilanciamento del Carico. Algoritmi tolleranti alla latenza e ai guasti. I/0 parallelo. Algoritmi di base in ambiente parallelo e distribuito: ordinamenti, calcolo matriciale
Contenuti
Parte integrante del corso sono le attività di laboratorio. Durante il corso, presentazione a scadenza fissata d 2-3 miniprogetti, da realizzare in ambiente MPI e/o OpenMP; la presentazione in tempo utile (e la sufficienza della qualità del lavoro) di tali miniprogetti, esonera gli studenti dalla prova d’esame al calcolatore.
Modalità didattiche
Lezioni frontali. Esercitazioni.
Modalità di esame
L'esame si articola in prova scritta e orale.
La prova scritta è a risposta libera, con esercizi numerici, Sviluppo di progetti durante il corso; Prova al calcolatore .