information - Agenda Catania
Transcript
information - Agenda Catania
Introduzione ai sistemi di calcolo parallelo Giovanni Erbacci Gruppo Supercalcolo- CINECA [email protected] II corso avanzato di calcolo e grid computing Catania 25-29 settembre 2006 www.cineca.it Argomenti Il modello di von Neumann Verso il parallelismo effettivo Pipelining Classificazione di Flynn Architetture vettoriali Architetture Parallele © CINECA 2006 Giovanni Erbacci 2 1 Modello di von Neumann Calcolatore Convenzionale Controllo Memoria Input Output ……… Unità Aritm. Logica Dati Controllo Le istruzioni vengono processate sequenzialmente: 1 2 3 4 5 un istruzione viene caricata dalla memoria (fetch) e decodificata vengono calcolati gli indirizzi degli operandi; vengono prelevati gli operandi dalla memoria; viene eseguita l'istruzione; il risultato viene scritto in memoria (store). © CINECA 2006 Giovanni Erbacci 3 Calcolatori più Veloci aumentare la velocità dei componenti elettronici • Limite imposto dalla velocità della luce • Problema della dissipazione del calore • aumentare il grado di parallelismo architetturale (numero di attività che possono essere compiute contemporaneamente) © CINECA 2006 Giovanni Erbacci Performance • Processori Gap Memoria Tempo 4 2 Legge di Moore Legge empirica che afferma che la complessità dei dispositivi (numero di transistor per sqare inch nei microprocessori) raddoppia ogni 18 mesi. Gordon Moore, co-founder di Intel, 1965 Si stima che la legge di Moore valga ancora almeno per questo decennio. © CINECA 2006 Giovanni Erbacci 5 Altri fattori che influenzano le Prestazioni ArithmeticLogical Unit ALU Control Unit Dati Indirizzi Memoria Centrale Device Oltre alla potenza del processore, altri fattori influenzano le prestazioni degli elaboratori: - dimensione della memoria - larghezza di banda (bandwidth) fra memoria e processore - larghezza di banda verso il sistema di I/O - dimensione e larghezza di banda della cache - latenza fra processore, memoria e sistema di I/O © CINECA 2006 Giovanni Erbacci 6 3 Primordi del Parallelismo Miglioramenti architetturali Memoria bit-parallel e Aritmetica bit-parallel Processori indipendenti per l’attività di I/O Memoria interleaved Gerarchie di memoria Unità funzionali multiple Unità funzionali segmentate Pipelining Miglioramenti software Multiprogrammazione e Look-ahead e scheduling delle istruzioni © CINECA 2006 Giovanni Erbacci 7 Verso il Parallelismo effettivo Sistemi vettoriali Array processors Architetture sistoliche Very Long Instruction Word (VLIW) Sistemi Multiprocessore Sistemi Multicomputer © CINECA 2006 Giovanni Erbacci 8 4 IBM PC XT (1980) 4.77 MHz => 210 ns Commodity DRAM T. acc. ≅ 200 ns Pentium II (1998) Commodity DRAM 300 MHz => 3.3 ns T. acc. ≅ 50 ns La performance dei processori raddoppia ogni 18 mesi mentre quella della memoria raddoppia circa ogni 6 anni. © CINECA 2006 Cache Cache Memory Memory Memoria Memoria Primaria Primaria Minor costo Registri Registri Maggior velocità Tempo di accesso alla memoria: indica la velocità con la quale si può referenziare una locazione di memoria Tempo di ciclo della memoria: indica il tempo che deve trascorrere prima di un nuovo accesso a una stessa locazione di memoria Negli ultimi anni questi tempi sono molto migliorati rendendo possibili sistemi di memoria più veloci ma al tempo stesso è diminuito anche il tempo di clock del processore: Maggior Capacità Gerarchie di Memoria Memoria Memoria Secondaria Secondaria Giovanni Erbacci 9 Cache Memory Unità di memoria di dimensioni ridotte usata come buffer per i dati che vengono scambiati fra la memoria centrale e il processore. • Consente di ridurre il tempo speso dal processore in attesa dei dati dalla memoria principale. • L'efficienza della cache dipende dalla località dei riferimenti nei programmi L'instruction buffer del CDC – località temporale: una istruzione o un dato possono essere referenziati più volte 6600 era costituito da 8 registri di 60 bit ciascuno (istruzioni di 15 o 30 bit). – località spaziale: Il Cray Y-MP aveva 4 instruction buffer di 128 parcel (16 bit) per CPU (istruzioni di 1, 2, o 4 parcel). quando si referenzia una locazione di memoria, è molto probabile che vengano referenziate anche le locazioni adiacenti. • Diversi calcolatori dispongono anche di cache per le istruzioni (o instruction buffer) oppure di cache che contengono sia dati che istruzioni: – l'istruzione viene prelevata dalla cache anziché dalla memoria. – un'istruzione può essere eseguita ripetutamente senza ulteriori riferimenti alla memoria principale. © CINECA 2006 Giovanni Erbacci Ogni processsore del Cray T3E ha una cache per le istruzioni di 8 KByte, una per i dati di 8KByte e di una di secondo livello di 96KByte. 10 5 Cache Memory / 1 E' demandato all'abilità del sistema far rientrare le istruzioni che compongono un kernel computazionale pesante (es. un loop) all’interno della cache, se queste possono esservi contenute per intero. Lo stesso vale per i dati, ma in questo caso l’opera di ottimizzazione coinvolge anche il programmatore Registri 2 ns L1 On-chip 4 ns L2 On-Chip 5 ns L3 Off-Chip 30 ns Memoria 220 ns DEC Alpha 21164 (500 MHz): Tempo di accesso alla memoria © CINECA 2006 Giovanni Erbacci 11 Organizzazione della Cache La cache è divisa in slot della stessa dimensione (linee) Ogni linea contiene k locazioni di memoria consecutive (es. 4 word). Quando è richiesto un dato dalla memoria, se questo non è già in cache, viene caricata dalla memoria l’intera linea di cache che lo contiene, sovrascrivendo così il contenuto precedente della linea. Memoria Cache © CINECA 2006 Giovanni Erbacci 12 6 Organizzazione della Cache / 1 Quando si modifica un dato memorizzando un nuovo valore in cache, occorre aggiornare il dato anche in memoria principale: Cache write-back - i dati scritti nella cache vi rimangono finché la linea di cache non è richiesta per memorizzare altri dati quando si deve rimpiazzare la cache il dato viene scritto in memoria; comune nei sistemi mono-processore. Cache write-through – i dati vengono scritti immediatamente nella cache e nella memoria principale. M P1 P2 Cache P1 Cache P2 Nei sistemi con più processori occorre gestire la coerenza della cache: per accedere a dati aggiornati i processori devono essere a conoscenza dell’attività delle cache locali © CINECA 2006 Giovanni Erbacci 13 Mapping Poiché in ogni istante temporale la cache può contiene solo un sottoinsieme della memoria, occorre sapere quale: si tratta di associare un insieme di locazioni di memoria ad una linea di cache (mapping). In base al mapping la cache può essere organizzata in uno dei seguenti modi: - Direct mapped - Fully associative modo con cui leassociative locazioni di memoria - Set Il vengono mappate nelle linee di cache può incidere sulle prestazioni dei programmi (due locazioni di memoria pesantemente usate possono essere mappate oppure no sulla stessa linea). © CINECA 2006 Giovanni Erbacci Memoria Cache 14 7 Cache Direct Mapping Con questo schema, se ad es. la dimensione della cache è di 8 Kbyte e la memoria centrale ha word di 8 Byte, la prima locazione di memoria (word 1) viene mappata sulla linea 1, così come la locazione d+1, 2d+1, 3d+1 ecc. (dove d = N° linee * N° word per linea). 1 1.9 2 725 3 51.9 4 -18.5 5 1.7 6 -25.3 … …… 1024 1025 1026 1027 1028 Linea 1 1.9 725 Linea 2 1.7 -25.3 Linea 3 Linea 4 Linea 5 …..… 1029 51.9 -18.5 …… Linea 256 1030 …. Cache 2048 2049 2050 Memoria © CINECA 2006 Giovanni Erbacci 15 Cache Direct Mapping / 1 Indirizzo Contenuto Indica la linea Memoria Indica la parola all’interno della linea © CINECA 2006 0 0000 000 00 1.9 1 0000 000 01 725 2 0000 000 10 51.9 3 0000 000 11 -18.5 4 0000 001 00 1.7 5 0000 001 01 -25.3 .. …. … .. …… 10 0000 010 10 11 0000 010 12 0000 011 .. …. … .. 29 0000 111 30 0000 31 32 33 Linea 0 1.9 725 Linea 1 1.7 -25.3 11 Linea 2 00 Linea 3 Linea 4 01 Linea 5 111 10 Linea 6 0000 111 11 Linea 7 0001 000 00 0001 000 01 .. …. … .. 62 0001 111 10 63 0001 111 11 64 0010 000 00 65 0010 000 …… …… 51.9 -18.5 Cache 8 linee 4 word per linea 01 Giovanni Erbacci 16 8 Cache Direct Mapping / 2 Quando si hanno riferimenti di memoria che alternativamente puntano alla stessa linea di cache (es. word 1, word 1025, word 1, word 1025, ripetutamente), ogni riferimento causa un cache miss e si deve rimpiazzare la linea appena inserita. Si genera parecchio lavoro aggiuntivo (overhead); questo fenomeno è detto thrashing. © CINECA 2006 Giovanni Erbacci 17 Memoria Cache Set Associative 1 1.9 2 725 3 51.9 4 -18.5 5 1.7 6 -25.3 … …… 2 way set associative 2048 word, linee di 4 word 1025 66 1026 71 1027 33 1028 100 1029 17 1030 …. 2048 Cache 1024 Linea 1 66 Linea 2 17 Linea 1 1.9 725 Linea 2 1.7 -25.3 Linea 3 Linea 4 Linea 5 …..… …… 71 33 51.9 -18.5 100 Banco 2 Linea 256 2049 Banco 1 2050 © CINECA 2006 Giovanni Erbacci 18 9 Unità Funzionali Multiple Nei calcolatori tradizionali, la CPU è costituita da un insieme di registri generali, da alcuni registri speciali (es. il program counter) e dall'unità aritmetico logica (ALU) che, una per volta, calcola le operazioni. Un primo passo verso il parallelismo consiste nel suddividere le funzioni dell'ALU e progettare unità indipendenti capaci di operare in parallelo (unità funzionali indipendenti). E' compito del compilatore esaminare le istruzioni e stabilire quali operazioni possono essere fatte in parallelo, senza alterare la semantica del programma. © CINECA 2006 Giovanni Erbacci 19 Pipelining Il concetto di pipelining è analogo a quello di catena di montaggio dove in una linea di flusso (pipe) di stazioni di assemblaggio gli elementi vengono assemblati a flusso continuo. Idealmente tutte le stazioni di assemblaggio devono avere la stessa velocità di elaborazione altrimenti la stazione più lenta diventa il bottleneck dell'intera pipe. © CINECA 2006 Giovanni Erbacci 20 10 Pipelining / 1 Un task T viene scomposto in un insieme di sotto task {T1,T2,...Tk} legati da una relazione di dipendenza: il task Tj non può partire finchè tutti i sotto task precedenti {Ti ,∀ i<j} non sono terminati Sovrapposizione delle operazioni in una pipe a 4 stadi Spazio Tj i j mo subtask del task i mo S4 T 1 4 S3 T 1 T 2 2 S1 T 1 1 3 4 4 T 2 T 3 T T 2 T 3 T 4 T 3 T 2 3 2 3 T 1 4 4 T 5 T .... 5 4 .... 3 .... 5 2 .... 5 1 3 T 4 3 2 4 T 1 1 T 1 2 1 0 2 4 T 3 S2 T 5 6 7 8 diagramma spazio-temporale © CINECA 2006 9 10 Tempo(cicli) Giovanni Erbacci 21 Pipeline di Istruzioni S1 S2 Fetch istruzioni 0 I1 1 0 I3 1 I2 3 4 5 6 7 8 S4 Esecuzione S5 Store risultato 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 9 I4 2 I5 3 I6 4 I7 5 I8 6 ........ 7 8 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 9 Time I3 I4 I5 I6 © CINECA 2006 Fetch operandi Time I2 I1 2 S3 Decodifica I7 I8 ........ Giovanni Erbacci 22 11 Classificazione di Flynn M. J. Flynn Very high speed computing systems, proceedings of the IEEE (1966). Some computer organizations and their effectiveness, IEEE Transaction on Computers.(1972). "The moltiplicity is taken as the maximum possible number of simultaneous operations (instructions) or operands (data) being in the same phase of execution at the most constrained component of the organization" -Categorizza una architettura dalla molteplicità dell'hardware usato per manipolare stream di istruzioni e dati. - Considera lo stream delle istruzioni (sequenza delle istruzioni eseguite dal calcolatore) e lo stream dei dati (sequenza dei dati usati per eseguire uno stream di istruzioni) SI MI Single Instruction stream Multilpe Instruction stream SD MD Single Data stream Multilpe Data stream 4 combinazioni possibili: SISD, SIMD, MISD, MIMD © CINECA 2006 Giovanni Erbacci 23 Sistemi SISD Sistemi Sequenziali - Corrisponde alla classica architettura di von Neumann. - Sistemi scalari monoprocessore. - L'esecuzione delle istruzioni può essere pipelined (Cyber 76). - Ciascuna istruzione aritmetica inizia un'operazione aritmetica CU IS PU CU PU MM DS IS © CINECA 2006 DS MM Control Unit Processing Unit Memory Module Data stream Instruction Stream Giovanni Erbacci 24 12 Sistemi SIMD Parallelismo Sincrono MM1 DS2 IS • I sistemi SIMD hanno una sola unità di controllo • Una singola istruzione opera simultaneamente su più dati. • Appartengono a questa classe array processor e sistemi vettoriali CU PU2 MM2 . . . . . . DSn PUn CU PU MM DS IS © CINECA 2006 DS1 PU1 MMn Control Unit Processing Unit Memory Module Data stream Instruction Stream Giovanni Erbacci 25 Sistemi MIMD Parallelismo Asincrono IS1 • • • Più processori eseguono istruzioni diverse e operano su dati diversi. Versione multiprocessore della classe SIMD. Spazia dai linked main frame computer alle grandi reti di microprocessori. CU1 PU1 IS2 DS1 MM1 DS2 CU2 PU2 MM2 . . . . . . . . . CUn ISn DSn PUn MMn ISn IS2 IS1 CU Control Unit PU MM DS IS © CINECA 2006 Giovanni Erbacci Processing Unit Memory Module Data stream Instruction Stream 26 13 Calcolatori Vettoriali Dispongono di un set di istruzioni vettoriali che si aggiunge al set di istruzioni di istruzioni scalari. Le istruzioni vettoriali specificano una particolare operazione che deve essere eseguita su un determinato insieme di operandi detto vettore. In questo contesto un vettore è una lista ordinata di valori scalari. Le unità funzionali che eseguono istruzioni vettoriali sfruttano il pipelining per esegure la stessa operazione su tutte le coppie di operandi. © CINECA 2006 Giovanni Erbacci Esempio do i = 1, N A(i) = B(i)+C(i) end do V0 ← V1 + V2 © CINECA 2006 27 Unità Funzionale Add Floating Point CP 0 .... B(3) B(2) B(1) .... C(3) C(2) C(1) CP 1 .... B(4) B(3) B(2) .... C(4) C(3) C(2) B(1) C(1) CP 2 .... B(5) B(4) B(3) .... C(5) C(4) C(3) B(2) B(1) C(2) C(1) CP 3 .... B(6) B(5) B(4) .... C(6) C(5) C(4) B(3) B(2) B(1) C(3) C(2) C(1) CP 4 .... B(7) B(6) B(5) .... C(7) C(6) C(5) B(4) B(3) B(2) B(1) C(4) C(3) C(2) C(1) CP 5 .... B(8) B(7) B(6) .... C(8) C(7) C(6) B(5) B(4) B(3) B(2) B(1) C(5) C(4) C(3) C(2) C(1) CP 6 .... B(9) B(8) B(7) .... C(9) C(8) C(7) B(6) B(5) B(4) B(3) B(2) B(1) C(6) C(5) C(4) C(3) C(2) C(1) CP 7 .... B(10) B(9) B(8) .... C(10) C(9) C(8) B(7) B(6) B(5) B(4) B(3) B(2) C(7) C(6) C(5) C(4) C(3) C(2) Giovanni Erbacci B(1) + C(1) 28 14 Sistemi Paralleli di classe MIMD Mainframes multiprocessor A metà degli anni '70 si diffondono i primi mainframes multiprocessore: Univac 1100/80 (1976), Burroughs B-7800 (1978), Cyber 170/720 (1979), IBM 3081 (1980). Solo il gestore del sistema beneficia del miglioramento del throughput (numero di lavori completati per unità di tempo). Rimane il von Neumann bottelneck. Sistemi multiprocessor ed elaborazione parallela E' interessante invece disporre di sistemi multiprocessore in cui le diverse CPU possono essere attive in modo concorrente nella soluzione di un singolo problema (elaborazione parallela). Multicomputer Un sistema multicomputer consiste di più calcolatori autonomi che possono comunicare o meno l'uno con l'altro (distributed memory system). Multiprocessor In un sistema multiprocessor le diverse CPU che compongono il sistema condividono una memoria centrale unica (shared memory system). © CINECA 2006 Giovanni Erbacci 29 Esempi di Sistemi MIMD Cray Y MP/8, Cray C90/16, Cray T90/32 Cray T3D, Cray T3E IBM ES900-530-VF IBM SP1, SP2, SP3, SP4 Ipercubi N-Cube Ipercubi Intel Paragon Intel KSR1 Meiko Parsytec GC-2 Thinking Machine Corp. CM5 Fujitsu AP 100 e VPP500 NEC SX4, SX5 SGI Origin 3800 © CINECA 2006 Giovanni Erbacci 30 15 Classificazione in Base alla Memoria P P M P P M M P P P N M Sistema a Memoria Condivisa P M P P M M Sistema a Memoria Distribuita © CINECA 2006 Giovanni Erbacci 31 Sistemi a Memoria Condivisa I processori coordinano la loro attività, accedendo ai dati e alle istruzioni in una memoria globale (shared memory), condivisa da tutti i processori Uniform Memory Access (UMA)model <=> SMP: Symmetric Multi Processors L’accesso alla memoria è uniforme: i processori presentano lo stesso tempo di accesso per tutte le parole di memoria l’interconnessione processore-memoria avviene tramite common bus, crossbar switch, o multistage network. ogni processore può disporre di una cache locale, le periferche sono condivise. Alcuni esempi: ETA10, Cray 2, Cray C90, IBM 3090/600 VF, NEC SX-5 I sistemi a memoria condivisa presentano un numero limitato di processori (da 2 a 32) molto potenti (possoo presentare anche un’architettura vettoriale) Questi multiprocessori sono chiamati tightly coupled systems per l’alto grado di condivisione delle risorse © CINECA 2006 Giovanni Erbacci 32 16 Sistemi a Memoria Distribuita La memoria è distribuita fisicamente tra i processori (local memory). NO-Remote Memory Access (NORMA) model tutte le memorie locali sono private e può accedervi solo il processore locale La comunicazione tra i processori avviene tramite un protocollo di comunicazione a scambio di messaggi (message passing). I messaggi che vengono instradati sulla rete di interconnessione In genere si tratta di sistemi che presentano un numero elevato di processori (da poche decine ad alcune migliaia), ma di potenza non troppo elevata, chiamati nodi di elaborazione. - Potenza del nodo. - Topologia della rete di interconnessione © CINECA 2006 Giovanni Erbacci 33 Sistemi NUMA Non Uniform Memory Access (NUMA) model La memoria è fisicamemte distribuita fra tutti i processori (ogni processore ha una propria memoria locale) L’insieme delle memorie locali forma uno spazio di indirizzi globale, accessibile da tutti i processori Supporto hw per far si che ogni processore possa indirizzare la memoria di tutti i processori Il tempo di accesso dal processore alla memoria non è uniforme: l’accesso è più veloce se il processore accede alla propria memoria locale; quando si accede alla memoria dei processori remoti si ha un delay dovuto alla rete di interconnessione. © CINECA 2006 Giovanni Erbacci 34 17 Il concetto di Nodo P Nodo 6 P Network M P Nodo 5 P Nodo 1 Nodo 4 Nodo SMP Nodo 2 © CINECA 2006 Nodo 3 Giovanni Erbacci 35 Condivisione Fisica e Logica Condivisione fisica della memoria le CPU hanno lo stesso spazio di indirizzamento i valori scritti in una parola da una CPU possono essere letti da un'altra. Condivisione logica della memoria è determinata da come il sw, in opposizione all'hw, vede il sistema. Quando due processi (programmi in esecuzione) condividono la stessa memoria logica, le informazioni scritte in una struttura dati da uno di questi, possono essere lette dall'altro. Quando non c'è condivisione logica i processi devono comunicare con forme di I/O (read e write di buffer) o tramite message passing. © CINECA 2006 Giovanni Erbacci 36 18 Rete di Interconnessione: definizioni Grafo aciclico: un grafo che non contiene cicli grado: il grado è il numero di linee connesse a un nodo in una data topologia. E’ equivalente al numero di primi vicini del nodo. E’ un indice della connettività Un grado grande è un benefico perché identifica una molteplicità di paths. Diametro: il diametro di una rete è la distanza tra i due nodi più lontani (percorso più lungo tra due nodi) Un diametro piccolo corrisponde a una latenza bassa. Neighbor: Due nodi si dicono vicini se c’è un link che li connette. © CINECA 2006 Giovanni Erbacci 37 Rete di Interconnessione Cos’è una rete di interconnessione? È l’insieme dei cavi che definiscono come i diversi processori di un calcolatore parallelo sono connessi tra loro e con le unità di memoria. Il tempo richiesto per trasferire i dati dipende dal tipo di interconnessione. Il tempo di trasferimento è detto communication time. la massima distanza che devono percorrere i dati scambiati tra due procecssori che comunicano incide sulle prestazioni della rete. Caratteristiche di una rete di interconnessione Bandwidth: identifica la quantità di dati che possono essere inviati per unità di tempo sulla rete. Occorre massimizzare la bandwidth Latency: identifica il tempo necessario per instradare un messaggio tra due processori. Si definisce anche come il tempo necessario per trasferire un messaggio di lunghezza nulla. Occorre minimizzare la latenza Altri aspetti da considerare - Costo - Scalabilità - Affidabilità - Diametro - Degree © CINECA 2006 Giovanni Erbacci 38 19 Connettività Interconnessione completa (ideale) Ogni nodo può comunicare direttamente con tutti gli altri nodi (in parallelo) con n nodi si ha un'ampiezza di banda proporzionale a n2. il costo cresce proporzionalmente a n2. • Interconnessione indiretta (pratica) – Solo alcuni nodi sono connessi direttamente. Un percorso diretto o indiretto permette di raggiungere tutti i nodi. – Il caso pessimo è costituito da un solo canale di comunicazione, condiviso da tutti i nodi (es. un cluster di workstation collegate da una LAN). – Occorrono soluzioni intermedie in grado di bilanciare costi e prestazioni (mesh, albero, shuffle-exchange, omega, ipercubo, ...). – La connettività è più ristretta: soluzione appropriata perché molti algoritmi paralleli richiedono topologie di connessione più ristrette (locali). Es: comunicazione tra primi vicini. © CINECA 2006 Giovanni Erbacci 39 Topologia Mesh In una network a griglia, i nodi sono disposti secondo un reticolo a k dimensioni (k dimensional lattice) di ampiezza w, per un totale di wk nodi. k=1 (array lineare) k=2 (2D array) es. ICL DAP, Intel Paragon, La comunicazione diretta è consentita solo tra i nodi vicini. I nodi interni comunicano direttamente con altri 2k nodi. © CINECA 2006 Giovanni Erbacci 40 20 Topologia Toroidale Alcune varianti del modello a mesh presentano connessioni di tipo wrap-around fra i nodi ai bordi della mesh (topologia toroidale). Il Cray T3E adotta una topologia toroidale 3D. © CINECA 2006 Giovanni Erbacci 41 Topologia Ipercubo Una topologia ipercubo (cube-connected) è formata da n =2k nodi connessi secondo i vertici di un cubo a k dimensioni. Ogni nodo è connesso direttamente a k altri nodi. Il degree di una topologia ipercubo è log n ed anche il diametro è log n. Esempi di calcolatori con questo tipo di network sono la CM2, NCUBE-2, Intel iPSC860, SGI Origin. © CINECA 2006 Giovanni Erbacci 42 21 Topologia Ipercubo / 1 Definizione ricorsiva: H(i) = H(H(i-1),H(i-1)) Ogni nodo è connesso ad altri k nodi k rappresenta la distanza tra i due punti più distanti (diametro). Una network cube connected è una network butterfly le cui colonne sono collassate in nodi singoli. © CINECA 2006 Giovanni Erbacci 43 Topologia Tree I processori sono I nodi terminali (foglie) di un albero Il degree di una network con topologia ad albero con N nodi è log2N e il diametro è 2 log 2(N) - 2 Fat tree la bandwidh della network aumenta all’aumentare del livello della rete. Esempi: CM-5, Network Myrinet e QSNet Piramide Una network piramidale di ampiezza p è un albero 4-rio completo con livelli, dove i nodi di ciascun livello sono collegati in una mesh bidimensionale. © CINECA 2006 Giovanni Erbacci 44 22