Top Banner
Gian Luca Pozzato & Livio Robaldo – Wormhole routing Gian Luca Pozzato & Livio Robaldo are proud to present… Bleah! Che schifo…
61

Wormhole routing

Jan 13, 2016

Download

Documents

leia

Gian Luca Pozzato & Livio Robaldo. are proud to present…. Wormhole routing. Bleah! Che schifo…. Introduzione. Tra i sistemi distribuiti, i sistemi cluster hanno trovato larga diffusione: Prestazioni buone Architettura ideale per l’esecuzione di applicazioni parallele Costi contenuti - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Gian Luca Pozzato & Livio Robaldo

are proud to present…

Bleah! Che schifo…

Page 2: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Tra i sistemi distribuiti, i sistemi cluster hanno trovato larga diffusione:

1. Prestazioni buone2. Architettura ideale per l’esecuzione di applicazioni parallele3. Costi contenuti

CLUSTER: sistema distribuito ottenuto collegando fra loro nodi indipendenti mediante una rete locale

Introduzione

Nodi indipendenti Nodi montati su rackNodi di tipo “blade”

Page 3: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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]

Introduzione (2)

Page 4: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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

In questa presentazione…

Page 5: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Page 6: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Nodo Nodo Nodo Nodo

Rete locale di interconnessione

Reti multicomputers (direct networks)

Page 7: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Reti multicomputers (direct networks) (2)

Unità funzionali

ProcessoreMemoria

locale

Router

……

… …

Canali di output INTERNICanali di input INTERNI

Canali di input ESTERNI

(canali di input)

Canali di output ESTERNI

(canali di output)

Page 8: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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

informazioniInfo di routing

Info di sequenza

Reti multicomputers (direct networks) (3)

Page 9: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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 output4 tecniche di switching…

pozzato
Algoritmo di routing: sceglie il canale di output per un pacchetto giunto su un canale di input (output selection policy)
pozzato
Quando lo stesso canale di output è selezionato per diversi canali di input, la scelta di uno solo di questi è effettuata mediante una input selection policy
Page 10: Wormhole routing

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

Page 11: Wormhole routing

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 è disponibile2. 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

Page 12: Wormhole routing

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

Page 13: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Page 14: 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

Page 15: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Wormhole switching (2)

MESSAGGIO

PACCHETTO

FLITS

D HDD D D D D D D

Page 16: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Routing in sistemi Cluster

NODI del cluster

Canali fisici di collegamento

Flit2

12

1

3

1

2

3 12

3 1

23 1

2

31

2

3

23

3

Buffer di input Buffer di output

Page 17: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Un flit può avanzare...

Quando risiede in un canale di input Quando risiede in un canale di input

Quando gli viene allocato un buffer di output

Quando risiede in un canale di input

Quando gli viene allocato un buffer di output

Quando gli viene allocato il canale fisico

Quando risiede in un canale di input

Quando gli viene allocato un buffer di output

Quando gli viene allocato il canale fisico

AvantiSavoia!

Page 18: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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.

Wormhole switching: vantaggi e svantaggi

Vantaggi:

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.

Page 19: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Routing in sistemi Cluster: richiesta dello stesso buffer di output

Flit2

12

1

3

1

2

3

Flit

1

2

12

3

1

3 2

Ops..

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

1

2

3 1

2

3

1

2

3

13

212

3

2

3

1

23

3

12

3

123 23 3

Page 20: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

1

11

1

2

2 1

2

3

1

2 3

1

2

3 4 1 2

3

4

1

2 3

4

5

1

2

3

4 5

Ah! Il blu ed il verde vogliono lo stesso buffer

di output. Il verde continua ed il blu si

blocca

E, invece, il verde non continua...perchè qui vuole un buffer in cui c’è un flit del blu: si

blocca anche lui

Deadlock

Page 21: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Page 22: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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

DirectI nodi sono collegati tra

loro attraverso links point to point o diretti

IndirectI 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

Topologie di rete

Page 23: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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

5-ary 2-cube (torus)

Topologie di rete (2)

mesh 3D con k=3 in ciascuna dimensione

Page 24: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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:

K=4

2-cube (n=2)

3-cube (n=3)

ESEMPI di mesh 2D:

Topologie di rete (3)

K=8

Page 25: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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.

Il diametro deve essere minimizzato

Chiaramente…

Il bisection cut deve essere massimizzato

Topologie di rete (4)

Page 26: Wormhole routing

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:

(2n) (2n+1) (22n-1)

Esiste anche una stima del costo della rete: la bisection density, che è data dalprodotto 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…

2nx2n 2DMesh << 2nx2n 2DTorus << 2nHypercube

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.

Page 27: Wormhole routing

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 chese Tc (tempo di ciclo) è il tempo che un flit impiega a fare un hop e se D è il numerodi 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 pacchettitra i nodi del cluster e, quindi, diminuisce la latenza.

Page 28: Wormhole routing

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

Deterministici Adattativi

L’intero cammino sorgente-destinazione è stabilito sul nodo sorgente prima che il

messaggio sia spedito

Il cammino sorgente-destinazione viene stabilito di volta in volta dai nodi intermedi

attraverso cui i il messaggio transita

Il cammino sorgente-destinazione è unico ed è determinato solo sulla base

degli indirizzi di sorgente e destinazione

Il cammino sorgente-destinazione viene stabilito di volta in volta dai nodi

intermedi e dipende dalle condizioni attuali della rete (guasti, traffico, …)Minimali Non minimali

I messaggi sono sempre instradati lungo uno dei cammini più corti tra

sorgente e destinazione

I messaggi sono instradati attraverso qualsiasi cammino tra sorgente e destinazione

pozzato
Questo significa che ogni messaggio trasporta le informazioni sul routing...e questo aumenta l'overhead di tutti i messaggi
pozzato
Un messaggio quindi può anche percorrere un cammino più lungo, se la rete è guasta o congestionata.
pozzato
I non minimali sembrano meglio ma hanno il problema del livelock: un pacchetto gira a vuoto nella rete fino allo scadere del TTL
Page 29: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Page 30: Wormhole routing

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...

Wolfy
L'alternativa sarebbe il deadlock recovery...ma essa richiede un meccanismo di deadlock detection ed un meccanismo di deadlock preemption. La presenza del primo aumenta la complessità del sistema, mentre la presenza del secondo incrementa la latenza.
Wolfy
Infatti, anche se supponiamo che si instauri un ciclo nel grafo delle dipendenze, un algoritmo adattativo è comunque in grado di togliersi da una situazione di deadlock inviando almeno un flit del deadlock su un percorso alternativo...se ce ne sono...
Page 31: Wormhole routing

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).

Wolfy
Ovviamente, la cardinalità di p(C) è sempre 1 per ogni coppia di nodi negli algoritmi deterministici mentre è maggiore di 1 per gli algoritmi adattativi.
Wolfy
la differenza tra grafo di dipendenze non extended ed uno extended è che il primo considera SOLO le dipendenze dirette (cioè che i due canali ci e cj facciano parte di qualche cammino e siano IMMEDIATAMENTE CONSEGUENTI in esso), mentre in quelle extended consideriamo anche le dipendenze indirette, oltre a quelle dirette (cioè che i due nodi siano conseguenti nel cammino...ma non è necessario che siano immediatamente conseguenti).
Page 32: Wormhole routing

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...

n0 n1

n3 n2CA2

CH0

CA0

CH2

CA1 CH1CA3

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.

Wolfy
In pratica, i canali CAi possono essere usati per spedire messaggi a tutte le destinazioni, mentre i canali CHi possono essere usati per spedire messaggi solo alle destinazioni il cui indice è più alto di quello del nodo corrente.
Page 33: Wormhole routing

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.

CH0

CA3 CH1

CA1

Il grafo delle dipendenze è...

CA2

n0 n1

n3 n2CA2

CH0

CA0

CH2

CA1 CH1CA3

Topologia

CH2

I canali CHn possono spedire solo a nodi con

indici superiori ad n

CA1 può raggiungere solo n0 passando solo da CA2 e CA3

Da n2 posso raggiungere solo

n0 ed n1 passando per CA3 e CH0

Da n3 posso raggiungere n0, n1, n2 passando per

CH0 e CH1

E’ privo di cicli!!!Per il teorema visto, questo

algoritmo adattativo non entra mai in deadlock

Page 34: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Page 35: Wormhole routing

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]

Page 36: Wormhole routing

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

Page 37: Wormhole routing

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 messaggio2. 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…

Page 38: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Dimension-order routing su hypercube (2)

000 001

011010

100101

111110

S

D

S

010101

111111

XOR

010011011101

110110

XOR

011001001101

100100

XOR

001101101

D

Page 39: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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

Page 40: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Dimension-order routing su mesh 2D (2)

Direzione X

Dire

zion

e Y

Possibili turns

1 7

0 4

6 2

3 0

Page 41: Wormhole routing

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 sorgente-destinazione

Non è adatto a gestire:

1. Guasti sulla rete2. Congestione della rete

Page 42: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Dimension-order routing vs Routing adattativo

Page 43: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Parzialmente adattativiTotalmente adattativi

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:

I messaggi vengono instradati su un sottoinsieme dei possibili cammini tra

sorgente e destinazione

Tutti i possibili cammini tra sorgente e destinazione sono messi a

disposizione per l’instradamento dei messaggi

Page 44: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Fully-adaptive: algoritmo PFNF

Vediamo nel dettaglio un altro esempio: l’algoritmo positive-first-negative-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

Page 45: Wormhole routing

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

Page 46: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Fully-adaptive: algoritmo PFNF (3)

Nodo sorgente: (x0 , x1)

Nodo destinatario: (d0 , d1)

Routing_tag:

SE di - xi >0 ALLORA METTI 1SE di - xi <0 ALLORA METTI -1SE di - xi =0 ALLORA METTI 0

1 1

Routing_function:

VC=Ø1. Se tutti gli elementi in Routing_tag ≤0 Se Routing_tag[0] <0 aggiungi a VC i canali: ► vcVN1((x0 , x1),(x0 -1, x1)) ► vcVN2((x0 , x1),(x0 -1, x1))

Se Routing_tag[1] <0 aggiungi a VC i canali: ► vcVN1((x0 , x1),(x0 ,x1-1)) ► vcVN2((x0 , x1),(x0 ,x1-1))…

…2. Se tutti gli elementi in Routing_tag ≥0 Se Routing_tag[0] >0 aggiungi a VC i canali: ► vcVN1((x0 , x1),(x0 +1, x1)) ► vcVN2((x0 , x1),(x0 +1, x1))

Se Routing_tag[1] >0 aggiungi a VC i canali: ► vcVN1((x0 , x1),(x0 ,x1+1)) ► vcVN2((x0 , x1),(x0 ,x1+1))

…3a. Se Routing_tag[0] >0 aggiungi a VC il canale: ► vcVN1((x0 , x1),(x0 +1, x1))…

…3b. Se Routing_tag[0] <0 aggiungi a VC il canale: ► vcVN2((x0 , x1),(x0 -1,

x1))…

…3c. Se Routing_tag[1] >0 aggiungi a VC il canale: ► vcVN1((x0 , x1),(x0 , x1 +1))…

…3d. Se Routing_tag[1] <0 aggiungi a VC il canale: ► vcVN2((x0 , x1),(x0 , x1 -

1))return VC

VN1:

VN2:

Selection_function(VC):

Se vi è un solo canale in VC, lo restituisce. Altrimenti, ne sceglie uno a random o

impiegando un multiplex-turn bias (=se possibile, si cerca di proseguire nella direzione intrapresa, evitando di compiere dei turni)

Page 47: Wormhole routing

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)

Page 48: Wormhole routing

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

Page 49: Wormhole routing

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:

Page 50: Wormhole routing

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:

Page 51: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Partially adaptive routing: west-first routing

pozzato
In questo algoritmo sono impediti i turns verso ovest. Quindi, un pacchetto che deve andare vesro ovest ci va subito, dato che in seguito (prese altre direzioni) gli sarà impossibile tornare in tale direzione
Page 52: Wormhole 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

Page 53: Wormhole routing

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

Page 54: Wormhole routing

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”

Page 55: Wormhole routing

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

Page 56: Wormhole routing

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

Page 57: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Page 58: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

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)

Conclusioni

Page 59: Wormhole routing

Gian Luca Pozzato & Livio Robaldo – Wormhole routing

Page 60: 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 Deadlock-free 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 Fault-Tolerant Computing, 240-249, 1993.

Page 61: Wormhole routing

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.