Skoči na vsebino

Strojna oprema superračunalnika

Avtorja: Davor Sluga, Ratko Pilipović

Zgradba gruče Slika generirana s pomočjo umetne inteligence.

Predstavljaj si restavracijo, v kateri vsi zaposleni skrbijo da gostje doživijo nepozabno kulinarično izkušnjo. Ko se vsedejo, gostje oddajo naročila natakarjem. Natakarji zbirajo naročila od vseh gostov in naročila nato posredujejo vodji kuhinje. Vodja kuhinje sprejema ključne odločitve: razdeli pripravo naročenih jed kuharskim ekipam, pri tem pa vodi račune o potrebnih sestavinah. V kuhinji se delo razdeli po specializacijah – eni kuharji pripravljajo glavne jedi, drugi sladice, tretje priloge. Kuharji delajo hkrati, vsak na svojem delu naročila, pri čemer jih vodja usklajuje, da so vse jedi končane pravočasno. Shramba poskrbi, da so sestavine hitro dostopne, in omogoča nemoten potek dela.

Uvodni odstavek ilustrira delovanje sodobnega superračunalnika:

  • Gostje v primeru gruče predstavljajo uporabnike,
  • natakarji vstopna vozlišča,
  • vodja kuhinje glavno vozlišče,
  • kuharske ekipe računska vozlišča in
  • shramba podatkovna vozlišča.

V nadaljevanju bomo podrobneje spoznali zgradbo oziroma posamezne komponente sodobnega superračunalnika oziroma računalniške gruče. Izraz računalniška gruča izhaja iz zgradbe superračunalnika, saj je ta dandanes skupek najrazličnejših podsistemov (računalnikov), ki so s pomočjo ustrezne strojne in programske opreme med seboj povezani tako, da lahko usklajeno in učinkovito rešujejo najzahtevnejše probleme človeštva.

Tipi vozlišč

Računalniška gruča je sestavljena iz množice računalnikov, ki jim strokovno rečemo vozlišča. Ta so tesno povezana v omrežje in delujejo na enak način in so sestavljena iz enakih elementov, kot jih najdemo v osebnih računalnikih: procesorjev, pomnilnika in vhodno/izhodnih enot. Gruče seveda prednjačijo v količini, zmogljivosti in kvaliteti vgrajenih elementov, običajno pa nimajo vhodno-izhodnih naprav, kot so tipkovnica, miška in zaslon. Kot smo prej omenili, v gručah ločimo več tipov vozlišč, njihova zgradba je odvisna od njihove vloge v sistemu. Za uporabnika so pomembna:

  • glavna vozlišča (angl. head nodes),
  • vstopna vozlišča (angl. login nodes),
  • računska vozlišča (angl. compute nodes) in
  • podatkovna vozlišča (angl. data nodes).

Zgradba gruče

Glavno vozlišče skrbi za usklajeno delovanje celotne gruče. Na njem tečejo programi, ki spremljajo stanje ostalih vozlišč, razvrščajo posle na računska vozlišča, nadzirajo izvajanje poslov in drugo.

Uporabniki se s programskimi orodji preko protokola SSH prijavimo na vstopno vozlišče. Preko vstopnega vozlišča na gručo in iz nje prenašamo podatke in programe, pripravljamo, spremljamo in upravljamo posle za računska vozlišča, rezerviramo računski čas na računskih vozliščih, se prijavljamo na računska vozlišča in podobno.

Posli, ki jih pripravimo na vstopnem vozlišču, se izvajajo na računskih vozliščih. Ločimo več vrst računskih vozlišč. Poleg običajnih vozlišč s procesorji, imamo zmogljivejša vozlišča z več pomnilnika in vozlišča s pospeševalniki, kot so splošno-namenske grafične procesne enote. Računska vozlišča so lahko združena v skupine ali particije (angl. partitions).

Na podatkovnih vozliščih shranjujemo podatke in programe. Podatkovna vozlišča so povezana v porazdeljeni datotečni sistem (na primer ceph). Porazdeljeni datotečni sistem vidijo vsa vstopna in računska vozlišča. Datoteke, ki jih prenesemo preko vstopnega vozlišča na gručo, so shranjene v porazdeljeni datotečni sistem.

V računalniških gručah so vozlišča postavljena v strežniške omare (angl. racks), ki močno olajšajo razporeditev in organizacijo strojne opreme. Vsaka omara vsebuje več rezin (angl. blades), pri čemer lahko vsaka rezina vsebuje več vozlišč. Ta modularna zasnova omogoča enostavno širitev in vzdrževanje sistema, saj lahko rezino zamenjamo, ne da bi motili delovanje celotne omare ali gruče.

Glavno in vstopno vozlišče (levo), računska vozlišča (sredina) in podatkovno vozlišče (desno) Omare in rezine superračunalnika Vega.

Vsa vozlišča so med seboj povezana s hitrimi omrežnimi povezavami, običajno vključujejo omrežje Ethernet in včasih tudi omrežje InfiniBand (IB) za učinkovito komunikacijo med računskimi vozlišči. Omrežje InfiniBand je zasnovano za visoko zmogljivost in nizke zakasnitve, kar ga naredi idealnega za povezovanje računskih vozlišč, kjer hitra komunikacija med vozlišči igra ključno vlogo pri porazdeljenem računanju. Ponuja visoke hitrosti prenosa podatkov (do 400 Gbps ali več) in izjemno nizke zakasnitve, saj omogoča neposreden dostop do pomnilnika prek protokola RDMA (Remote Direct Memory Access). Omrežje Ethernet je po drugi strani bolj univerzalna in cenejša rešitev. Zaradi tega je Ethernet pogosto uporabljen za povezovanje vstopnih vozlišč z računskimi vozlišči in podatkovnimi vozlišči.

Omrežje Mrežna povezava med vozlišči superračunalnika Vega.

Zgradba vozlišča

Velika večina današnjih računalnikov sledi Von Neumannovi arhitekturi. V procesorju kontrolna enota skrbi za usklajeno delovanje sistema, bere ukaze in operande iz pomnilnika in rezultate zapisuje v pomnilnik. Procesor izvaja ukaze v aritmetično logični enoti (ALE), pri čemer si pomaga z registri (na primer sledenje toku programa, shranjevanje vmesnih rezultatov). Pomnilnik hrani podatke - ukaze in operande, vhodno-izhodne enote pa prenašajo podatke med procesorjem in pomnilnikom ter zunanjim svetom.

Zgradba procesorja

Dolgo časa je bil v računalniku en sam procesor ali centralna procesna enota (angl. Central Processing Unit, CPU), ki je z leti postajal vse zmogljivejši. Z rastjo potreb po procesorski moči in večji energijski učikovitosti, so procesorje razdelili na več jeder (angl. core), ki delujejo vzporedno in si delijo skupni pomnilnik. Dodatno imajo nekatera jedra podporo za vzporedno izvajanje ukazov — niti na nivoju strojne opreme (angl. hardware threads) oziroma hkratnem večnitenju (angl. simultaneous multithreading, hyper-threading). Vozlišča v današnjih računalniških gručah imajo več rež za procesorje (angl. socket). Vsi ti procesorji s svojimi jedri delujejo vzporedno in si delijo skupni pomnilnik, ki je zaradi večje učinkovitosti porazdeljen med procesorje.

Večjedrni procesor

Na gruči Vega so na primer v računska vozlišča vgrajena po dva tesno povezana procesorja AMD Epyc 7H12, vsak od njih ima po 64 jeder, skupaj ima vozlišče 128 jeder.

Računsko vozlišče Rezina superračunalnika Vega, ki vsebuje tri računska vozlišča s po dvema centralnima procesnima enotama, pomnilnikom, hitrimi negibljivimi diski in priklopom za mrežo Infiniband.

Računski pospeševalniki

Nekatera vozlišča so dodatno opremljena z računskimi pospeševalniki. Danes na voljo imamo pestro izbiro pospeševalnikov kot na primer:

  • grafične procesne enote (angl. Graphics Processing Units, GPU),
  • programabilni logični vezji (angl. Field Programmable Gate Arrays, FPGA) in
  • kvantni računalniki (angl. Quantum Computer, QC).

Pospeševalniki

Osnovna naloga grafičnih kartic je razbremenitev procesorja pri izrisovanju grafike na zaslon. Pri izrisovanju na zaslon morajo za miljone zaslonskih točk opraviti množico neodvisnih izračunov. Izkaže se, da je njihova arhitektura primerna tudi za reševanje drugih računskih problemov. Govorimo o splošno-namenskih grafičnih procesnih enotah (angl. General Purpose Graphics Porcessing Units, GPGPU). Odlično se odrežejo vedno, ko moramo narediti množico podobnih izračunov na veliki količini podatkov z malo odvisnostmi. Na primer pri globokem učenju v umetni inteligenci in pri obdelavi videposnetkov. Arhitektura grafičnih procesnih enot se precej razlikuje od arhitekture običajnih procesorjev. Zato moramo za učinkovito izvajanje programov na grafičnih procesnih enotah obstoječe programe močno predelati.

Pospeševalniki FPGA nudijo visoko stopnjo prilagodljivosti in nizko porabo energije. Sposobni so obdelave podatkov z nizkimi zakasnitvami. Uporabnikom omogočajo prilagajanje arhitekture za točno določene probleme. Ta programabilnost je dosežena s pomočjo mreže nastavljivih logičnih celic in medsebojnih povezav, ki omogočajo implementacijo različnih digitalnih vezij. Pogosto se uporabljajo za hitro prototipiranje, in kot pospeševalniki za različne aplikacije, kot so nevronske mreže, kriptografski algoritmi, genomika in še mnogo več.

Kvantni računalniki predstavljajo povsem novo paradigmo računanja, ki temelji na kvantnih bitih (qubit). Za razliko od klasičnih računalnikov, ki uporabljajo bite, ki lahko zavzamejo vrednosti 0 ali 1, kvantni računalniki uporabljajo qubite, ki lahko zavzamejo superpozicijo obeh vrednosti hkrati. To omogoča kvantnim računalnikom reševanje določenih problemov, kot so faktorizacija velikih števil, optimizacija in simulacija kvantnih sistemov, na način, ki presega zmogljivosti klasičnih računalnikov. Kljub temu, da so kvantni računalniki še vedno v zgodnjih fazah razvoja, se obeta, da bodo v prihodnosti revolucionirali področje računalništva.

Napajanje superračunalnika

Napajanje računalniških gruč je zahtevno zaradi visokih potreb po zanesljivosti in veliki porabi energije. Zanesljivost napajanja je ključna za delovanje kritičnih sistemov, kar pogosto zahteva redundanco v napajalnih linijah in uporabo naprav za neprekinjeno napajanje. Kljub bolj učinkoviti strojni opremi skupna poraba energije narašča zaradi večjih potreb po računski moči, shranjevalnih kapacitetah in omrežni pasovni širini. Napredek v hlajenju omogoča gostejšo opremo, kar povečuje porabo – trenutno najzmogljivejši superračunalnik na svetu potrebuje za delovanje 30 MW električne moči. Najzmogljivejši slovenski superračunalnik Vega pa potrebuje približno 2 MW. Za obvladovanje teh izzivov je potrebno skrbno načrtovanje, prilagodljivo distribucijsko omrežje in redno vzdrževanje brez motenj delovanja.

Napajanje Nadzorni sistem napajanja superračunalnika Vega.

Hlajenje

Hlajenje je ključni del delovanja računalniških gruč, saj procesorske enote in pospeševalniki pri svojem delu porabijo ogromno energije, ki se večinoma pretvori v toploto. Učinkovito odvajanje te toplote je nujno, saj pregrevanje lahko vodi do zmanjšanja zmogljivosti, okvar strojne opreme ali celo popolne odpovedi sistema. Najpogostejši načini hlajenja v računalniških gručah vključujejo zračno hlajenje, kjer ventilatorji usmerjajo hladen zrak prek strežniških omar, in tekočinsko hlajenje, ki postaja vse bolj priljubljeno zaradi svoje energetske učinkovitosti. Pri tekočinskem hlajenju se uporablja hladilna tekočina (običajno glikol), ki kroži skozi cevi in odvaja toploto neposredno iz procesorjev ali drugih ključnih komponent. Nekateri superračunalniški centri uporabljajo tudi potopno hlajenje, kjer so celotne komponente potopljene v toplotno prevodno tekočino. Ti sistemi so energetsko učinkovitejši, saj omogočajo boljši prenos toplote, pogosto pa vključujejo tudi recikliranje odvečne toplote, ki se uporablja za ogrevanje stavb ali druge industrijske procese. Hlajenje računskih vozlišč v gruči VEGA je podprto z tekocinskim hladilnim sistemom, medtem ko so podatkovna vozliša zračno hlajena.

Hlajenje Napeljava za odvajanje toplote pri superračunalniku Vega.