72778 - HIGH-PERFORMANCE COMPUTING

Anno Accademico 2016/2017

  • Docente: Moreno Marzolla
  • Crediti formativi: 6
  • SSD: INF/01
  • Lingua di insegnamento: Italiano
  • Modalità didattica: Convenzionale - Lezioni in presenza
  • Campus: Cesena
  • Corso: Laurea in Ingegneria e scienze informatiche (cod. 8615)

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.

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 e valutazione 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