72778 - HIGH-PERFORMANCE COMPUTING

Scheda insegnamento

  • Docente Moreno Marzolla

  • Crediti formativi 6

  • SSD INF/01

  • Modalità di erogazione In presenza (Convenzionale)

  • Lingua di insegnamento Italiano

  • Orario delle lezioni dal 02/03/2017 al 24/05/2017

Anno Accademico 2016/2017

Conoscenze e abilità da conseguire

Al termine del corso lo studente possiede le basi fondamentali di programmazione parallela per sistemi multicore, cluster e GPGPU, conosce inoltre i principali paradigmi di programmazione parallela e gli ambienti di programmazione standard C++2011, OpenMP, MPI e OpenCL. L'ambiente di sviluppo usato e' VisualStudio con l'estensione di Intel Parallel Studio.

Programma/Contenuti

Programma

  • Algoritmi paralleli: modelli di calcolo sincroni e asincroni; pattern per la programmazione parallela
  • Introduzione alle architetture per il calcolo parallelo: tassonomia di Flynn; sistemi a memoria condivisa e distribuita; GPGPU
  • Pattern per la programmazione parallela (problemi embarassingly parallel; map/reduce; stencil; work farm)
  • Programmazione SIMD
  • Programmazione parallela su architetture a memoria condivisa con OpenMP
  • Programmazione parallela su architetture a memoria distribuita con MPI
  • Programmazione di GPU mediante CUDA
  • Valutazione delle prestazioni di programmi paralleli

Prerequisiti

Questo corso richiede una buona conoscenza della programmazione in linguaggio C in ambiente Unix/Linux, e delle architetture dei calcolatori (a livello di quanto presentato nel corso di architettura dei calcolatori).

Testi/Bibliografia

Metodi didattici

Lezioni frontali in aula; esercitazioni in laboratorio.

Modalità di verifica dell'apprendimento

Le conoscenze acquisite durante il corso verranno valutate mediante una prova scritta e un progetto di programmazione. La prova scritta si compone di alcune domande a quiz e/o a risposta aperta, riguardanti gli aspetti metodologici visti a lezione. Il progetto consiste nella realizzazione di un software, usando gli strumenti visti a lezione, e una relazione associata. Nella valutazione del progetto si terrà conto della correttezza dell'implementazione, della chiarezza ed efficienza del codice, nonché della qualità della relazione.

Strumenti a supporto della didattica

Lucidi delle lezioni; codici di esempio illustrati in laboratorio.

Link ad altre eventuali informazioni

http://www.moreno.marzolla.name/teaching/HPC/

Orario di ricevimento

Consulta il sito web di Moreno Marzolla