Corso di
Architettura degli Elaboratori: Architetture Parallele
- Attivazione:
- Anno Accademico 99/00, secondo semestre
- Docente:
- Prof.
Giovanni Chiola
(email: chiola@disi.unige.it)
- Informazioni generali:
- Piani di Studio,
Prerequisiti,
Obiettivi,
Programma,
Esame,
Testi di Riferimento.
Questo corso é progettato come corso caratterizzante
l'indirizzo "Architetture Hardware e Software"
del corso di Laurea in Informatica.
Il corso é tuttavia "autocontenuto" (ossia fornisce
una panoramica generale abbastanza completa dell'argomento)
e può quindi essere inserito come insegnamento opzionale
anche in un piano di studio ad indirizzo diverso senza richiedere
necessariamente l'inserimento di altri insegnamenti dell'indirizzo
"Architetture".
Data la sua caratterizzazione a cavallo tra aspetti
teorico-metodologici ed aspetti schiettamente applicativi,
l'insegnamento é adatto ad essere inserito anche
come opzionale al terzo anno di Diploma Universitario in
Informatica per chi fosse interessato ad applicazioni
di tipo "High Performance Computing".
A livello di predisposizione degli orari verrà considerato
come corso da inserire al quinto anno della laurea oppure
al terzo anno del diploma.
Nell'economia di un piano di studi individuale, tuttavia, non
ci sono controindicazioni all'inserimento dell'insegnamento
al quarto anno del corso di laurea (se non per eventuali
sovrapposizioni di orario con altri corsi inseribili al quarto
anno).
É richiesto aver frequentato i corsi del primo biennio
di Informatica, con particolare riferimento agli argomenti dei
corsi di Architettura degli Elaboratori, Algoritmi e Strutture
Dati, Sistemi Operativi.
In particolare per le esercitazioni di laboratorio si richiede
dimestichezza con il sistema operativo Linux
e possibilmente anche dell'ambiente di programmazione in
linguaggio C basato sugli strumenti GNU.
Fondamentale per l'accesso alla letteratura sull'argomento
é la conoscenza della lingua Inglese, almeno a livello
scritto.
É utile in oltre avere nozioni elementari di sistemi
distribuiti, di protocolli di comunicazione in rete locale,
e di statistica, anche se la mancanza di questi requisiti
non pregiudica la possibilità di seguire il corso
con profitto.
Il corso si propone come obiettivo l'introduzione delle tematiche
e delle tecniche fondamentali per l'assemblaggio e l'uso di
sistemi paralleli ad alte prestazioni per applicazioni di tipo
sia compute-intensive che data-intensive e communication-intensive.
Verranno trattati sia aspetti teorici che pratico/applicativi,
e si tenderà a sviluppare le capacità di realizzazione
di applicazioni su piattaforme parallele ad alte prestazioni.
- Introduzione (4h)
- Definizioni, alcuni esempi, tassonomie, problematiche principali.
- Panoramica storica (2h)
- Macchine vettoriali, data-flow, architetture SIMD, Transputer,
Multiprocessori UMA e NUMA.
- Ambienti di programmazione parallela (6h)
- Linguaggi paralleli, ambienti e librerie SPMD, con
approfondimento di MPI, BSP e Messaggi Attivi.
- I processori (4h)
- Tecniche adottate per aumentare le prestazioni dei singoli
processori.
- La rete di interconnessione (12h)
- Topologie, tecnologie, scalabilità, costi,
l'interfacciamento tra processo e rete di interconnessione.
- Architetture moderne (2h)
- MPP, SMP, NOW, Cluster
- Prestazioni di applicazioni(6h)
- Benchmarks, misure, profili, tuning.
Oltre alle 36 ore di lezione (circa) svolte dal docente,
gli studenti saranno chiamati loro stessi a svolgere dei brevi seminari
di 20-30 minuti a testa alla fine del corso, nei quali
illustreranno argomenti approfonditi autonomamente a scelta tra
quelli accennati a grandi linee a lezione dal docente.
Si prevedono in oltre alcune sedute di laboratorio per sperimentare
semplici applicazioni in ambienti MPI e/o GAMMA.
Si compone di una valutazione (in quindicesimi) del seminario finale
tenuto da ciascuno studente e di una prova orale (valutata in
quindicesimi)
sugli argomenti teorici visti a lezione e sugli aspetti
pratico/applicativi affrontati sia a lezione che in laboratorio.
-
D.E. Culler, J.P. Singh, "Parallel Computer Architecture:
a Hardware/Software Approach",
Morgan Kaufmann, 1998.
-
Kai Hwang, "Advanced Computer Architecture with Parallel Programming",
McGraw-Hill, 1993.
-
Manuali, articoli e appunti messi a disposizione dal docente.
Comments to:
Web Master.
Last updated: 26 ottobre 1999