Piattaforme avanzate per il calcolo ad alte prestazioni. Architetture dei micro-processori, e parallelismo implicito. 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. Tecniche di programmazione con HadoopMapreduce.
Obiettivi Formativi
Conoscenze:
L'obiettivo del corso è quello di fornire allo studente le basi per lo sviluppo di algoritmi per architetture di calcolo emergenti per l'analisi di grandi volumi di dati (Web, social networks, ...).
Competenze acquisite:
Processori multi-core, processori GPU, architetture distribuite, hadoop Mapreduce.
Capacità acquisite (al termine del corso):
Al termine del corso lo studente sarà in possesso delle tecniche di progettazione ed analisi di algoritmi paralleli e distribuiti per l'analisi di grandi volumi di dati.
Programma del corso
Piattaforme avanzate per il calcolo ad alte prestazioni. Architetture dei micro-processori, e parallelismo implicito. 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. Tecniche di programmazione con HadoopMapreduce.