Architetture avanzate (2015/2016)

Codice insegnamento
4S02910
Docente
Nicola Bombieri
Coordinatore
Nicola Bombieri
crediti
6
Settore disciplinare
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Lingua di erogazione
Italiano
Periodo
II semestre dal 1-mar-2016 al 10-giu-2016.

Orario lezioni

II semestre
Giorno Ora Tipo Luogo Note
giovedì 14.30 - 17.30 laboratorio Laboratorio didattico Gamma  
venerdì 10.30 - 13.30 lezione Aula I  

Obiettivi formativi

Definizione, specifica e analisi di architetture di calcolo avanzate con particolare enfasi alle piattaforme embedded multiprocessore e GP-GPU.

Programma

Modulo TEORIA (32 ore):
-) Introduzione al parallelismo e alle architetture parallele.
-) Progettazione di programmi per architetture parallele.
-) Modelli di programmazione parallela.
-) Misura e analisi delle prestazioni.
-) Legge di Amdhal e metriche per la misura delle prestazioni.
-) Pipeline: concetti base ed avanzati.
-) Instruction-level parallelism (ILP).
-) Tecniche avanzate di branch prediction, static scheduling e speculation.
-) Gerarchie di memoria: concetti base ed avanzati.
-) Tecniche avanzate per l'ottimizzazione delle performance della cache.
-) Memoria virtuale.
-) Thread-level parallelism (TLP).
-) Coerenza della cache in architetture shared-memory.
-) Protocolli Snoopy.
-) Data-level parallelism (DLP).
-) General purpose Graphic Processing Unit (GP-GPU).
-) Programmazione di architetture GP-GPU con CUDA e OpenCL.
-) Introduzione a Grid e Cloud Computing.

Modulo LABORATORIO (24 ore):
-) Utilizzo di compilatori paralleli per architetture multiprocessore (OpenMP).
-) Utilizzo di compilatori paralleli per architetture multicomputer (MPI).
-) Programmazione GP-GPU: CUDA, OpenCL.

Per seguire con profitto l'insegnamento è consigliabile che lo studente abbia già acquisito competenze in:
*) Fondamenti di architettura degli elaboratori. In particolare: il set di istruzioni, unità di elaborazione, gerarchia di memoria, pipeline.
*) Fondamenti di sistemi operativi. In particolare: concetto di processo e thread, virtualizzazione memoria.
*) Fondamenti di programmazione. In particolare: concetti base di programmazione C e Assembly.

Modalità d'esame

Test abilitativo al progetto + progetto di laboratorio

Opinione studenti frequentanti - 2015/2016