Classificazione delle Architetture Parallele Architetture parallele
by user
Comments
Transcript
Classificazione delle Architetture Parallele Architetture parallele
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) Dati singoli Dati multipli Istruzioni singole SISD SIMD Istruzioni multiple MISD 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 Control Unit IS PE DS 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 I/O1 Interconnection network Interconnection network I/On PE1 PEn Processors PE1 PEn M1 Mn P1 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