Parallel High Performance Computing: tools, algorithms, and software
Insegnamento: Parallel High Performance Computing: tools, algorithms, and software
Titolo insegnamento in inglese: Parallel High Performance Computing: tools, algorithms, and software
Lingua: italiano
Anno di corso: 1
Semestre: 2
CFU: 6
Insegnamenti propedeutici previsti: Nessuno.
Docenti:
- Marco Lapegna
Obiettivi Formativi
Fornire idee di base, metodologie, strumenti per lo sviluppo di algoritmi e software in ambiente di calcolo ad alte prestazioni paralleli e/o distribuiti. Parte integrante del corso è l'attività di laboratorio.
Programma
Influenza della memoria gerarchica sulle prestazioni del software. Algoritmi a blocchi per l’algebra lineare e relativo software. Modelli di programmazione per gli ambienti di calcolo parallelo/distribuito ad alte prestazioni più diffusi: cluster computing, multicore computing, network computing e GPU computing. Esempi significativi di software parallelo ad alte prestazioni: ScaLAPACK, MAGMA. Cenni alle nuove tipologie di ambienti di calcolo: grid computing e cloud computing. Modelli di programmazione ibridi. Strumenti Python per il Calcolo Parallelo e ad Alte Prestazioni.
Modalità didattiche
Lezioni frontali e esercitazioni in laboratorio
Materiale didattico
• D. Kirk, W.W. Hwu, Programming Massively Parallel Processor second ed., Morgan Kaufman
• J. Dongarra et al., Sourcebook of parallel computing, Morgan Kaufman
• A. Murli, Lezioni di Calcolo Parallelo, Liguori ed.
• Risorse web, lucidi delle lezioni, materiale fornito dal docente
Modalità di esame
L'esame si articola in prova solo orale.
Discussione elaborati.