|
Insegnamento
CALCOLO PARALLELO
IN02119427, A.A. 2014/15
Informazioni valide per gli studenti immatricolati nell'A.A. 2014/15
Dettaglio crediti formativi
Tipologia |
Ambito Disciplinare |
Settore Scientifico-Disciplinare |
Crediti |
CARATTERIZZANTE |
Ingegneria informatica |
ING-INF/05 |
9.0 |
Organizzazione dell'insegnamento
Periodo di erogazione |
Secondo semestre |
Anno di corso |
A scelta dello studente |
Modalità di erogazione |
frontale |
Tipo ore |
Crediti |
Ore di didattica assistita |
Ore Studio Individuale |
LEZIONE |
9.0 |
72 |
153.0 |
Inizio attività didattiche |
02/03/2015 |
Fine attività didattiche |
12/06/2015 |
Visualizza il calendario delle lezioni |
Lezioni 2018/19 Ord.2009
|
Commissioni d'esame
Commissione |
Dal |
Al |
Membri |
9 A.A. 2018/2019 |
01/10/2018 |
15/03/2020 |
BILARDI
GIANFRANCO
(Presidente)
VANDIN
FABIO
(Membro Effettivo)
FANTOZZI
CARLO
(Supplente)
PESERICO STECCHINI NEGRI DE SALVI
ENOCH
(Supplente)
PIETRACAPRINA
ANDREA ALBERTO
(Supplente)
PUCCI
GEPPINO
(Supplente)
SILVESTRI
FRANCESCO
(Supplente)
|
8 A.A. 2017/2018 |
01/10/2017 |
15/03/2019 |
BILARDI
GIANFRANCO
(Presidente)
PIETRACAPRINA
ANDREA ALBERTO
(Membro Effettivo)
COMIN
MATTEO
(Supplente)
FANTOZZI
CARLO
(Supplente)
PESERICO STECCHINI NEGRI DE SALVI
ENOCH
(Supplente)
PUCCI
GEPPINO
(Supplente)
SATTA
GIORGIO
(Supplente)
|
7 A.A. 2015/2016 |
01/10/2015 |
15/03/2017 |
VANDIN
FABIO
(Presidente)
PIETRACAPRINA
ANDREA ALBERTO
(Membro Effettivo)
FANTOZZI
CARLO
(Supplente)
PUCCI
GEPPINO
(Supplente)
|
6 A.A. 2014/2015 |
01/10/2014 |
15/03/2016 |
BILARDI
GIANFRANCO
(Presidente)
PIETRACAPRINA
ANDREA ALBERTO
(Membro Effettivo)
COMIN
MATTEO
(Supplente)
FANTOZZI
CARLO
(Supplente)
PESERICO STECCHINI NEGRI DE SALVI
ENOCH
(Supplente)
PUCCI
GEPPINO
(Supplente)
SATTA
GIORGIO
(Supplente)
|
5 |
01/10/2013 |
15/03/2015 |
BILARDI
GIANFRANCO
(Presidente)
FANTOZZI
CARLO
(Membro Effettivo)
PIETRACAPRINA
ANDREA ALBERTO
(Supplente)
PUCCI
GEPPINO
(Supplente)
|
Prerequisiti:
|
- Progetto ed analisi di algoritmi sequenziali
- Programmazione di algoritmi sequenziali
- Architetture degli elaboratori con processore seriale
- Teoria della computatione |
Conoscenze e abilita' da acquisire:
|
- Il corso si propone di fornire un quadro teorico per la progettazione e l'utilizzo efficiente dei sistemi di calcolo parallelo, con applicazioni ai multiprocessori, alle schede grafiche (GPU), ai sistemi riconfigurabili (FPGA), e ai sistemi di supercalcolo.
- Le tematiche principali affrontate sono: progettazione edanalisi di algoritmi paralleli, analisi di architetture parallele, programmazione parallela (con attivita' di laboratorio), ottimizzazione congiunta di algoritmo e architettura nella realizzazione mediante circuiti integrati. |
Modalita' di esame:
|
E' prevista una prova scritta ed un eventuale approfondimento orale. Il voto d'esame tiene anche conto dei delle attivita' di laboratorio di progammazione parallela. |
Criteri di valutazione:
|
La valutazione della preparazione dello studente si basa sul livello di padronanza dei concetti e dei metodi presentati nelle lezioni. Particolare enfasi viene posta sulla capacita' di risolvere problemi che richiedono un certo livello di creativita' per essere ricondotti ai concetti e metodi acquisiti nel corso. |
Contenuti:
|
- L'evoluzione verso il parallelismo dei sistemi di calcolo ed il ruolo di algoritmi, linguaggi di programmazione, architetture degli elaboratori e tecnologie dei circuiti integrati.
- Parallelismo implicito, sfruttato da compilatori e processori. Parallelismo nell'organizzazione dei microprocessori: architetture superscalari e "very long instruction word". Accenni alle tecniche di "branch prediction", "register renaming" e "dynamic scheduling".
- Elementi di algoritmica parallela. Quantificazione del parallelismo di un algoritmo. Lavoro e cammino critico di un algoritmo. Legge di Brent. Progettazione ed analisi delle prestazioni di algoritmi paralleli. Algoritmi per vari problemi computazionali tra cui il calcolo di funzioni associative, il calcolo dell'evoluzione di sistemi dinamici finiti, le operazioni base dell'algebra lineare, la fusione e l'ordinamento di sequenze, la trasformata di Fourier, l'istradamento dei messaggi in una rete.
- Linguaggi di programmazione per il parallelismo. Introduzione a MPI.
- Struttura e funzionamento delle macchine parallele. Reti di
processori. Topologie di interconnessione: "array" lineare, anello, "mesh", toro, "array" multidimensionali, ipercubo, "shuffle-exchange", "cube-connected cycles", albero, "fat-tree". Metriche di diametro e banda di una rete.
- Istradamento dei messaggi: tecniche di routing per varie topologie. Teoria dell'"embedding" e della simulazione tra macchine parallele. Metriche di carico, dilatazione e congestione di un "embedding". Sistemi di memoria gerarchica e distribuita.
- La complessita' delle realizazione mediante circuiti VLSI ("Very Large Scale Integration"). Concetto di layout. Area e volume delle reti e loro relazione con le metriche di banda. Complessita' area-tempo dei problemi computationali. Reti universali. |
Attivita' di apprendimento previste e metodologie di insegnamento:
|
- L'insegnamento si basa su lezioni frontali e su attivita' di laboratorio di progammazione parallelo.
- Oltre a presentare i contenuti del corso, le lezioni dedicano spazio significativo al processo di sviluppo delle idee e del loro utilizzo innovativo, in contesti differenti da quello nel quale sono state apprese.
- I testi di esame delle annate precedenti vengono messi a disposizione degli allievi, per fornire un campione di problemi che mettono alla prova sia la conoscenza dei contenuti specifici del corso sia le capacita' generali di "problem solving". |
Eventuali indicazioni sui materiali di studio:
|
Sebbene siano disponibili numerosi buoni testi su singoli aspetti del calcolo parallelo, la sintesi ed integrazione tra tali aspetti fornita dalle lezioni non e' immediatamente reperibile in letteratura. Si consiglia pertanto di seguire le lezioni e prendere note accurate. Alcuni testi saranno comunque indicati in seguito. |
Testi di riferimento: |
-
D. Culler and J.P. Singh, Parallel Computer Architecture: A Hardware/Software Approach. San Francisco, California, USA: Morgan Kaufmann Publishers, 1998. Cura particolarmente gli aspetti sistemistici delle macchine parallele
-
Joseph Ja'Ja', An Introduction to Parallel Algorithms. --: Addison Wesley, 1992. Buona introduzione all'algoritmica parallela su modelli di calcolo che ignorano il costo delle comunicazioni
-
F. Thomson Leighton, Introduction to Parallel Algorithms and Architectures: Arrays - Trees - Hypercubes. San Francisco, California, USA: Morgan Kaufmann Publishers, 1992. Analizza la relazione tra algoritmi ed architetture, con particolare riguardo alla ottimizzazione del costo delle comunicazioni
|
|
|