| | | corso | | | |
Architettura degli Elaboratori II: Architetture Parallele e Distribuite A
(Corso di Laurea in Informatica (quinquennale))
Codice: | 4I028 | Crediti: | 6 | Semestre: | 2 | Sigla: | AE2 | |
Docente
Marco Danelutto
Tel. 0502212742Prerequisiti
Obiettivi di apprendimento
Il corso intende fornire le basi per lo studio e la valutazione dei
sistemi di elaborazione con architettura parallela e
distribuita.
I fondamenti metodologici sono rappresentati da
- semplici modelli analitico-probabilistici di sottosistemi di
tipo servente,
- forme di parallelismo, loro valutazione e
composizione.
Questi concetti sono applicati a) tanto a livello
dell'architettura firmware, con particolare riguardo alle due classi
di architettura che si ritiene debbano essere note ad ogni laureato,
uniprocessor pipeline e multiprocessor a memoria condivisa, quanto b)
a livello di computazioni parallele e distribuite di processi
cooperanti.
Il corso contiene una introduzione alle architetture
di rete, con particolare riguardo ai livelli dei protocolli di
comunicazione e loro esemplificazione nei confronti della tecnologia
Internet, ed alle architetture cliente-servente. Il corso è dunque
propedeutico a due filoni di studio che poggiano sull'orientamento
Sistemi: il filone delle macchine, strumenti di programmazione ed
applicazioni parallele, ed il filone dei sistemi distribuiti.
Descrizione
Il corso intende fornire le basi per lo studio e la valutazione dei
sistemi di elaborazione con architettura parallela e
distribuita.
I fondamenti metodologici sono rappresentati da
- semplici modelli analitico-probabilistici di sottosistemi di
tipo servente,
- forme di parallelismo, loro valutazione e
composizione.
Questi concetti sono applicati a) tanto a livello
dell'architettura firmware, con particolare riguardo alle due classi
di architettura che si ritiene debbano essere note ad ogni laureato,
uniprocessor pipeline e multiprocessor a memoria condivisa, quanto b)
a livello di computazioni parallele e distribuite di processi
cooperanti.
Il corso contiene una introduzione alle architetture
di rete, con particolare riguardo ai livelli dei protocolli di
comunicazione e loro esemplificazione nei confronti della tecnologia
Internet, ed alle architetture cliente-servente. Il corso è dunque
propedeutico a due filoni di studio che poggiano sull'orientamento
Sistemi: il filone delle macchine, strumenti di programmazione ed
applicazioni parallele, ed il filone dei sistemi distribuiti.
English Description
The course provide the basic notions relative to the design and to
the evaluation of parallel and distributed computer systems, and
covers the following topics:
- design methodologies
- uniprocessor pipeline architecture
- multiprocessor architectures
- network architectures
Programma
- Metodologie per la strutturazione di sistemi
Complementi di strutturazione di un sistema a livelli di interpretazione ed
a moduli. Richiami sui modelli di cooperazione ad ambiente globale e ad
ambiente locale, loro caratterizzazione ai vari livelli.
Modello ad ambiente locale. Formalismo mECSP per la descrizione di
computazioni parallele ai vari livelli (firmware, processi). Richiami sulle
comunicazioni a livello firmware ed arbitraggio.
Complementi di programmazione parallela ad ambiente locale : uso delle
forme di comunicazione e dei costrutti nondeterministici con guardie
locali+globali vs strutturazione basata sull'uso di strutture dati interne
ai moduli. Emulazione di receive non bloccante, receive con time-out,
rendez-vous esteso. Relazione tra nondeterminismo e parallelismo. Uso di
identificatori unici.
Parametri per la valutazione delle prestazioni di sistemi: tempo medio di
elaborazione o tempo di servizio, latenza, tempo di completamento, banda,
scalabilità, efficienza relativa. Modello cliente-servente e modelli
elementari a code di attesa. Performance di sistemi a livello firmware ;
performance vs tempo di completamento. Banda e latenza delle comunicazioni
Forme di parallelismo. Forme di parallelismo e bilanciamento del carico.
Forma pipeline. Forma completamente parallela per moduli puramente
funzionali con replicazione (farm) e con partizionamento. Moduli con stato:
replicazione di operazioni e stato (farm con stato) ; replicazione di
operazioni e partizionamento dello stato, pipeline con stato. Combinazione
di forme di parallelismo. Valutazione delle prestazioni per le varie forme
di parallelismo. Cause di degradazione e condizioni per approssimare il
sistema ideale. Impatto delle comunicazioni e delle sincronizzazioni sulle
prestazioni.
Classificazione di Flynn per le architetture parallele, forme di
parallelismo adottate nelle varie architetture. Cenno all'architettura
SIMD.
- Sottosistema di memoria e spazi di indirizzamento
Richiami di memoria virtuale. Proprietà dell'indipendenza degli spazi
logici vs. sistemi con stato supervisore. Problema delle strutture
dati condivise riferite indirettamente.
Memoria cache. Gerarchia di memoria e loro valutazione. Ottimizzazione
del tempo di accesso in memoria. Metodi di indirizzamento del
cache.
Memoria modulare. Distribuzione sequenziale e interallaciata degli
indirizzi. Uso di memoria interallacciata nella progettazione di
sistemi con cache e nelle architetture parallele.
- Architetture uniprocessor pipeline
Organizzazione con prefetch pipeline. Progetto delle varie unità.
Valutazione delle prestazioni. Sincronizzazione dei registri generali.
Sincronizzazione tra memoria istruzioni ed unità istruzioni.
Macchine Risc e Cisc. Cenno sulle ottimizzazioni a tempo di compilazione.
Uso della memoria cache.
Memoria modulare, sequenziale e interallacciata. Uso di memoria
interallacciata nella progettazione di sistemi con cache e nelle
architetture parallele.
- Architetture multiprocessor
Concetto di "architettura a memoria condivisa". Caratteristiche degli spazi
di indirizzamento logici e fisici. Architettura a processori anonimi
(multiprocessor simmetrico) ed a processori dedicati (multiprocessor
asimmetrico). Forme di parallelismo utilizzate e scheduling dei processori.
Operazioni di locking, sequenze indivisibili di accesso in memoria, attesa
attiva vs attesa passiva, comunicazioni interprocessor.
Architettura a processori anonimi : strutture di interconnessione a bus e
crossbar, unità di comunicazione ed MMU, uso di memoria cache. Scheduling a
basso livello. Valutazione delle prestazioni : conflitti firmware e
software lockout; impatto del tipo di sistema operativo sulle prestazioni.
Ingresso-uscita e interruzioni.
Architettura a processori dedicati :<
Ore lezione: | 25 | Ore esercitazione: | 15 | | | |
Bibliografia
Materiale didattico
-
F. Baiardi, A. Tomasi, M. Vanneschi, Architettura dei Sistemi di
Elaborazione, volumi 1, 2, Franco Angeli. Cap. 3, 4.1, 10, 11.1, 18, 19,
21, 22.
- T. Socolofski, C. Kale, A TCP/IP Tutorial, Jan.1991.
- Dispense :
- mECSP- sintassi e semantica operazionale.
- Complementi sulle forme di parallelismo.
- Raccolte di esercizi.
Consultazione
- F. Baiardi, M. Vanneschi, Linguaggi per la programmazione concorrente,
Franco Angeli Libri.
- K. Hwang, Advanced Computer Architecture, McGraw Hill.
- TCP/IP Programmer's Guide : raccolta di rapporti e lavori su protocolli e
applicazioni Internet, reperibile all'indirizzo http ://www.
metrowerks.com/tcpip/spec/spec_index.html
Modalità di esame