Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Classificazione delle Architetture Parallele Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2009/10 Architetture parallele Definizione (Almasi e Gottlieb, 1989): un architettura parallela è un insieme di elementi di elaborazione che cooperano e comunicano per risolvere velocemente problemi di dimensioni considerevoli, talvolta intrattabili su macchine sequenziali Obiettivi: 1. Migliorare le prestazioni E possibile utilizzare un architettura parallela per risolvere Un problema più grande nello stesso tempo (scale-up) Lo stesso problema in minor tempo (speed-up) 2. Migliorare il rapporto costo/prestazioni SD - Valeria Cardellini, A.A. 2009/10 1
Il parallelismo è ovunque! SD - Valeria Cardellini, A.A. 2009/10 2 Architetture parallele (2) Opzioni di progettazione di un architettura parallela: Quanti processori? Quale è la capacità di elaborazione di ciascun processore? Quale tecnologia utilizzano i processori? Quale organizzazione per l elaborazione? Come è organizzata la memoria? In che modo sono interconnessi i processori? Come vengono scambiate le informazioni? SD - Valeria Cardellini, A.A. 2009/10 3
Le sfide della programmazione parallela La programmazione parallela fino ad ora si è sviluppato soprattutto in ambito accademico ed in centri di ricerca: perché? Primo problema: parallelismo limitato nei programmi Secondo problema: elevata latenza degli accessi remoti La vera difficoltà non è realizzare architetture parallele, ma sviluppare applicazioni parallele! Le architetture parallele raggiungono buone prestazioni solo se programmate in modo opportuno Servono algoritmi opportuni Gli ambienti di programmazione non sono molto sviluppati La programmazione parallela è più complessa Il debugging di programmi paralleli è complesso I compilatori autoparallelizzanti sono solo sperimentali SD - Valeria Cardellini, A.A. 2009/10 4 Classificazione di Flynn E la classificazione tradizionale delle architetture parallele Ad opera di Flynn (1966) Proposta quando non c erano ancora vere architetture parallele Sebbene siano passati più di 40 anni, risulta ancora utile! Single instruction stream, single data stream (SISD) Single instruction stream, multiple data stream (SIMD) Multiple instruction stream, single data stream (MISD) Multiple instruction stream, multiple data stream (MIMD) Istruzioni singole Istruzioni multiple Dati singoli SISD MISD Dati multipli SIMD MIMD SD - Valeria Cardellini, A.A. 2009/10 5
SISD e SIMD Single instruction stream, single data stream (SISD) Flusso di istruzioni singolo, flusso di dati singolo Il sistema monoprocessore (architettura di Von Neumann) Single instruction stream, multiple data stream (SIMD) Flusso di istruzioni singolo, flusso di dati multiplo Più processori eseguono la stessa istruzione su flussi di dati diversi: si sfrutta il parallelismo a livello di dati Ogni processore ha la propria memoria dati; ci sono una sola memoria istruzioni ed un solo processore di controllo I processori multimediali presentano una forma (limitata) di parallelismo SIMD; le architetture vettoriali sono la classe più ampia Negli ultimi anni: rinascita degli approcci SIMD grazie alla crescente importanza delle prestazioni grafiche SD - Valeria Cardellini, A.A. 2009/10 6 SISD e SIMD (2) SISD IS IS DS Control Unit PE Memory SIMD Legenda: IS: Instruction Stream DS: Data Stream PE: Processing Element SD - Valeria Cardellini, A.A. 2009/10 7
MISD e MIMD Multiple instruction stream, single data stream (MISD) Flusso di istruzioni multiplo, flusso di dati singolo Non è stata ancora costruita un architettura commerciale di questo tipo Multiple instruction stream, multiple data stream (MIMD) Flusso di istruzioni multiplo, flusso di dati multiplo Ogni processore legge le proprie istruzioni ed opera sui propri dati: parallelismo a livello di thread Il parallelismo a livello di thread è più flessibile del parallelismo a livello di dati ha un applicabilità più diffusa I processori sono spesso commerciali standard (commodity) SD - Valeria Cardellini, A.A. 2009/10 8 MIMD Il modello MIMD è emerso come l architettura prescelta di tipo generale perché: è flessibile si possono costruire architetture MIMD usando processori commerciali SD - Valeria Cardellini, A.A. 2009/10 9
Classificazione estesa Analizziamo un estensione della classificazione di Flynn per considerare diversi tipi di architetture MIMD Classificazione di Flynn Anche dette SMP SD - Valeria Cardellini, A.A. 2009/10 10 Architetture MIMD Shared memory Interconnection network I/O1 I/On Interconnection network PE1 PEn PE1 PEn Processors M1 P1 Mn Pn Multiprocessori (memoria condivisa) Multicomputer (message passing) SD - Valeria Cardellini, A.A. 2009/10 11
MIMD: multiprocessori Multiprocessori: architetture MIMD a memoria condivisa (shared memory) La memoria ha un unico spazio di indirizzamento, condiviso tra tutti i processori I processori comunicano tramite variabili condivise e ciascun processore è in grado di accedere ad ogni locazione di memoria tramite istruzioni load e store Occorre un meccanismo di sincronizzazione, per coordinare il comportamento di processi che possono essere in esecuzione su processori differenti I multiprocessori possono avere memoria condivisa e centralizzata, ma possono anche avere memoria condivisa e distribuita Memoria condivisa e distribuita: la memoria è fisicamente distribuita ma è logicamente condivisa SD - Valeria Cardellini, A.A. 2009/10 12 MIMD: multicomputer Multicomputer: architetture MIMD a scambio di messaggi Non hanno una memoria condivisa a livello di architettura, ma le memorie sono riservate per i singoli processori Lo spazio di indirizzamento è costituito da più spazi privati, logicamente disgiunti e non indirizzabili da parte dei processori remoti La comunicazione tra i processori avviene mediante scambio di messaggi (message passing) esplicito Procedure per inviare e ricevere messaggi (send e receive) SD - Valeria Cardellini, A.A. 2009/10 13
Classificazione estesa (2) Aggiungiamo un ulteriore livello nella classificazione Classificazione di Flynn Anche dette SMP SD - Valeria Cardellini, A.A. 2009/10 14 Classificazione dei multiprocessori Classificazione basata sul modo in cui i multiprocessori implementano la memoria condivisa: UMA (Uniform Memory Access) NUMA (Non Uniform Memory Access) COMA (Cache Only Memory Access) SD - Valeria Cardellini, A.A. 2009/10 15
Classificazione dei multiprocessori: UMA Multiprocessori con memoria ad accesso uniforme Anche detti SMP (Symmetric MultiProcessor): multiprocessori simmetrici Ogni processore ha lo stesso tempo di accesso alla memoria principale, indipendentemente dal processore richiedente e dalla locazione della parola di memoria richiesta Prestazioni eccellenti ma sono limitate per dimensioni (numero di processori) Esempi: multi-core basati su ISA x86 (ad es. Intel Xeon, AMD Opteron), IBM Power Express (con processore IBM Power 6), NEC SX-8, SD - Valeria Cardellini, A.A. 2009/10 16 Classificazione dei multiprocessori: NUMA Multiprocessori con memoria ad accesso non uniforme Alcuni accessi in memoria sono più veloci di altri a seconda del processore richiedente e dalla locazione della parola di memoria richiesta; un processore può accedere: rapidamente alla propria memoria locale più lentamente alle memorie degli altri processori o alla memoria condivisa il caching permette di nascondere in una certa misura la differenza nel tempo di accesso Raggiungono dimensioni maggiori dei multiprocessori UMA Esempi: SIG Altix 330, Sun Fire X4600, Cray X1 (prodotto fino al 2003) SD - Valeria Cardellini, A.A. 2009/10 17
Classificazione dei multiprocessori: COMA Architetture COMA (Cache Only Memory Access) Come NUMA anche questi multiprocessori non sono uniformi nell accesso alla memoria La memoria principale viene usata come se fosse una cache Ogni pagina non ha un processore prefissato di appartenenza La memoria è detta di attrazione (attraction memory), in quanto si limita ad attrarre le linee di cache quando sono richieste In contrapposizione a home memory nei multiprocessori NUMA Due nuovi problemi: Come localizzare le linee di cache Come evitare di cancellare dalla memoria l ultima copia di una linea di cache SD - Valeria Cardellini, A.A. 2009/10 18 Classificazione dei multicomputer Architetture MPP (Massively Parallel Processor) Molti processori autonomi, interconnessi con reti proprietarie a larga velocità Cluster Nodi totalmente separati, interconnessi con reti veloci e tecnologia commerciale (tipicamente tecnologia off-the-shelf) Approccio molto efficiente in termini di costo In passato, anche indicati con i termini: NOW (Network of Workstations) COW (Cluster of Workstations) SD - Valeria Cardellini, A.A. 2009/10 19
Classificazione estesa (3) Aggiungiamo un ulteriore livello nella classificazione dei multiprocessori e dei multicomputer Classificazione di Flynn Anche dette SMP SD - Valeria Cardellini, A.A. 2009/10 20 Classificazione dei multiprocessori (2) Abbiamo già visto il primo livello di classificazione dei multiprocessori Multiprocessori UMA (o SMP) Multiprocessori NUMA Multiprocessori COMA La categoria dei multiprocessori NUMA comprende: CC-NUMA: Cache Coherent NUMA NC-NUMA: Non Cache Coherent NUMA SD - Valeria Cardellini, A.A. 2009/10 21
Diffusione delle varie architetture nei top 500 Lista dei 500 top supercomputer: http://www.top500.org/ Prestazioni misurate tramite il benchmark Linpack (soluzione di un sistema denso di equazioni lineari Ax=b) Classifica aggiornata ogni 6 mesi In un decennio: scomparsa di uniprocessori, SMP e SIMD dalla lista dei top 500 crescita dei cluster SD - Valeria Cardellini, A.A. 2009/10 22