elenco   
        corso   

Architettura degli Elaboratori II: Architetture Parallele e Distribuite B

(Corso di Laurea in Informatica (quinquennale))

Codice: 4I028Crediti: 6Semestre: 2Sigla: AE2 

Docente

Marco Vanneschi   vannesch@di.unipi.it  Tel. 0502212700

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

  1. semplici modelli analitico-probabilistici di sottosistemi di tipo servente,
  2. 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

  1. semplici modelli analitico-probabilistici di sottosistemi di tipo servente,
  2. 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:

Programma

  1. 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.
  2. 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.
  3. 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.
  4. 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: 25Ore esercitazione: 15   

Bibliografia

Materiale didattico

  1. 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.
  2. T. Socolofski, C. Kale, A TCP/IP Tutorial, Jan.1991.
  3. Dispense :
    • mECSP- sintassi e semantica operazionale.
    • Complementi sulle forme di parallelismo.
    • Raccolte di esercizi.

Consultazione

  1. F. Baiardi, M. Vanneschi, Linguaggi per la programmazione concorrente, Franco Angeli Libri.
  2. K. Hwang, Advanced Computer Architecture, McGraw Hill.
  3. 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


Ulteriore pagina web del corso:


home


email