Presentazione

Organizzazione della Didattica

DM270
INFORMATICA ORD. 2014

Calcolo parallelo

9

Corsi comuni

 

Frontali Esercizi Laboratorio Studio Individuale
ORE: 72 0 0 102

Periodo

AnnoPeriodo
I anno2 semestre

Frequenza

Obbligatoria

Erogazione

Convenzionale

Lingua

Italiano

Calendario Attività Didattiche

InizioFine
01/03/201611/06/2016

Tipologia

TipologiaAmbitoSSDCFU
caratterizzanteDiscipline informaticheING-INF/059


Responsabile Insegnamento

ResponsabileSSDStruttura
Prof. BILARDI GIANFRANCOING-INF/05Dipartimento di Ingegneria dell'Informazione - DEI

Altri Docenti

Non previsti

Attività di Supporto alla Didattica

Non previste

Bollettino

- Progetto ed analisi di algoritmi sequenziali - Programmazione di algoritmi sequenziali - Architetture degli elaboratori con processore seriale - Teoria della computatione

- 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.

- 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".

- 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.

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.

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.

D. Culler and J.P. Singh, Parallel Computer Architecture: A Hardware/Software Approach. San Francisco, California, USA: Morgan Kaufmann Publishers, 1998 Joseph Ja'Ja', An Introduction to Parallel Algorithms. : Addison Wesley, 1992 F. Thomson Leighton, Introduction to Parallel Algorithms and Architectures: Arrays - Trees - Hypercubes. San Francisco, California, USA: Morgan Kaufmann Publishers, 1992

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.