Demand-Aware Network design with minimal congestion and route lengths
Chen Avin, Kaushik Mondal, Stefan Schmid
Forgalom igény tudatos hálózat tervezés minimális torlódással és úthosszal
Szecsődi Imre
Megjegyzés
- A prezentáció elkészítéséhez a cikk [21] számú referenciája is fel lett használva
- M. Ghobadi et al. Projector: Agile reconfigurable data center interconnect. In Proc. ACM SIGCOMM, pages 216–229, 2016.
Motiváció
- A technika előrehaladásával egyre nagyobb lett a feldolgozandó adatok mennyisége
- Adattárházakban a szerverek közötti kommunikáció is ezáltal megnövekedett
- A jelenlegi hálózatok a legrosszabb esetre vannak tervezve, azaz, hogy majdnem teljes sávszélességű, kétirányú kapcsolat álljon fent bármelyik két szerver között
- A valós kommunikáció nem ezt a sémát követi, hanem túlnyomó részt megadott párok között történik a legtöbb kommunikáció
Microsoft adattárház statisztikák
- Nézzünk meg pár valós példát, Microsoft adattárházában 250 ezer szervert 5 production klaszterben elosztva
Hálózat tervezési stratégiák
- A technika fejlődésével elérhetővé váltak eszközök arra, hogy egy adott hálózatot újra konfiguráljunk, attól függően milyen terhelés éri
- pl, korábbi kommunikációs minták alapján
- Két fő optimalizációs lehetőség van, legyen rövid az út (a) vagy legyen minimális a torlódás (b)
- A cikk bemutat egy módszert arra, hogy lehet mindkettőre majdnem optimális megoldást adni egyszerre (c)
Hálózat tervezési stratégiák
Adattárház hálózata
Potenciális módszerek újra konfigurálásra
Újra konfigurálás megvalósítása
- Átlag hálózatok statikusan vannak konfigurálva, nem sok lehetőséget adva annak, hogy változtassunk
- pl. Ethernet switch
Újra konfigurálás megvalósítása
- Optikai switchek már újra tudják konfigurálni magukat, de ezek "lassúak"
Újra konfigurálás megvalósítása
- Microsoft Research - ProjecToR, lézer segítségével kiváltani az optikai swticheket
- 12 µs váltás idő ( 2500x gyorsabb mint egy optikai hálózati switch)
Forgalom igény tudatos hálózat tervezés probléma
- Vegyünk egy hálózatot meghatározott számú csomóponttal
- A hálózathoz tartozik egy demand mátrix, ami leírja a valószínűségét annak, hogy \(i\) forrásból mekkora eséllyel lesz adat küldve \(j\) célba
- A cél, hogy ezen adatból egy olyan hálózati séma készítése, ami kis torlódást és rövid utakat eredményez, ez mellett még skálázható is
Példa
Formális felírás
- Adott N darab csúcspont V = {1, ..., N}, és egy kommunikációs séma \( M_D \), ami egy N×N mátrix
- A mátrix \((i, j)\) eleméhez tartozik egy \(p(i, j)\) valószínűség, ahol \(i\) a forrás csomópont és \(j\) a cél.
- A bemeneti mátrix ábrázolható egy irányított \(G_D\) gráfban, ahol az élsúlyok a két pont közötti kommunikációs valószínűség
- Az algoritmus feltétele, hogy a mátrix ritka legyen
Formális felírás
- Egy N hálózatra a torlódást és az úthosszt útválasztási sémával fogjuk definiálni
- Egy útválasztási séma az N hálózatra \(\Gamma(N)\), ami a \(\Gamma_{uv}\) utak halmaza, ahol \((u, v)\) párok különböző utakat jelölnek
- \(\Gamma_{uv}\) egy útsorozat, ami összeköti \(u\) pontot \(v\) ponttal
Torlódás
- (Definíció 1) A torlódást egy \(\Gamma(N)\) útválasztási sémán a \(D\) demand mátrix segítségével írjuk fel: \[C(D, \Gamma(N)) = \max_{e \in \Gamma(N)} \sum_{e \in \Gamma(uv)} p(u,v) \]
Úthossz
- (Definíció 2) Az átlag súlyozott úthosszt egy \(\Gamma(N)\) útválasztási sémán a \(D\) demand mátrix segítségével írjuk fel: \[L(D, \Gamma(N)) = \sum_{(u,v) \in D} p(u,v) \cdot d_{\Gamma(N)}(u, v) \] ahol a \(d_{\Gamma(N)}(u, v)\) az útvonal hosszát jelöli
Skálázhatóság
- A hálózatot skálázhatóra kell tervezni, ezért meghatározunk egy \(\Delta\) konstans fokszámot, ami a maximális csatlakozások számát fogja meghatározni egy adott csomóponthoz
- \(N_\Delta\) jelölje az összes \(\Delta\) fokszámú gráfot, és elváruk, hogy \(N \in N_\Delta\)
Optimális torlódás és úthossz
- Az optimális torlódást egy hálózatra, úgy határozzuk meg, hogy a csak a torlódást vesszük figyelembe számításkor \[C^*(D, \Delta) = \min_{N \in N_\Delta, \Gamma(N)} C(D, \Gamma(N))\]
- Az optimális úthosszt egy hálózatra, úgy határozzuk meg, hogy a csak az úthosszt vesszük figyelembe számításkor \[L^*(D, \Delta) = \min_{N \in N_\Delta, \Gamma(N)} L(D, \Gamma(N))\]
cl-DAN hálózat tervezése
- (Definíció 3) Adott egy \(D\) demand mátrix, és egy \(\Delta\) maximális fokszám, az \((\alpha, \beta)\)-cl-DAN hálózat tervezési probléma:
- Hogy tervezzünk egy olyan \(N \in N_\Delta\) hálózatot, és egy hozzá tartozó \(\Gamma(N)\) útválasztási sémát, ami közel optimális torlódásra és úthosszra is
- Az algoritmus egy felső korlátot tud adni arra, hogy mennyivel fog eltérni a megoldás az optimálistól
- Torlódásra: \[C(D, \Gamma(N)) \le \alpha \cdot C^*(D, \Delta) + \alpha'\]
- Úthosszra: \[L(D, \Gamma(N)) \le \beta \cdot L^*(D, \Delta) + \beta'\]
EgoTree - EgoFák
- Az Egofa egy torlódásra és úthosszra optimalizált fa hálózat egy csomópontra nézve
- Az Egotree-t definiáljuk a következő módon, \[EgoTree(s, \bar{p}, \Delta) \]
- \(s\) a forrás csomópont
- \(\bar{p}\) a szomszédainak eloszlásai
- \(\Delta\) fokszám
- Ez közel optimális megoldást ad torlódásra és úthosszra
1. Tétel
- Adott egy \(\bar{p}\) frekvencia eloszlás az \(s\) forrás ponthoz, és adott egy \(\Delta\) fokszám, ekkor az \(EgoTree(s, \bar{p}, \Delta)\) egy \((\alpha, \beta)\)-cl-DAN a következő paraméterekkel:
- \(\alpha = \frac{4}{3}\)
- \(\beta = log^2(\Delta + 1)\)
\(EgoTree(s, \bar{p}, \Delta)\) algoritmus
- \(s\) a gyökér elem, \(\Delta\) fokszámmal, üres fa
- Rendezzük sorba \(\bar{p} = \{p1, p2, ..., p_k\}\) valószínűségeket csökkenő sorrendben
- Kezdjük rárakni a fára a csomópontokat, a gyökér elemre legfeljebb \(\Delta\) levél kerülhet
- Mikor elértük a \(\Delta\) levelet, a következő csomópontokat mindig a legkisebb összesített súlyú levélre kapcsolok rá, itt már legfeljebb két levele lehet minden fának
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}\)
s
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.1, .1, .1, .1, .07, .05, .02, .01, .01\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
\(S_2 = .20\)
\(p_2(.20)\)
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.1, .1, .1, .07, .05, .02, .01, .01\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
\(S_2 = .20\)
\(p_2(.20)\)
\(p_3(.10)\)
\(S_3 = .10\)
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.1, .1, .07, .05, .02, .01, .01\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
\(S_2 = .20\)
\(p_2(.20)\)
\(p_3(.10)\)
\(S_3 = .10\)
\(S_4 = .10\)
\(p_4(.10)\)
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.1, .07, .05, .02, .01, .01\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
\(S_2 = .20\)
\(p_2(.20)\)
\(p_3(.10)\)
\(S_3 = .20\)
\(S_4 = .10\)
\(p_4(.10)\)
\(p_5(.10)\)
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.07, .05, .02, .01, .01\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
\(S_2 = .20\)
\(p_2(.20)\)
\(p_3(.10)\)
\(S_3 = .20\)
\(S_4 = .20\)
\(p_4(.10)\)
\(p_5(.10)\)
\(p_6(.10)\)
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.05, .02, .01, .01\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
\(S_2 = .27\)
\(p_2(.20)\)
\(p_3(.10)\)
\(S_3 = .20\)
\(S_4 = .20\)
\(p_4(.10)\)
\(p_5(.10)\)
\(p_6(.10)\)
\(p_7(.07)\)
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.02, .01, .01\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
\(S_2 = .27\)
\(p_2(.20)\)
\(p_3(.10)\)
\(S_3 = .25\)
\(S_4 = .20\)
\(p_4(.10)\)
\(p_5(.10)\)
\(p_6(.10)\)
\(p_7(.07)\)
\(p_8(.05)\)
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.01, .01\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
\(S_2 = .27\)
\(p_2(.20)\)
\(p_3(.10)\)
\(S_3 = .25\)
\(S_4 = .22\)
\(p_4(.10)\)
\(p_5(.10)\)
\(p_6(.10)\)
\(p_7(.07)\)
\(p_8(.05)\)
\(p_9(.02)\)
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{.01\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
\(S_2 = .27\)
\(p_2(.20)\)
\(p_3(.10)\)
\(S_3 = .25\)
\(S_4 = .23\)
\(p_4(.10)\)
\(p_5(.10)\)
\(p_6(.10)\)
\(p_7(.07)\)
\(p_8(.05)\)
\(p_9(.02)\)
\(p_{10}(.01)\)
Példa
\(EgoTree(s, \{.24, .2, .1, .1, .1, .1, .07, .05, .02, .01, .01\}, 4)\)
\( \{\}\)
\(p_1(.24)\)
\(S_1 = .24\)
s
\(S_2 = .27\)
\(p_2(.20)\)
\(p_3(.10)\)
\(S_3 = .25\)
\(S_4 = .24\)
\(p_4(.10)\)
\(p_5(.10)\)
\(p_6(.10)\)
\(p_7(.07)\)
\(p_8(.05)\)
\(p_9(.02)\)
\(p_{10}(.01)\)
\(p_{11}(.01)\)
Algoritmus elemzése
- A kapott eredményben látható, hogy a maximális torlódás a legnagyobb súlyú élen van
- Minimalizálni ezt, lényegében egy időzítés probléma, hogy osszuk ki a munkákat \(\Delta\) processzornak, hogy minden leghamarabb kész legyen
- Erre az optimális algoritmus NP-nehéz, de van közelítő módszer
Longest Processing Time (LPT)
- Először sorba rendezzük a feladatokat hossz szerint csökkenő sorrendben
- Ha van szabad processzor, akkor ahhoz rendeli a leghosszabb munkát
- Ha nincs akkor ahhoz a processzorhoz rendeli, ahol a legkevesebb ideig tart a munka
- (2. Tétel) Legyen \(\omega_L\) a maximum idő, mielőtt egy processzor befejezi az összes munkát a mohó LPT algoritmus szerint, és \(\omega_0\) az optimális, ekkor \[\frac{\omega_L}{\omega_0} \le \frac{4}{3} - \frac{1}{3\Delta}\]
- Ez az algoritmus polinom időben lefut
1. Tétel kiegészítése
- (1. Lemma) Az \(EgoTree(s, \bar{p}, \Delta)\) ad egy \(\frac{4}{3}\) szorzóval nagyobb közelítést a minimális torlódásra az optimális \(\Delta\) fokú fához képest, ami kiszolgál \(\bar{p}\) frekvencia eloszlást egy adott \(s\) forrás csomópontra
- (2. Lemma) Az \(EgoTree(s, \bar{p}, \Delta)\) ad egy \(log^2(\Delta + 1)\) szorzóval nagyobb közelítést a minimális úthosszra az optimális \(\Delta\) fokú fához képest, ami kiszolgál \(\bar{p}\) frekvencia eloszlást egy adott \(s\) forrás csomópontra
3. Tétel
- Legyen \(D\) egy szimmetrikus kommunikáció kéréseloszlás , ahol az átlag csúcs fokszáma \(\rho\), (azaz az élek száma \(\rho \cdot \frac{n}{2}\). Ekkor a maximum fokszám \(\Delta = 12\rho\), ehhez lehetséges generálni egy \((\alpha, \beta)\)-cl-DAN hálózatot, ahol
- \(\alpha = 1 + (\frac{8}{9})\Delta\)
- \(\beta = 1 + 4log^2(\Delta + 1)\)
- Konstans \(\rho\) esetén ez konstans közelítést ad a minimális torlódásra és az optimális úthosszra
\((\alpha, \beta)\)-cl-DAN algortimus
- Felosszuk a hálózat csúcsait két halmazra, \(H\) - magas és \(L\) - alacsony fokszámúakra fele-fele arányban
- Az alacsony fokszámú csúcsok fokszáma legfeljebb \(2\rho\)
- Megkeressük az összes olyan \((u, v)\) élt, ahol \(u\) és \(v\) is a magas fokszámú halmazba tartozik
- Az ilyen éleket a gráfban kiegészítjük egy segítő csomóponttal, \(l \in L\), az eredeti csomópontok között megszüntetjük az élt, és felveszünk két új élt \((u, l)\) és \((v, l)\)
- Minden segítő \(l\) csúcs választásakor egy még nem felhasználtat válasszunk az \(L\) halmazból
\((\alpha, \beta)\)-cl-DAN algortimus
- 4. Meghatározunk egy mátrixot, ami első lépésben az eredeti
- Ahol segítő csomópontot vettünk fel, ott az útvonal hosszúhoz hozzá kell még adni az \(l\)-el való áthaladást is, és törölni kell az eredeti pontok közti élt
- Ezután elkészítjük a magas halmaz csúcsaira a \(T_u\) fát, ahol a valószínűségeket a mátrixból kiolvassuk, \(\Delta = 12\rho\) fokszámmal, ez közel optimális megoldást ad mindkét fel
\((\alpha, \beta)\)-cl-DAN algortimus
- 5. Mivel \(u\) és \(v\) pontok közt egy \(l\) segítő csomópont van használva ezért \(T_u\) és \(T_v\) módosításra szorul. Alakítsuk át először \(T_u\)-t \(T'_u\)-ra
- Ha \(l \notin T_u\), \((p(u, l) = 0)\), akkor \(l\) átveszi \(v\) helyét \(T'_u\)-ban
-
Ha \(l \in T_u\), \((p(u, l) \gt 0)\), akkor két lehetőségünk van:
- Ha \((p(u, l) \gt (p(u, v))\), akkor töröljük \(v\)-t a fából
- Ha \((p(u, l) \le (p(u, v))\), akkor \(l\) átveszi \(v\) helyét \(T'_u\)-ban
- \(T'_v\) hasonlóan számítjuk ki, ezzel garantálva, hogy \(T'_u\) és \(T'_v\) közötti kommunikáció az \(l\) csomóponton keresztül fog áthaladni
5. lépés vizualizálása
\((\alpha, \beta)\)-cl-DAN algortimus
- 6. Konstruáljuk meg az új N hálózatot, vegyük az előbb készített egofákat és vegyük az uniójukat, azaz húzzuk be az összes olyan élet amik szerepeltek a fákban
- De mivel nem csak magas fokú csomópontok közt történhetett adatforgalom, ezért még vegyük hozzá az N hálózathoz azokat az éleket is, ahol mindkét csomópont alacsony fokszámú volt
\((\alpha, \beta)\)-cl-DAN algortimus példa
\((\alpha, \beta)\)-cl-DAN algortimus példa
\((\alpha, \beta)\)-cl-DAN algortimus példa
Köszönöm a figyelmet!
ForgalomIgenyTudatosHalozat
By Imre Secodi
ForgalomIgenyTudatosHalozat
- 271