Parte VIII Architetture Parallele VIII.1
Motivazioni Limite di prestazioni delle architetture sequenziali: velocità di propagazione dei segnali, la luce percorre 30 cm in un nsec! Migliore rapporto costo/prestazioni (Es. cluster di workstation) Grande varietà di architetture proposte e realizzate Non sempre si riesce a sfruttarne le potenzialità adeguatamente La vera difficoltà non è realizzare architetture parallele, ma sviluppare applicazioni parallele VIII.2
Opzioni di Progetto Processori Numero, tipo, capacità di elaborazione Da semplici ALU a CPU complete Da poche unità a molte migliaia Memorie Private o condivise Schemi complessi di caching Interconnessione Topologia di interconnessione Numero di collegamenti Distanza tra gli elementi Scalabilità dell'architettura VIII.3
Modelli di Comunicazione Due approcci fondamentali: Multiprocessori Tutte le CPU condividono una memoria fisica comune Spazio comune di memoria virtuale I processi possono comunicare tramite la memoria Accoppiamento stretto Multicomputers Ogni CPU ha la sua memoria privata Uno spazio di memoria fisica per ciascuna CPU I processi comunicano tramite scambio di messaggi Accoppiamento lasco VIII.4
Topologie di Interconnessione STELLA COMPLETA ALBERO ANELLO GRIGLIA DOPPIO TORO CUBO IPERCUBO VIII.5
Topologie di Interconnessione (2) Stella Tutte le comunicazioni attraversano un nodo Distanza costante tra tutti i nodi Non scalabile: fan-out lineare Completa Il numero di interconnessioni cresce con il quadrato dei nodi n 2 Distanza costante tra tutti i nodi Non scalabile: fan-out lineare Albero Profondità logaritmica: log r n Distanza logaritmica tra i nodi Fan-out r costante Non scalabile: rami alti congestionati VIII.6
Griglia e Doppio Toro Numero di archi lineare col numero dei nodi n (2n nel doppio toro) Distanza massima tra due nodi (diametro) ordine di n: O(2 n) nella griglia O( n) nel doppio toro Fan-out costante pari a 4 2 n collegamenti complessivi Topologia ben scalabile Cammini multipli tra due nodi Topologia resistente ai guasti specie nel doppio toro ES doppio toro con n=16 32 collegamenti diametro = 4 VIII.7
Ipercubo Un ipercubo di dimensione d ha un numero di nodi pari a n=2 d Ciascun nodo ha d archi uscenti Il fan-out d cresce logaritmicamente con il numero di nodi Il diametro dell ipercubo è d=log 2 n, cioè cresce col logaritmo del numero di nodi n Ciascun nodo è contraddistinto da una etichetta di d bit Nodi contigui hanno etichette che differiscono di un solo bit Sono possibili più percorsi alternativi ES d=4 Da 0000 a 1111 in 4 passi 0000 1000 1100 1110 1111 0000 0001 0011 0111 1111 e altri 22 cammini. VIII.8
Metriche di Prestazione Speedup: fattore di velocità che si guadagna nell esecuzione rispetto ad un uniprocessore Caso ideale: speedup lineare con il numero dei processori Purtroppo è raramente raggiunto Dipende sia dalle applicazioni che dai vincoli dell architettura VIII.9
Paradigmi Computazionali PIPELINE PHASED COMPUTATION DIVIDE ET IMPERA REPLICATED WORKER VIII.10
Tassonomia di Flynn Introdotta da Flynn, basata sui concetti di instruction stream e data stream, e considera tutte le possibili combinazioni: SISD: Single Instruction Single Data SIMD: Single Instruction Multiple Data (la stessa operazione effettuata su dati diversi) MISD: Multiple Instruction Single Data (finora nessuna implementazione) MIMD: Multiple Instruction Multiple Data (operazioni distinte su dati distinti) Estensione della tassonomia per considerare diversi tipi di architetture MIMD VIII.11
Tassonomia Estesa VIII.12
Architetture MIMD UMA (Uniform Memory Access) Tutte le CPU hanno lo stesso tempo di accesso a tutta memoria Allocazione dei dati irrilevante NUMA (NonUniform Memory Access) Per ciascuna CPU il tempo di accesso varia a seconda del modulo acceduto Allocazione dei dati critica COMA (Cache Only Memory Access) L accesso avviene solo tramite cache MPP (Massive Parallel Processors) Sistemi autonomi (CPU-Memoria) connessi con reti proprietarie veloci COW (Cluster Of Workstations) Insiemi di workstation connessi con tecnologia off-the-shelf VIII.13
Architetture UMA a Bus Il Bus può divenire collo di bottiglia, e comunque limita la scalabilità Le memorie private alleviano il problema Anche le cache diminuiscono il traffico sul Bus Problema della coerenza di cache Se lo stesso blocco è presente nello stesso momento in più cache, allora si rischia che le copie si disallineino Le CPU devono rispettare particolari protocolli per garantire la coerenza VIII.14
Snooping Caches WRITE THROUGH PROTOCOL To snoop: ficcare il naso (Snoopy) I controller delle cache spiano gli accessi a memoria delle altre cache Questo è supportato a livello hardware Protocollo Write Through Ogni CPU spia le azioni delle altre Nessuna azione per le letture Reagisce solo se un altra CPU scrive un blocco che lei ha in cache In quel caso invalida il blocco nella propria cache Mantiene sempre la memoria allineata ma carica il bus di scritture VIII.15
Il protocollo MESI VIII.16
Il Protocollo MESI (2) È un protocollo write-back: i blocchi sono aggiornati in memoria solo quando una CPU finisce di scriverci Usato dal Pentium II ed altri Stati di un blocco di cache: 1) INVALID: dati non validi 2) SHARED: presente in più cache, memoria allineata 3) EXCLUSIVE: presente solo in quella cache, memoria allineata 4) MODIFIED: presente solo in quella cache, memoria disallineata La lettura di un blocco MODIFIED obbliga il richiedente ad attendere ed il possessore ad allineare la memoria (ridiventa SHARED) La scrittura di un blocco MODIFIED obbliga inoltre il possessore a marcare il blocco come INVALID dopo averlo copiato in memoria VIII.17
Architetture MPP Sono i successori dei mainframe In genere usano CPU standard Rete di interconnesione a larga banda e bassa latenza Grande capacità di I/O, dati partizionati fra i nodi Ottima tolleranza ai guasti Buona scalabilità (64-256 CPU) Uso tipico: piattaforma per Basi di Dati Parallele VIII.18