Csoportos üzenetszórás optimalizálása klaszter rendszerekben Készítette: Juhász Sándor Csikvári András Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Automatizálási és Alkalmazott Informatikai Tanszék
Tartalom Kommunikációs alrendszer klaszterekben szűk keresztmetszet csoport kommunikációs primitívek Broadcast hagyományos megvalósításai központosított, fa, hiperkocka Szimmetrikus, aszinkron algoritmus Teljesítmény vizsgálat Összefoglalás
Kommunikáció klaszterekben Jelentőség Klaszterek Nagyobb teljesítmény olcsóbban Kommunikáció lassúsága szűk keresztmetszet Csak nagy granularitású feladatokra alkalmazható Kommunikáció korlátai A hardver új technológiák (ATM, SCI, Fast Ethernet, Gigabit Ethernet, Myrinet, Quadrics, Infiniband) teljesen kapcsolt (fully-switched) topológia sávszélesség jelentősége kicsi Késletetetések nagyobb része a szoftver rétegekben operációs rendszer, üzenetkezelő alrendszer, protokoll stack Cél: kommunikáció sebességének növelése az üzenet kezelő rendszer szintjén
Kommunikáció klaszterekben Üzenetkezelő rendszerek adatok De facto szabványok: PVM, MPI Cél: forráskód szinten hordozható párhuzamos programok Az üzenetkezelő rendszert minden architektúrára ki kell fejleszteni Csoportkommunikáció gyorsítása Pont-pont üzenetek gyorsítása Jobb algoritmusok Broadcast jelentősége Gyakran használt Más primitívek alkotó része (allgather, alltoall, barrier, allreduce) taszkok A 0 A A 2 A 3 B 0 B B 2 B 3 C 0 C C 2 C 3 D 0 D D 2 D 3 A 0 A A 2 A 3 B 0 B B 2 B 3 C 0 C C 2 C 3 D 0 D D 2 D 3 A 0 B 0 C 0 D 0 D D 2 D 3 A 0 A A 2 A 3 B 0 B B 2 B 3 broadcast scatter gather allgather alltoall A 0 B 0 C 0 D 0 A 0 B C D A 0 B 2 C 2 D 2 A 0 B 3 C 3 D 3 A 0 B 0 C 0 D 0 A B C D A 2 B 2 C 2 D 2 A 3 B 3 C 3 D 3 A 0 B 0 C 0 D 0 A 0 B 0 C 0 D 0 A 0 B 0 C 0 D 0 A 0 B 0 C 0 D 0 A 0 B 0 C 0 D 0 A B C D C 0 C C 2 C 3 A 2 B 2 C 2 D 2 D 0 D D 2 D 3 A 3 B 3 C 3 D 3
Broadcast megvalósításai Hagyományos módszerek a) egyetlen központból kiinduló üzenetszórás b) bináris fa topológiára épülő üzenetszórás c) hiperkocka topológiára épülő üzenetszórás c) 0 2 3 4 3 4 5 2 4 5 6 5 a) 0 b) 0 3 4 5 6 6 6 2 5 6 8 2 3 4 5 6... n 2 3 3 4 6 8 8 9 8 3 4 4 5 4 5 5 6 8 9 9 O(n) O(log 2 n) O(d ) kompexitás virtuális crossbar hálózati topológia esetén d n
Broadcast megvalósításai Különféle módszerek összehasonlítása Hardver támogatás kihasználása elvileg O() koplexitás, a leggyorsabb megoldás, de SW-ből: megbízhatóság kezelése (acknowledgement protokollok, ACK flooding) hosszú üzenetek kezelése (darabolás, küldés a leglassabb cél tempójában) üzenetszórás tetszőleges csoportnak (trükkök, vagy mindenki válogat) üzenetszórás típusa klaszteres implementálás bonyolultsága rugalmasság hordozhatóság (op. rendszer, hálózat típusok) megbízhatóság megvalósítása teljesítmény késleltetés a forrásnál teljes futási idő skálázhatóság (futási idő változás további hozzáadott csomópontokkal) központi egyszerű egyszerű egyszerű n üzenet O(n) rossz bináris fa közepes közepes egyszerű 2 üzenet O(log 2 n) jó hiperkocka összetettebb közepes egyszerű d üzenet O(dn /d ) jó hardver alapú bonyolult nincs bonyolult üzenet O() kitűnő szimmetrikus közepes közepes egyszerű üzenet O() korlátozott
Szimmetrikus, aszinkron algoritmus Alapvető tulajdonságok SW implementáció előnyei egyszerű megvalósítás tetszőleges üzenetméret és csomópontszám hordozható, plattform független alapvető küldés-fogadásra épül, megbízható átvitel nem igényel külön munkát Emellett viszont O() komplexitás HW támogatás nélkül, a switching hub kihasználásával
Szimmetrikus, aszinkron algoritmus Algoritmus leírás 2 átlapolódó fázis a) a forrás p részre bontja a szétküldendő üzenetet, és minden célnak elküldi egy darabját a cél csomópontok saját darabjaikat átküldik az összes többi célcsomópontnak b)
Szimmetrikus, aszinkron algoritmus n méretű szétküldésének analízise. fázis utolsó csomagja: t 0 +nt d 2. fázis minden csomópontja: t 0 + (p-)nt d /p Teljes futási idő lényegében két üzenet ideje: ( p ) ntd tc( n, p) = t0 + ntd + t0 + = 2t0 + ntd 2 O() p p (~p 2 db n/p méretű üzenet) Lehetséges problémák túl kicsi üzenetek overheadje (n/p kisebb a keretméretnél) switch telítődése, vagy az aszinkron implementáció problémái
Teljesítmény vizsgálat Teszt környezet Plattform (5 egyforma csomópont) IBM Pentium IV processzor (2.26 GHz) Intel 8280DB PRO/00 VE hálózati adapter 3Com SuperStack 4226T (00 Mbit Ethernet switch) Windows XP operációs rendszer Szoftver környezet RWTH Aachen, Lehrstuhl für Betriebssysteme: Multi-Platform MPICH http://www.lfbs.rwth-aachen.de/mp-mpich/ A beépített bináris fa strutúrájú broadcast és a szimmetrikus aszinkron algoritmus összehasonlítása (MPI_Irecv, MPI_Isend)
A fa (a,c) és szimmetrikus (b,d) üzenetszórás algoritmus teljesítményének összehasonlítása logaritmikus (a,b) és lineáris (c,d) skálán a) b) futási idő [ms] 000 00 0 0. 0.0 3 9 célcsomópontok száma 5 c) d) futási idő [ms] 48 36 3 S3 S0 S S4 S S6 S9 sorozat neve 2-3 -2 0- --0-2-- 36-48 24-36 2-24 0-2 futási idő [ms] 000 00 0 0. 0.0 3 9 célcsomópontok száma futási idő [ms] 48 36 5 3 S S9 S6 S3 S0 S S4 sorozat neve sorozat neve üzenet méret [byte] S 2 S2 4 S3 8 S4 6 S5 32 S6 64 S 28 S8 256 S9 52 S0 024 S 2048 S2 4096 S3 892 S4 6384 S5 3268 S6 65536 S 304 S8 26246 S9 524290 24 24 2 0 3 9 célcsomópontok száma 5 3 S6 S3 S0 S S4 sorozat neve S 2 0 3 célcsomópontok száma 9 5 3 S S6 S3 S0 S S4 sorozat neve
Teljesítmény vizsgálat Összehasonlítás azonos ábrában a) futási idő [ms] b) 00 90 80 0 60 50 6384 fa 65536 fa 304 fa 26246 fa 6384 szimmetrikus 65536 szimmetrikus 304 szimmetrikus 26246 szimmetrikus futási idő [ms] 00 0 40 30 20 0 0 2 3 4 5 6 8 9 0 2 3 4 célcsomópontok száma 2 3 4 5 6 8 9 0 2 3 4 célcsomópontok száma
Összefoglalás Cél a klaszterek kommunikációjának javítása Cikk: csoportkommunikáció gyorsítása az új üzenetszórási módszerrel Aszinkron, szimmetrikus algoritmus hordozható, skálázható egyszerűen implementálható akár 00% teljesítmény növekedés üzenetkezelő könyvtárba építve a régi kódok újraírás nélkül is gyorsulnak kis (<4k) üzenetekre nem érdemes alkalmazni
Kérdések