Architetture avanzate (2013/2014)

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

Orario lezioni

II semestre
Giorno Ora Tipo Luogo Note
martedì 8.30 - 10.30 lezione Laboratorio didattico Gamma  
mercoledì 8.30 - 10.30 lezione Non definito dal 3-mar-2014  al 4-mar-2014
mercoledì 8.30 - 10.30 lezione Aula B dal 12-mar-2014  al 22-apr-2014
mercoledì 8.30 - 10.30 lezione Aula B dal 30-apr-2014  al 13-mag-2014
mercoledì 8.30 - 10.30 lezione Aula B dal 28-mag-2014  al 13-giu-2014

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.

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
John L. Hennessy, David A. Patterson Computer Architecture - A Quantitative Approach (Edizione 5) Morgan Kaufmann 2011 012383872X

Modalità d'esame

Test abilitativo al progetto + progetto di laboratorio

Statistiche per i requisiti di trasparenza (Attuazione Art. 2 del D.M. 31/10/2007, n. 544)

Statistiche esiti
Esiti Esami Esiti Percentuali Media voti Deviazione Standard
Positivi 70.0% 29 1
Respinti --
Assenti 30.00%
Ritirati --
Annullati --
Distribuzione degli esiti positivi
18 19 20 21 22 23 24 25 26 27 28 29 30 30 e Lode
0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 14.2% 14.2% 28.5% 0.0% 42.8%

Valori relativi all'AA 2013/2014 calcolati su un totale di 20 iscritti. I valori in percentuale sono arrotondati al numero intero più vicino.