Gian Luca Pozzato & Livio Robaldo are proud to present… Bleah! Che schifo… Gian Luca Pozzato & Livio Robaldo – Wormhole routing Introduzione Tra i sistemi distribuiti, i sistemi cluster hanno trovato larga diffusione: 1. Prestazioni buone 2. Architettura ideale per l’esecuzione di applicazioni parallele 3. Costi contenuti CLUSTER: sistema distribuito ottenuto collegando fra loro nodi indipendenti mediante una rete locale Nodi di tipo “blade” Nodi indipendenti Nodi montati su rack Gian Luca Pozzato & Livio Robaldo – Wormhole routing Introduzione (2) L’architettura direct network è molto utilizzata per la costruzione di sistemi cluster Topologia di rete, flow control, switching e routing sono i concetti fondamentali legati alle direct networks La tecnica di switching più utilizzata è il wormhole switching, che offre le performance migliori In questo lavoro presentiamo nel dettaglio le caratteristiche e le problematiche legate al wormhole switching, oltre ad un’ampia panoramica sugli algoritmi di routing abbinati a questa tecnica Articolo di riferimento: [Mohapatra, 1998] Gian Luca Pozzato & Livio Robaldo – Wormhole routing In questa presentazione… Introduzione alle diverse tecniche di switching Wormhole routing Topologie di rete nelle direct networks Problema del deadlock e soluzione Algoritmi di routing nel wormhole routing Conclusioni Bibliografia Gian Luca Pozzato & Livio Robaldo – Wormhole routing Gian Luca Pozzato & Livio Robaldo – Wormhole routing Reti multicomputers (direct networks) Nodo Nodo Nodo Rete locale di interconnessione Gian Luca Pozzato & Livio Robaldo – Wormhole routing Nodo Reti multicomputers (direct networks) (2) Unità funzionali … … Router Gian Luca Pozzato & Livio Robaldo – Wormhole routing Canali di output INTERNI … … Canali di input INTERNI Canali di input ESTERNI (canali di input) Memoria locale Processore Canali di output ESTERNI (canali di output) Reti multicomputers (direct networks) (3) I nodi di una direct network comunicano attraverso lo scambio di messaggi Un messaggio viene diviso in PACCHETTI PACCHETTO = la più piccola unità di informazione. Contiene informazioni di routing e di sequenza PACCHETTO informazioni Gian Luca Pozzato & Livio Robaldo – Wormhole routing Info di routing Info di sequenza Reti multicomputers (direct networks) (4) Quando si parla di reti multicomputers è necessario distinguere le attività di routing, flow control e switching ROUTING: determina il path che un pacchetto deve percorrere per raggiungere la destinazione a partire dal nodo sorgente FLOW CONTROL: riguarda l’allocazione di canali e buffers ad un pacchetto durante il suo passaggio nel router. In caso di conflitto, la politica di flow control interviene per stabilire quale pacchetto viene bloccato a causa dell’indisponibilità di una risorsa (in possesso di un altro pacchetto) SWITCHING: è il meccanismo che stabilisce come i dati vengono rimossi dal canale di input e posti nel canale di output 4 tecniche di switching… Gian Luca Pozzato & Livio Robaldo – Wormhole routing Circuit switching Prima che inizi il trasferimento dei dati viene stabilito un path dedicato tra la sorgente e la destinazione Il path rimane allocato per l’intera trasmissione del pacchetto Una volta iniziato il trasferimento dei dati, il messaggio non viene mai bloccato Non è richiesta bufferizzazione dei dati (grazie al path dedicato) Pesante overhead: durante la fase di trasferimento dei dati, tutti i canali sono riservati per l’intero trasferimento del messaggio, con conseguente degrado delle prestazioni Questa tecnica non viene usata nei sistemi multicomputer commerciali Gian Luca Pozzato & Livio Robaldo – Wormhole routing Packet switching Il messaggio viene diviso in pacchetti che sono instradati ognuno sulla propria strada L’intero pacchetto viene memorizzato in ogni nodo intermedio ed instradato al successivo nodo del path quando: 1. Il canale di output scelto è disponibile 2. Il nodo vicino ha un buffer libero per ricevere il pacchetto Ogni pacchetto contiene le informazioni di routing e può selezionare un percorso piuttosto che un altro in base allo stato di congestione della rete Il canale risulta occupato SOLO in fase di trasferimento di un pacchetto Dato che ciascun pacchetto viene memorizzato in ogni nodo, il tempo per trasmetterlo dal nodo sorgente al nodo destinazione è proporzionale al numero di hops nel path; inoltre, è richiesto spazio di bufferizzazione in ciascun nodo intermedio Gian Luca Pozzato & Livio Robaldo – Wormhole routing Virtual cut-through switching Il pacchetto viene memorizzato nel nodo intermedio solamente se il successivo canale richiesto è occupato da un altro pacchetto Nel caso peggiore (blocco ad ogni nodo intermedio) coincide con il packet switching Poco usata a causa degli eccessivi costi: dato che molti messaggi potrebbero essere bloccati in un nodo, ogni nodo deve mettere a disposizione notevoli risorse di bufferizzazione Gian Luca Pozzato & Livio Robaldo – Wormhole routing Gian Luca Pozzato & Livio Robaldo – Wormhole routing Wormhole switching E’ una variante del virtual cut-through che consente di superare il problema della necessità di ampi spazi di bufferizzazione Un pacchetto è trasmesso in unità dette flits FLIT=la più piccola unità di un messaggio cui viene applicato il controllo di flusso L’header flit contiene tutte le informazioni necessarie per l’esecuzione del routing, compreso l’indirizzo di destinazione; gli altri flits contengono soltanto dati I flit vengono trasmessi “in fila” in modo canalizzato Quando l’header flit viene bloccato, il blocco si propaga a tutti i flit che seguono, i quali vengono bufferizzati nei nodi intermedi Gian Luca Pozzato & Livio Robaldo – Wormhole routing Wormhole switching (2) MESSAGGIO PACCHETTO FLITS D D Gian Luca Pozzato & Livio Robaldo – Wormhole routing D D D D D D D H Routing in sistemi Cluster Canali fisici di collegamento Flit 2 3 1 2 3 2 1 3 1 2 3 1 2 3 2 1 3 Buffer Bufferdi dioutput input NODI del cluster Gian Luca Pozzato & Livio Robaldo – Wormhole routing 1 2 3 1 2 3 Un flit può avanzare... Avanti Savoia! Quando risiede in un canale di input Quando gli viene allocato un buffer di output Quando gli viene allocato il canale fisico Gian Luca Pozzato & Livio Robaldo – Wormhole routing Wormhole switching: vantaggi e svantaggi Vantaggi: Ogni nodo deve memorizzare un solo flit (anche se alcune implementazioni richiedono la memorizzazione di flit multipli per migliorare le prestazioni) La limitata richiesta di spazio di bufferizzazione rende inferiori costi e dimensioni del sistema multicomputer. Svantaggi: Il solo header flit conserva le informazioni di routing: se non può avanzare nella rete, il blocco deve essere propagato a tutto il pacchetto. Il deadlock è una conseguenza di questo fatto. Gian Luca Pozzato & Livio Robaldo – Wormhole routing Routing in sistemi Cluster: richiesta dello stesso buffer di output Flit 2 3 1 2 3 2 1 3 1 2 3 Ops.. 3 1 2 1 2 3 3 1 2 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Flit 2 3 Un verme passa, l’altro si blocca Il blocco si propaga all’indietro a tutti i flit del pacchetto Quando il primo verme è passato passa anche l’altro Gian Luca Pozzato & Livio Robaldo – Wormhole routing 1 2 3 1 2 3 Deadlock 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 1 4 2 3 5 1 Ah! Il blu ed il verde vogliono lo stesso buffer di output. Il verde continua ed il blu si blocca Gian Luca Pozzato & Livio Robaldo – Wormhole routing 1 2 1 2 3 4 E, invece, il verde non 1 2 3 continua...perchè qui vuole un buffer in cui c’è un flit del blu: si blocca anche lui Gian Luca Pozzato & Livio Robaldo – Wormhole routing Topologie di rete I nodi del cluster sono interconnessi tra loro attraverso una rete. I nodi comunicano tra loro attraverso scambio di messaggi che vengono inviati lungo la rete. La scelta della tecnologia e della topologia della rete incide pesantemente sulle prestazioni del cluster. Le topologie di rete possono essere classificate in Direct Indirect I nodi sono collegati tra loro attraverso links point to point o diretti I nodi sono collegati tra loro attraverso degli switch Maggiore scalabilità: soluzione più utilizzata Il wormhole switching viene utilizzato in tutte e due, ma noi vedremo solo topologie direct Gian Luca Pozzato & Livio Robaldo – Wormhole routing Topologie di rete (2) Le topologie di rete possono essere descritte attraverso un grafo in cui i vertici sono i nodi del cluster e gli archi sono i canali fisici che li collegano n-dimensional mesh: n dimensioni e ki nodi nella dimensione i (i=0, 1, …, n-1) k-ary n-cube: k nodi in ciascuna delle n dimensioni, con wraparound connections ESEMPI mesh 3D con k=3 in ciascuna dimensione 5-ary 2-cube (torus) Gian Luca Pozzato & Livio Robaldo – Wormhole routing Topologie di rete (3) Nella realtà, vengono utilizzate soprattutto tre sottoclassi: L’hypercube: n-dimensional mesh con k fisso a 2 in ogni dimensione (es. Intel iPSC/1, nCUBE) Il torus: un k-ary n-cube con n fisso a 2 (es. Cray T3D) Mesh 2D (es. Intel Paragon) ESEMPI di hypercube: 2-cube (n=2) ESEMPI di mesh 2D: 3-cube (n=3) K=4 Gian Luca Pozzato & Livio Robaldo – Wormhole routing K=8 Topologie di rete (4) In generale un n-dimensional mesh è una topologia asimmetrica: nei nodi al centro della maglia abbiamo una densità di traffico maggiore rispetto a quella nei nodi sulla periferia. Hypercube e torus, invece, sono topologie simmetriche: ogni nodo ha la stessa connettività con gli altri nodi. Vediamo l’effetto che questo ha sui parametri di una rete…ricordo che essi sono: Diametro: lunghezza del più lungo shortest path tra due qualsiasi nodi della rete Bisection cut: numero di link che deve essere “tagliato” per dividere la rete in due metà uguali. Chiaramente… Il diametro deve essere minimizzato Il bisection cut deve essere massimizzato Gian Luca Pozzato & Livio Robaldo – Wormhole routing Topologie di rete (5) Vediamo un confronto…a parità di nodi n, si ha che: Diametro: 2nx2n 2DMesh >> 2nx2n 2DTorus >> 2nHypercube Bisection cut: 2nx2n 2DMesh << 2nx2n 2DTorus << 2nHypercube (2n) (2n+1) (22n-1) Esiste anche una stima del costo della rete: la bisection density, che è data dal prodotto del bisection cut e della banda del canale. Sembrerebbe quindi che la topologia hypercube sia una delle più costose…però bisogna osservare che, essendo l’hypercube una struttura più “fitta” di links, è necessaria molta meno banda rispetto ad un torus (ed ancora meno rispetto alla mesh) per ottenere le stesse prestazioni (latenza e throughput). Quindi… Bandwidth: 2nx2n 2DMesh >> 2nx2n 2DTorus >> 2nHypercube Morale della favola: a parità di costo, l’hypercube ha un diametro minore del Torus che ha un diametro minore della mesh. Un diametro minore significa cammini più corti…e quindi meno latenza e più throughput. Gian Luca Pozzato & Livio Robaldo – Wormhole routing Ah già…dimenticavo… Cosa sono latenza e throughput? latenza: tempo che la rete impiega a recapitare un messaggio. throughput: massimo tasso di messaggi che può essere immesso nella rete senza che la latenza media cresca (la rete va in saturazione). Nelle reti cluster, come si è visto, l’unità di trasferimento è il flit; ne consegue che se Tc (tempo di ciclo) è il tempo che un flit impiega a fare un hop e se D è il numero di nodi attraversati, la latenza di tutto il pacchetto di dimensione L è… Tm(L) = Tc x (D + L / W) Dove W è la dimensione di ogni singolo flit. Diminuendo il diametro, quindi, diminuiscono i valori D nei trasferimenti di pacchetti tra i nodi del cluster e, quindi, diminuisce la latenza. Gian Luca Pozzato & Livio Robaldo – Wormhole routing Algoritmi di routing Un algoritmo di routing, in generale, si può classificare in vari modi… Source Routing Distributed Routing L’intero Il cammino cammino sorgente-destinazione sorgente-destinazione viene èstabilito stabilitodisul volta nodo in volta sorgente dai nodi prima intermedi che il attraverso messaggio cui i il messaggio sia spedito transita Deterministici Adattativi I messaggi sono sempre instradati I messaggi sono instradati lungo uno dei camminiIlpiù corti trasorgente-destinazione cammino Il cammino sorgente-destinazione attraversoèqualsiasi cammino sorgente e destinazione unico vieneedstabilito è determinato di volta solo in volta sulla daibase nodi e destinazione tra sorgente degli intermedi indirizziedidipende sorgente dalle e destinazione condizioni attuali della rete (guasti, traffico, …) Minimali Gian Luca Pozzato & Livio Robaldo – Wormhole routing Non minimali Gian Luca Pozzato & Livio Robaldo – Wormhole routing Deadlock free routing Sia gli algoritmi deterministici che gli algoritmi adattativi possono essere Deadlock free La tecnica solitamente utilizzata per risolvere il problema del deadlock è quella del Deadlock avoidance E’ possibile dimostrare che il deadlock non può mai verificarsi se vengono rispettati i teoremi che ci apprestiamo a vedere (uno per gli algoritmi deterministici e l’altro per gli adattativi). Tali teoremi costituiscono delle condizioni necessarie e sufficienti per il deadlock avoidance. Teorema: Condizione necessaria e sufficiente per il deadlock avoidance in algoritmi deterministici è che il grafo di dipendenza dei canali non abbia cicli. Questo teorema è solo condizione sufficiente per gli algoritmi adattativi... Gian Luca Pozzato & Livio Robaldo – Wormhole routing Deadlock free routing (2) Teorema: Condizione necessaria e sufficiente per il deadlock avoidance in algoritmi adattativi è che esista una sub-routing function R1 connessa e priva di cicli nel suo extended channel dependency graph. Magari ci vuole qualche definizione... • Una routing function R:NxNp(C) è una funzione che associa, ad ogni coppia di nodi (ns, nd) NxN, l’insieme dei canali p(C) su cui si può spedire un flit da ns per raggiungere nd. • Una subrouting function R1 di R è una funzione che implementa un sottoinsieme delle associazioni di R. • Una routing\subrouting function R è connessa se per ogni coppia di nodi (ns, nd) si ha che R(ns, nd) non è vuoto. • Un extended channel dependency graph della routing function R è un grafo i cui nodi sono i canali presenti in R ed in cui esiste un arco (ci, cj) se R permette un cammino tra due nodi che passa per ci e cj (e ci precede cj in tale cammino). Gian Luca Pozzato & Livio Robaldo – Wormhole routing Un esempio... Invece che vedere la dimostrazione dei due teoremi [Duato, 1994], vediamo un esempio del secondo...che è più complicato... Consideriamo la seguente topologia... CH0 n0 n1 CA0 CA3 CA1 CH1 CA2 n3 n2 CH2 Un semplice algoritmo che rispetta il secondo teorema: Se il nodo corrente ni è uguale al nodo destinazione nj, consuma il messaggio. Altrimenti, spedisci il flit sul canale CAi (i j) o sul canale CHi (j > i) Tale algoritmo è ovviamente adattativo, perchè, in quasi tutte le situazioni, ho più di un canale in cui scegliere di spedire il flit. Gian Luca Pozzato & Livio Robaldo – Wormhole routing Un esempio... Consideriamo ora subrouting function di R, che chiamiamo R1 e che è uguale ad R eccetto che... CA0 non viene utilizzato. CA1 e CA2 possono essere usati solo per spedire flits ad una destinazione con indice più piccolo del nodo corrente. Il grafo delle dipendenze è... CH0 CH1 CA3 E’ privo di cicli!!! n0 Per il teorema visto, questo algoritmo adattativoCA3 non Da n3 posso raggiungere CA2 mai in deadlock I canali CHn possono n0, n1, n2 passando entra per CA1 CA1 può raggiungere solo n0 spedire con Da n2 possosolo a nodin3 CH1 passandoCH0 soloeda CA2 e CA3 indicisolo superiori ad n raggiungere CH2 n0 ed n1 passando per CA3 e CH0 Gian Luca Pozzato & Livio Robaldo – Wormhole routing Topologia CH0 n1 CA0 CA1 CH1 CA2 n2 CH2 Gian Luca Pozzato & Livio Robaldo – Wormhole routing Wormhole routing deterministico Il path è determinato SOLO dalla coppia sorgente-destinazione Per ogni coppia sorgente-destinazione, tutti i pacchetti seguono il medesimo percorso Idea di base: il deadlock è prevenuto ordinando i canali che un messaggio deve attraversare Un messaggio percorre i canali in ordine ascendente o discendente, evitando dei cicli nel grafo delle dipendenze dei canali Un esempio di routing deterministico è il dimension-order routing [Dally e Seitz, 1987] Gian Luca Pozzato & Livio Robaldo – Wormhole routing Dimension-order routing Schema di routing deterministico in cui il path selezionato attraversa le dimensioni della rete in sequenza Le dimensioni della rete sono preventivamente organizzate mediante un ordine monotono x1, x2, …, xn Il messaggio compie prima tutti gli spostamenti nella direzione x1, quindi nella direzione x2,…, fino al raggiungimento della destinazione A questo punto, il messaggio attraversa la rete nella successiva dimensione, fino a che non raggiunge la destinazione Il deadlock è scongiurato dal fatto che i messaggi non attraversano MAI la rete nella direzione inversa dell’ordine di dimensione Gian Luca Pozzato & Livio Robaldo – Wormhole routing Dimension-order routing su hypercube I nodi dell’n-cube vengono rappresentati da una stringa binaria di n bit L’indirizzo di destinazione viene memorizzato nell’header flit Quando un nodo riceve un messaggio esegue l’XOR tra il proprio indirizzo e l’indirizzo della destinazione: 1. Se è zero, consuma il messaggio 2. Se è diverso da zero, inoltra il messaggio nella dimensione corrispondente all’uno del risultato più a destra (o più a sinistra) Si parla di e-cube routing ed è una tecnica minimale Vediamo un esempio… Gian Luca Pozzato & Livio Robaldo – Wormhole routing Dimension-order routing su hypercube (2) 110 010 S XOR 111 011 010 101 XOR 110 011 001 101 111 011 D 100 000 XOR 010 101 101 001 Gian Luca Pozzato & Livio Robaldo – Wormhole routing 100 101 001 Dimension-order routing su mesh 2D Chiamato routing XY, è minimale Le due dimensioni della mesh sono etichettate con X e Y Un messaggio viene prima inoltrato completamente nella direzione X, quindi viene inoltrato completamente nella direzione Y Nelle mesh multidimensionali si esegue il medesimo algoritmo, completando il routing in una direzione prima di passare alla successiva (le dimensioni sono ordinate) Questa tecnica è deadlock-free Gian Luca Pozzato & Livio Robaldo – Wormhole routing Dimension-order routing su mesh 2D (2) 17 Possibili turns 04 Direzione Y 62 30 Direzione X Gian Luca Pozzato & Livio Robaldo – Wormhole routing Dimension-order routing (conclusione) Esistono algoritmi di routing minimali per k-ary n-cubes che sfruttano i canali virtuali [Dally e Seitz, 1987] In ogni caso, il dimension-order routing è adatto ad una distribuzione uniforme del traffico sulla rete (sceglie il cammino minimo per tutto il messaggio) Non sfrutta la possibilità di cammini multipli tra coppie di nodi sorgentedestinazione Non è adatto a gestire: 1. Guasti sulla rete 2. Congestione della rete Gian Luca Pozzato & Livio Robaldo – Wormhole routing Dimension-order routing vs Routing adattativo Gian Luca Pozzato & Livio Robaldo – Wormhole routing Wormhole routing adattativo Gli algoritmi deterministici calcolano uno e un solo cammino tra sorgente e destinazione Per gestire guasti e reagire opportunamente alla congestione della rete è necessario che gli algoritmi di routing calcolino dei cammini alternativi per i messaggi Gli algoritmi che offrono questa opportunità sono detti ADATTATIVI che si dividono in: Totalmente adattativi Parzialmente adattativi I messaggi vengono instradati su une Tutti i possibili cammini tra sorgente sottoinsieme dei possibili cammini destinazione sono messi a tra sorgente destinazione dei disposizione perel’instradamento messaggi Gian Luca Pozzato & Livio Robaldo – Wormhole routing Fully-adaptive: algoritmo PFNF Vediamo nel dettaglio un altro esempio: l’algoritmo positive-firstnegative-first (PFNF) per mesh bi-dimensionali, illustrato in [Upadhyay et al., 1997] L’algoritmo usa due canali virtuali per ciascun canale fisico I messaggi vengono inoltrati nelle due reti virtuali in modo da distribuire uniformemente il carico ed ottenendo un algoritmo di routing fully-adaptive Utilizzando il teorema di Duato si può provare che l’algoritmo PFNF è deadlock free Gian Luca Pozzato & Livio Robaldo – Wormhole routing Fully-adaptive: algoritmo PFNF (2) La rete fisica è logicamente divisa in due reti virtuali: VN1 e VN2 Due canali virtuali associati al medesimo canale fisico si trovano in reti virtuali diverse La rete virtuale VN1 è gestita mediante le restrizioni dell’algoritmo positive first La rete virtuale VN2 è gestita mediante le restrizioni dell’algoritmo negative first Quando il nodo destinazione si trova nelle direzioni <+x, +y> e <-x, -y>, il messaggio viene instradato senza restrizioni Quando il nodo destinazione si trova nelle direzioni <-x, +y> o <+x, -y> vengono applicate le restrizioni positive first e negative first Gian Luca Pozzato & Livio Robaldo – Wormhole routing … Fully-adaptive: VC=Ø algoritmo PFNF (3) 2. Se tutti gli elementi in Routing_tag ≥0 gli elementi in Routing_tag ≤0 1. Se tutti … Se Routing_tag[0] >0 Se Routing_tag[0] <0 3c. Se Routing_tag[1] >0 aggiungi i canali: Nodo sorgente: (x0 ,axVC 1) aggiungi a VC i canali: … a VC il canale: ► vcVN1((x0 , x1),(x0 +1, x1)) ► vc aggiungi ((x , x VN1 0 >01),(x0 -1, x1)) 3a. Se Routing_tag[0] Nodo destinatario: (d , d ) ► vc1 ((x0 ,lox1restituisce. ),(x0 , x1 +1)) 0 1 ► vcVN2((x0 , xSE x1))vi è► unvc solo canale in VC, VN1 d0i +1, - xi Se >0 ALLORA METTI 1),(x … ((x , x ),(x -1, x )) VN2 0 1 0 1 aggiungi a VC il canale: … ne Se Routing_tag[1]SE >0 di - xi Altrimenti, sceglie uno a random o<0 <0Se ALLORA METTI -1 3b. Se Routing_tag[0] Routing_tag[1] <0 ► vc… ((x x1)) (=se VN1 0 , x10),(x0 +1, bias aggiungi a VC SE i canali: impiegando un multiplex-turn di - xi =0 ALLORA METTI aggiungi a VC il canale: aggiungi a VC i canali: … 1 Routing_tag: 1 ► vcVN1((x0 , x1),(x0 ,x1+1)) possibile, cerca proseguire nella 3d. Se di Routing_tag[1] <0 direzione ► vcsi ,x1vc -1)) VN2((x0 , x1),(x0 -1, x1)) VN1((x0 , x1),(x0► ► vcVN2((x0 , x1),(x0 ,x1+1)) intrapresa, compiere turni) a VC dei il canale: …((x0aggiungi ► vcevitando , xdi VN2 1),(x0 ,x1-1)) … ► vcVN2((x0 , x1),(x0 , x1 -1)) … return VC Routing_function: VN1: VN2: Selection_function(VC): Gian Luca Pozzato & Livio Robaldo – Wormhole routing Fully-adaptive: algoritmo PFNF (4) Vediamo un esempio di funzionamento: il mittente del messaggio è (2,2), il destinatario è (5,0) (2,2) (5,0) Gian Luca Pozzato & Livio Robaldo – Wormhole routing Fully adaptive: conclusioni La flessibilità garantita dai meccanismi di routing adattativo migliorano le performance, ma richiedono una crescita della complessità di gestione da parte dell’hardware, che rallenta notevolmente i router E’ stato osservato che gli algoritmi adattativi non migliorano necessariamente le prestazioni di una rete a bassa dimensione Un netto miglioramento si riscontra nelle reti ad alta dimensione, tipo hypercubes, e nelle reti in cui il traffico non è distribuito uniformemente Spesso ci si accontenta di un grado di adattabilità più basso, in cambio di una gestione più semplice: algoritmi parzialmente adattativi Gian Luca Pozzato & Livio Robaldo – Wormhole routing Partially adaptive routing Glass e Ni hanno proposto il “turn model”, sulla base del quale sono stati sviluppati diversi algoritmi parzialmente adattativi Soffermiamoci ancora sulle mesh 2-D: secondo il modello, ci sono otto possibili turni L’algoritmo xy previene il deadlock impedendo 4 turns: Gian Luca Pozzato & Livio Robaldo – Wormhole routing Partially adaptive routing (2) Per impedire il deadlock è sufficiente impedire 2 soli turni, uno in ciascun ciclo A seconda di quali turns vengono permessi/impediti si ottengono i seguenti algoritmi parzialmente adattativi: Algoritmo west-first: Algoritmo north-last: Algoritmo negative-first: Gian Luca Pozzato & Livio Robaldo – Wormhole routing Partially adaptive routing: west-first routing Gian Luca Pozzato & Livio Robaldo – Wormhole routing Deadlock recovery Come discusso, la prevenzione del deadlock richiede l’uso di risorse aggiuntive ed una gestione impegnativa Alcuni studi hanno evidenziato che le situazioni di potenziale deadlock sono rare nei sistemi multicomputers Impiegare risorse aggiuntive per prevenire situazioni rare non è una buona scelta Il deadlock recovery è una buona alternativa alla prevenzione del deadlock I messaggi vengono instradati senza restrizioni permettendo la formazione di cicli Un meccanismo di deadlock detection identifica potenziali configurazioni di deadlock; in tal caso, un opportuno schema di recovery rompe il ciclo Gian Luca Pozzato & Livio Robaldo – Wormhole routing Deadlock recovery: disha Disha è un esempio di strategia di deadlock recovery [Anjan e Pinkston, 1995] Il recovery è realizzato mediante un singolo flit buffer presente in ciascun nodo, chiamato deadlock buffer Tale buffer aggiuntivo viene utilizzato soltanto in caso di situazioni di potenziale deadlock Durante il recovery, i deadlock buffers formano una “strada deadlock-free” Al formarsi di un ciclo, uno dei messaggi del ciclo viene instradato nella strada deadlock-free e gli altri messaggi possono procedere Gian Luca Pozzato & Livio Robaldo – Wormhole routing Deadlock recovery: disha (2) Viene fissato un time-out di permanenza di un messaggio in un nodo. Scaduto il time out, il messaggio è considerato “deadlocked” Gian Luca Pozzato & Livio Robaldo – Wormhole routing Fault tolerant wormhole routing Nelle reti multicomputers di grandi dimensioni non si può trascurare l’importanza dei malfunzionamenti dei nodi Gli algoritmi di routing dovrebbero garantire che un pacchetto raggiunga la destinazione, qualora i nodi sorgente e destinazione siano connessi In letteratura sono stati presentati diversi algoritmi SPECIFICI che consentono di reagire ad eventuali guasti nella rete Glass e Ni hanno proposto un’estensione dell’algoritmo Negative-first che lo rendono in grado di reagire ai fallimenti [Glass e Ni, 1993] Vengono rilassate le condizioni di non adaptivity: il pacchetto viene fatto “girare attorno” al faulty node Il pacchetto viene scartato qualora sia impossibile instradarlo ulteriormente Gian Luca Pozzato & Livio Robaldo – Wormhole routing Fault tolerant wormhole routing (2) Un altro approccio è quello di [Varavithya et al., 1995] Estensione dell’algoritmo PFNF combinando wormhole routing e virtual cut-through Quando un pacchetto incontra un guasto, viene instradato nei cammini alternativi offerti dall’algoritmo a meno che non si trovi nell’ultima dimensione In tal caso, il messaggio viene completamente bufferizzato in un nodo adiacente a partire dal quale viene successivamente ritrasmesso Questa soluzione offre ottime performance; inoltre, non richiede hardware aggiuntivo per la gestione dei guasti Gian Luca Pozzato & Livio Robaldo – Wormhole routing Gian Luca Pozzato & Livio Robaldo – Wormhole routing Conclusioni Il wormhole routing è la tecnica di switching più usata nei sistemi multicomputer, ma ci sono diversi problemi aperti E’ necessario proseguire lo studio degli algoritmi adattativi (al momento, non sembrano efficienti al punto di giustificare i costi aggiuntivi) Gli algoritmi di routing fault-tolerant sono stati valutati assumendo fallimenti casuali dei nodi. Sarebbe interessante studiare meccanismi che permettano di introdurre fallimenti mirati Sono necessari algoritmi di routing specifici per certe applicazioni Abbiamo presentato algoritmi di routing implementati dall’hardware del router; tuttavia, per reti con elevate prestazioni ma costi accettabili è possibile implementare alcune funzionalità via software (schemi di routing ibrido) Gian Luca Pozzato & Livio Robaldo – Wormhole routing Gian Luca Pozzato & Livio Robaldo – Wormhole routing Bibliografia Anjan e Pinkston, 1995. K. V. Anjan e T. M. Pinkston. An Efficient, Fully Adaptive Deadlock Recovery Scheme: DISHA. 22° International Symposium on Computer Architecture, 201-210, 1995. Dally e Seitz, 1987. W. J. Dally e C. L. Seitz. Deadlock Free Message Routing in Multiprocessor Interconnection Networks. IEEE Trans. Comput., Vol. 36(5), 547-553, 1987. Duato, 1994. J. Duato. A necessary and Sufficient Condition for Deadlockfree Adaptive Routing in Wormhole Networks. In Proceedings of the International Conference on Parallel Processing, Vol. I, 142-149, 1994. Glass e Ni, 1993. C. J. Glass e L. M. Ni. Fault-tolerant Wormhole Routing in Meshes. In Proceedings of the International Symposium on FaultTolerant Computing, 240-249, 1993. Gian Luca Pozzato & Livio Robaldo – Wormhole routing Bibliografia (2) Mohapatra, 1998. P. Mohapatra. Wormhole Routing Techniques for Directly Connected Multicomputer Systems. ACM Computing Surveys, Vol. 30(3), 374-410, 1998. Ni e McKinley., 1993. L. M. Ni e P. K. McKinley. A Survey of Wormhole Routing Techniques in Direct Networks. IEEE Computer, Vol. 26(2), 62-76, 1993. Upadhyay et al., 1997. J. Upadhyay, V. Varavithya e P. Mohapatra. A Traffic-balanced Adaptive Routing Scheme for two-dimensional Meshes. IEEE Trans. Comput., Vol. 46(2), 190-197, 1997. Varavithya et al., 1995. V. Varavithya, J. Upadhyay e P. Mohapatra. An Efficient Fault-Tolerant Routing Scheme for two-dimensional Meshes. In Proceedings of the International Conference on High-Performance Computing, 773-778, 1995. Gian Luca Pozzato & Livio Robaldo – Wormhole routing