Piattaforme avanzate per il calcolo ad alte prestazioni. Architetture di micro-processori e parallelismo implicito. Approcci per nascondere latenza della memoria. Paradigmi di programmazione parallela. Decomposizione di algoritmi complessi. Bilanciamento del carico. Modelli analitici per programmazione parallela. Modelli di costo e valutazione delle prestazioni. Piattaforme avanzate: multi-core, many-core, processori grafici, cluster di grandi dimensioni. Tecniche di programmazione per GPU
Obiettivi Formativi
Conoscenze:
L'obiettivo del corso è quello di fornire allo studente le basi per lo sviluppo di algoritmi per architetture di calcolo emergenti.
Competenze acquisite:
Processori multi-core, processori GPU, ed architetture distribuite.
Capacità acquisite (al termine del corso):
Al termine del corso lo studente sarà in possesso delle tecniche di progettazione ed analisi di algoritmi paralleli.
Metodi Didattici
Numero di ore totali del corso: 150
Numero di ore per studio personale e altre attività formative di tipo individuale: 102
Numero di ore relative alle attività in aula: 48
Altre Informazioni
Frequenza delle lezioni ed esercitazioni: Raccomandata
Strumenti a supporto della didattica
UniFi E-Learning: http://e-l.unifi.it
Orario di ricevimento:
Su appuntamento.
claudio.lucchese@isti.cnr.it
Modalità di verifica apprendimento
Esame scritto e sviluppo di un'applicazione parallela.
Programma del corso
Piattaforme avanzate per il calcolo ad alte prestazioni. Architetture dei micro-processori, e parallelismo implicito. Approcci per nascondere la latenza della memoria. Paradigmi di programmazione parallela. Tecniche di decomposizione di algoritmi complessi. Bilanciamento del carico. Modelli analitici per la programmazione parallela. Modelli di costo e valutazione delle prestazioni. Piattaforme avanzate: multi- core,many-core, processori grafici, cluster di grandi dimensioni. Tecniche di programmazione per GPU.