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.