Bevezetés a fürtözött rendszerek világába
Az utóbbi időben a HWSW hasábjain egyre többször esik szó fürtözött rendszerekről, azaz clusterekről. Cikkünkből kiderül, hogy épülnek fel a fürtözött rendszerek, milyen szempontok játszhatnak szerepet a tervezésüknél, milyen környezetben használhatóak, melyek az előnyeik és hátrányaik.
A clustereket üzleti és tudományos céllal is használják. Üzleti szempontokból a fürtözött rendszerek előnye elsősorban a magas rendelkezésre állás és a skálázhatóság, tudományos szempontokból vizsgálva a skálázhatóság mellett leginkább a kedvező ár/teljesítmény arány szól a fürtök mellett. Ma már bárki összeépíthet egy szinte szuperszámítógépes teljesítményt nyújtó, tudományos célú fürtözött rendszert, miközben az ár töredéke lehet egy azonos számítási teljesítményt nyújtó szuperszámítógépének. Az alábbi ábrán megfigyelhető, hogy a világ legnagyobb teljesítményű szuperszámítógépeit számba vevő Top500 listán az elmúlt 10 év során hogy növekedett a fürtözött rendszerek száma. Az alsó ábra azt mutatja meg, hogy az 500 leggyorsabb számítógép összteljesítményéből mekkora szeletet hasítottak ki a clusterek.
A clusterek térhódítása a Top500 listán (darabszám)
A clusterek térhódítása a Top500 listán (teljesítmény)
Valószínűleg nem túlzás azt állítani, hogy a Google alapjául szolgáló cluster az üzleti szférát tekintve a világ legnagyobb fürtözött rendszere. A Google kereső motorját a kezdetektől fogva úgy tervezték, hogy hatékonyan működjön egy clusteren. 2002 végi adatok szerint a keresőmotort egy több mint 15 ezer számítógépből álló fürt szolgálta ki, amelyben ugyanúgy megtalálhatóak voltak egyprocesszoros, Celeron-alapú számítógépek, mint két Xeon lapkára épülő rendszerek. A Google a fürtözött rendszerek minden létező előnyét kihasználja, hiszen a nagy teljesítményen, a kérések minél gyorsabb kiszolgálásán túl az üzletmenet szempontjából kritikus a rendelkezésre állás is.
A fürtözött rendszerek előnye a nagy, SMP (shared memory multi-processor) vagy MMP (massively parallel multi-processor) rendszerekhez képest, hogy azonos processzorszám, illetve számítási teljesítmény mellett rendszerint olcsóbban telepíthetők, a felépítésből adódóan érzéketlenebbek a hibákra, illetve az alkalmazások skálázhatósága még akkor is megoldható, amikor az SMP rendszerek már nem bővíthetők tovább. A több csomópontból álló rendszerek az egyik csomópont kiesése esetén nem omlanak össze, teljesítményük ugyan lecsökken, azonban a fürt továbbra is működőképes marad, az alkalmazások futása folytatódhat. Természetesen mindig az adott alkalmazástól függ, hogy lehet-e és érdemes-e fürtözött rendszeren futtatni.
A clusterek hátránya, hogy mivel több számítógépből állnak, ezért a felügyeletük, menedzsmentjük bonyolultabb, azonban mivel a csomópontok rendkívül hasonló, vagy azonos felépítésűek, a menedzsment-feladatok bonyolultsága a csomópontok számának növelése esetén az egyenesnél jóval kisebb arányban nő. Természetesen ma már számos olyan alkalmazás áll a felhasználók rendelkezésére, amelyek a fürtözött rendszerek menedzsmentjét könnyítik meg. A sok alkatrész miatt a hibalehetőségek száma is magas, azonban mivel a csomópontok azonos felépítésűek és a felhasznált alkatrészek viszonylag olcsóak, ezért a javítások vagy cserék egyszerűek.
[oldal:A fürtök típusai]
A megvalósítás célja szerint a clustereket négy csoportba lehet sorolni.Az egyik legrégebbi és legismertebb HPC-jellegű cluster a Beowulf nevet kapta. A Beowulfot 1994 nyarán építették a NASA Goddard Space Flight Centerben: a rendszer eleinte 16 darab i486DX processzoros csomópontot tartalmazott, amelyeken Slackware Linux operációs rendszer futott. A csomópontokat 10 Mbps Ethernet hálózat kapcsolta össze. Mivel ezt a fajta "szuperszámítógépet" kiskereskedelemben megvásárolható alkatrészekből is könnyen, olcsón össze lehetett állítani, ezért nagyon gyorsan népszerűvé vált nem csak a NASA-n belül, hanem az egész világon. A hasonló, kiskereskedelemben kapható alkatrészekből összeállított HPC fürtöket ma már szokás egyszerűen Beowulf-fürtnek is nevezni. A HPC fürtökről és a Beowulfokról a cikk későbbi részében még lesz szó.
Load balance cluster
Oracle Real Application Clusters
A load balance és high availability funkciókat egyszerre valósítja meg az Oracle Real Application Clusters (RAC). Az Oracle RAC esetében az adatbáziskezelő több számítógépen önállóan fut, azonban azonos adatbázisból dolgoznak. A csomópontoknak egyformán írnak, olvasnak és törölnek adatokat. Éppen ezért az egyik csomópont meghibásodása esetén az adatbáziskezelő nem áll le, csupán a teljesítmény csökken, azaz a fürt továbbra is ki tudja szolgálni a kéréseket.
Az NEC Earth Simulator
[oldal:Interconnect technológiák]
A csomópontokat összekötő, ún. interconnect hálózatra számos megoldás létezik és terjedt el, az olyan nyílt szabványoktól kezdve, mint a Fast Ethernet, Gigabit Ethernet vagy Infiniband, egészen a kifejezetten fürtök összekapcsolására specializált megoldásokig, mint a Myricom Myrinet, a Dolphin SCI, vagy a Quadrics QsNet. Természetesen ezek mellett léteznek még gyártó-specifikus megoldások, amelyek egy-egy vállalat által a saját gyártású szerverek összekapcsolására használhatók. Ilyen megoldás többek között a Sun Fire Link vagy a HP Hyperfabric.A széles körben ismert és jelentős gyártók (HP, IBM, Sun) által támogatott Infiniband egy kedvező ár/teljesítmény arányt biztosító cluster interconnect technológia, amelynek előnye, hogy akár adattárolási környezetben is használható, így egy fürt és a hozzá kapcsolódó háttértárak összekapcsolása homogén környezetben oldható meg. Egy Infiniband-hálózat Host Channel Adapterekből és Target Channel Adapterekből áll, amelyek Infiniband switchekhez vannak kapcsolva. A réz vagy optikai vezetékek segítségével felépített kapcsolat vezetékenként 2,5 Gbps adatátviteli sebességet kínál, egy kapcsolat 1, 4 vagy 12 vezetéket használhat, így akár 30 Gbps sávszélesség is elérhető.
A Dolphin SCI (Scalable Coherent Interface) az egyik legolcsóbb nagysebességű interconnect technológia, amely elsősorban kisebb clusterek építéséhez használható. Az SCI legmagasabb egyirányú adatáteresztő képessége másodpercenként 200 Mbyte, a minimális késleltetés pedig 4 mikrosecundum. Az SCI hálózat két- vagy háromdimenizós tórusz topológiájú lehet, amelyben egy hálózati gyűrűhöz legfeljebb 5 csomópont tartozhat, és mind az 5 csomópont egy, két vagy három darab gyűrűhöz tartozhat. Így egy 2D hálózat legfeljebb 5x5, egy 3D SCI hálózati pedig 5x5x5 csomópontot tartalmazhat. Az SCI interconnect nem igényel további hálózati alkatrészeket.
A Myricom Myrinet talán a legnépszerűbb nagysebességű interconnect megoldás, felépítéséhez hálózati kátyákon kívül switchekre is szükség van. A Myrinet legnagyobb kétirányú adatáteresztő képessége 245 Mbyte/sec, a minimális késleltetés pedig 7 microsecundum. A hálózat legfeljebb 8192 csomópontot tartalmazhat.
A Quadrics QsNet a legnagyobb sávszélességű speciális interconnect technológia, amely természetesen a legdrágább is. A QsNet legnagyobb kétirányú sávszélessége 350 Mbyte/sec, a minimális késleltetés pedig 5 mikrosecundum. A Quadrics QsNet hálózati kártyák legfeljebb 128 portos switchekhez csatlakoznak. Egy QsNet hálózat legfeljebb 1024 csomópontot tartalmazhat. A napokban bejelentett QsNet II már 900 Mbyte/sec sávszélességet biztosít és legfeljebb 4096 csomópontot képes kezelni.
Az interconnect technológiák kapcsán érdemes még megemlíteni a gyártó-specifikus megoldásokat, mint amilyen a Sun Fire Link vagy a HP Hyperfabric. A Sun Fire Link névre keresztelt megoldás segítségével legfeljebb nyolc Sun Fire 6800, 12K vagy 15K számítógép kapcsolható össze. A Sun saját interconnect technológiájának fontos jellemzője, hogy a kapcsolat nem interfész-adaptereken keresztül zajlik, hanem a szerverek saját crossbar kapcsolójához illeszkedik. A Sun Fire Link a versenytársaknál lényegesen jobb sávszélességet (~ 1 Gbyte/sec) és rendkívül alacsony késleltetést (<4 ms) biztosít, hátránya azonban hogy csak bizonyos Sun szerverekkel kompatibilis.
A HP Hyperfabric legfeljebb 64 szerver összekapcsolására használható, az interconnect "nyers" sávszélessége 4 Gbit/sec, az alkalmazások rendelkezésére álló sávszélesség 2,4 Gbit/sec. A HP jelenleg 8 és 16 portos Hyperfabric kapcsolókat kínál. A vállalat nem titkolja, hogy a Hyperfabricet elsősorban az Oracle RAC igényeihez tervezték, ennek megfelelően a TCPIP/UDP protokollok mellett elérhető rajta egy HMP nevű protokoll is, amely kifejezetten a megbízhatósággal kapcsolatos kiterjesztéseket tartalmaz.
Interconnect | Sávszélesség (MByte/s) | Késleltetés (mikrosec) | Költség/port (Euro) |
Sun Fire Link | ~1000 (mono) | <4 | n/a |
QsNet (Quadrics) | 350 (bi) | 5 | 4770 |
Myrinet (Myricom) | 245 (bi) | 7 | 2050 |
SCI (Dolphin) 2D 5x5 | 200 (mono) | 4 | 1590 |
SCI (Dolphin) 3D 5x5x5 | 200 (mono) | 4 | 2226 |
Gigabit Ethernet | 125 (bi) | 100 | 477 |
Megabit Ethernet | 12 (bi) | 100 | 48 |
[oldal:HPC-fürtök tervezési irányelvei]
A fürtök tervezése és telepítése esetén mindenkor a majdan futtatni kívánt alkalmazás paramétereit szem előtt tartva kell eljárni. A megfelelő hardverkörnyezet kiválasztásakor figyelembe kell venni az alkalmazás "szemcsézettségét", vagyis hogy a szoftver mekkora számú és méretű párhuzamosítható részre osztható fel. Ehhez a szemcsézettségi szinthez kell megválasztani a hardverkörnyezet szemcsézettségét. Utóbbit a számítási és kommunikációs képességek hányadosaként írhatjuk fel. Durva szemcsézettségű fürt lehet egy Fast Ethernet hálózattal összekapcsolt cluster, a legfinomabb szemcsézettséget természetesen egy nagy, multiprocesszoros (SMP) rendszer jelenti.Ha az alkalmazás finomabb szemcsézettségű a hardvernél, akkor a cluster teljesítményét a lassú kommunikáció fogja vissza, ha az alkalmazás szemcsézettsége durvább a hardverénél, akkor a rendszer nem rendelkezik elég számítási képességgel. Összességében azt kell látni, hogy egy fürt akkor lehet a leghatékonyabb, ha többet számol, mint amennyit kommunikál. A szoftverkörnyezetet szintén az alkalmazás határozza meg, a legtöbb esetben az operációs rendszer *IX vagy Linux, de a Windows is rendelkezik fürtözési funkciókkal, noha ezek elsősorban üzleti alkalmazások magas rendelkezésre állását lehetővé tevő szolgáltatások.
A csomópontokat és a csomópontokat összekötő - interconnect -- hálózat típusát a futtatni kívánt alkalmazás határozza meg. Az összekötő hálózat kiválasztásánál az alkalmazás szemcsézettségét kell figyelembe venni. Ezek, valamint a rendelkezésre álló büdzsé ismeretében kiválasztható a csomópontok konfigurációja, valamint az azokat összekötő hálózat típusa.
A csomópontok megválasztásánál szempont lehet, hogy az alkalmazás elsősorban fixpontos vagy lebegőpontos számítási teljesítményt igényel-e, szükség van-e 64 bites architektúrára, valamint hogy a processzorban található cache mérete mennyiben befolyásolja a futási teljesítményt. A csomópontok az igényektől függően az egyprocesszoros, 32 bites PC-től kezdve az akár két vagy több 64 bites processzort tartalmazó szerverig is változhatnak.
A Beowulf, tehát kiskereskedelemben kapható alkatrészekből összeépített clusterek csomópontjai jellemzően két processzorral rendelkeznek, ennek elsősorban helyfoglalási, hőtermelési és költség-okai vannak, az egy- és kétprocesszoros konfigurációk közötti árkülönbség ugyanis kisebb, mint a két- és négyprocesszoros gépek közötti különbség. Természetesen léteznek olyan HPC-fürtök, amelyeket nagy multiprocesszoros rendszerekből építenek fel, jelenleg zömmel ilyenek népesítik be a világ legnagyobb teljesítményű számítógépeit számba vevő Top500 listát.
Cikkünk írásakor a legnagyobb teljesítményű Beowulf-fürt a Virginia Tech egyetemen telepített, "X" néven ismert rendszer, amely 1100 darab kétprocesszoros Apple Power Mac G5 csomópontot tartalmaz és összteljesítménye 10,28 TeraFLOPS, így a Top500 lista szerint a harmadik legnagyobb teljesítményű számítógéprendszer. A számítógépekben egyenként két darab 2 GHz-es IBM PowerPC 970 processzor, 4 Gbyte memória és 160 Gbyte merevlemez található. A csomópontokat Infiniband-alapú interconnect hálózat kapcsolaja össze. A rendszert jelenleg még tesztelik, tudományos munkákra január 1-től használják majd.
A Beowulfok kapcsán mindenképp említést érdemel az amerikai NCSA (National Center for Supercomputing Applications) által épített fürtözött rendszer, amely Linux operációs rendszert futtató Sony PlayStation 2 konzolokból áll. A készülékeket Fast Ethernet hálózat köti össze. A fürtözött rendszeren kémiai kutatásokat támogató számítási feladatokat hajtanak végre.
[oldal:HPC-fürtök tervezési irányelvei (folytatás)]
"A végeredmény mindig nulla", azaz a hardverre szánt büdzsét a csomópontok és az összekötő hálózat között kell elosztani. Nyilvánvaló, hogy minél többet költünk az egyikre, annál kevesebb marad a másikra. A csomópontok számának meghatározásához hathatós segítség lehet Amdahl törvénye, valamint a Gustafson-Barsis szabály amelyek kimondják, hogy a párhuzamosíthatóság meghatározásánál az egész alkalmazást figyelembe kell venni. Az alkalmazás párhuzamosítható és nem párhuzamosítható részeinek ismeretében meghatározható, hogy adott típusú csomópontokat figyelembe véve hány darab szükséges a leghatékonyabb végrehajtáshoz.
A jövőben szinte biztosan lesz bővítés, ezt a tervezéskor mindenképp figyelembe kell venni. Ez mindössze annyit jelent, hogy a hálózatot úgy érdemes megtervezni, hogy a csomópontok számát a későbbiekben egyszerűen lehessen növelni.
Már szóltunk róla, hogy a HPC-jellegű fürtök rendszerint speciálisan a párhuzamos környezetre optimalizált alkalmazásokat futtatnak. Az alkalmazást tehát minden esetben fel kell készíteni a párhuzamos futásra, ezt rendszerint speciális üzenettovábbító függvénykönyvtárak (library) segítségével lehet megtenni. Ezek a függvénykönyvtárak arra szolgálnak, hogy magas szintű programozási nyelveken egyszerűen és hatékonyan megoldható legyen a csomópontok közötti kommunikáció. A legismertebb és leginkább elterjedt függvénykönyvtárak az MPI (Message Passing Interface) és a PVM (Parallel Virtual Machine).
A HPC-jellegű fürtözésben érdekelt gyártók (Sun, HP, IBM, ...) mind rendelkeznek saját, MPI-alapú függvénykönyvtárral, amelyet operációs rendszerükhöz és hardvereikhez igazítanak. Az MPI-nak létezik szabad implementációja is, ez az MPICH, amelyet rendszerint Linux operációs rendszert futtató fürtökön használnak.
A PVM egy függvénykönyvtár, másrészt egy úgynevezett daemon alkalmazás, amelyet a csomópontokon kell futtatni. A daemon futása ad hozzáférést a rendszer erőforrásaihoz, illetve biztosítja a fürt felhasználói számára, hogy a futtatni kívánt alkalmazások felé az erőforrások megfelelően csoportosítva legyenek "kiajánlhatók". Tulajdonképp a PVM összefogja, és csoportokba rendezi a fürtben rendelkezésre álló erőforrásokat. Természetesen a felhasználók (adminisztrátook) tetszőlegesen csoportosíthatják a fürt csomópontjait és tetszőlegesen rendelhetik hozzá az egyes csomópontokat az alkalmazásokhoz.
Az elterjedt üzeneküldő protokollokon kívül természetesen a nagy gyártók mind rendelkeznek saját megoldásokkal, ezek kapcsán mindképp meg kell említeni a HP-t, amely a Compaq, a Tandem és a Digital örökségéből kifolyólag számos ilyen jellegű megoldással (Computer Interconnect, ServerNet II, Memory Channel, Digital Storage System Interconnect, FDDI, ...) rendelkezik. Ezek részben saját hardveres megvalósítással rendelkeznek, részben azonban a már meglevő és elterjedt fizikai kapcsolatokon (Ethernet, Gigabit Ethernet, Fibre Channel) alapulnak.
Felhasznált irodalom:
- Web Search for a Planet: The Google Cluster Architecture (Luiz André Barroso, Jeffrey Dean, Urs Hölzle)
- Computer Architecture: A Quantitative Approach (J. L. Hennessy, D. A. Patterson)
- The Design of High Performance Compute Clusters - Overview and Benchmarking (Tom Lehmann)
- HPC Hardware: CPU, Memory, I/O, Management & the Bigger Picture (Richard Libby)
- HPC Communication Architectures: Comparing Today's Choices (Jeremy C. Siadal)
- High Performance Computing Applications Performance & Overview (Sunil Kulkarni, Paresh Pattani)
- Terascale Computing Facility Information Session (Srinidhi Varadarajan, Kevin Shinpaugh, Jason Lockhart)
- Scientific Computing on the Sony PlayStation 2 (Craig Steffen)
- www.top500.org
A cikk elkészítéséhez nélkülözhetetlen segítséget nyújtott Fischer Erik, Ódor Tamás, valamint Balogh Mihály. Köszönet illeti továbbá a HWSW fórumozóit.