Skoči na vsebino

Kaj je superračunalnik?

Superračunalnik je računalniški sistem z izjemno računsko močjo, ki močno presega zmogljivosti običajnega osebnega računalnika. Nekoč so bili superračunalniki večinoma monolitne naprave, danes pa jih najpogosteje srečamo v obliki gruče (ang. cluster) računalniških vozlišč. Vsako vozlišče vsebuje večjedrne procesorje (ang. CPU) in pogosto tudi grafične procesne enote (ang. GPU) za pospeševanje računanja. Vsa vozlišča so povezana prek zelo hitrega omrežja (npr. Infiniband), kar omogoča nizko zakasnitev in visoko prepustnost pri medsebojni komunikaciji.

Nikar ne pozabimo - izjemna računska moč izvira iz zelo velikega števila procesnih enot, ki lahko vzporedno izvajajo veliko število računskih nalog. Nikakor pa ne gre za to, da bi imeli superračunalniki bistveno hitrejša procesorska jedra, kot jih lahko vgradimo recimo osebni računalnik! Zato moramo pri uporabi superračunalnika nujno upoštevati zahtevo, da mora biti naš računski problem takšne narave, da ga je možno razbiti na veliko število manjših nalog, ki lahko tečejo na superračunalniku vzporedno!

Fizična izvedba superračunalnika

Superračunalniki so fizično gostovani v podatkovnih centrih (angl. datacenter), zelo podobnih tistim, ki jih uporabljajo ponudniki oblačnih storitev. Osnovni gradniki so računska vozlišča (ang. compute nodes), kjer vsako vozlišče vsebuje več procesorjev (CPU), pri čemer ima lahko vsak procesor več jeder in dostop do skupnega (deljenega, angl. shared) pomnilnika. Vsa vozlišča so povezana z zelo hitrim omrežjem (npr. Infiniband), ki zagotavlja nizko zakasnitev in visoko prepustnost podatkov. Poleg računskih vozlišč obstajajo tudi posebna podatkovna vozlišča (ang. storage nodes), na katerih je shranjena večina podatkov. V bistvu ima vsako vozlišče podobno zasnovo kot zmogljiva namizna delovna postaja (ang. workstation), le da so procesorji in pomnilnik bistveno bolj zmogljivi in številčni. Spodnja slika prikazuje shematično zgradbo modernega podatkovnega centra:

CHATGPT datacenter

Slika prikazuje shematično zgradbo superračunalniškega podatkovnega centra z več vozlišči, kjer vsako vozlišče vsebuje več procesorjev in skupni pomnilnik. Vsa vozlišča so povezana s hitro mrežno povezavo z nizko zakasnitvijo ter preko nje tudi na skupni diskovni podsistem oziroma podatkovna vozlišča.

Pomembne lastnosti superračunalnikov

  • Vzporedna obdelava podatkov: Superračunalniki lahko hkrati obdelujejo množico podatkov, kar skrajša čas izvedbe zahtevnih izračunov.
  • Visoko zmogljivi viri: Vozlišča imajo lahko tudi 32, 64 ali večjedrne procesorje, več sto gigabajtov sistemskega pomnilnika (ang. RAM) in pogosto tudi eno ali več grafičnih procesnih enot (ang. GPU).
  • Napredna omrežna infrastruktura: Namesto klasičnega 1 ali 10 Gbit/s Ethernet vmesnika uporabljajo specializirane visoko hitrostne povezave, kot sta Infiniband ali Omni-Path, z zelo nizko zakasnitvijo.
  • Programska oprema za razporejanje nalog (npr. Slurm): Uporabniki naloge oddajo v čakalno vrsto, sistem pa jih izvede, ko so na voljo ustrezni viri (CPU, grafične procesne enote, pomnilnik).

Arhitektura superračunalnika

Vozlišča (ang. nodes)

Superračunalnik je sestavljen iz množice povezanih računalnikov, imenovanih vozlišča. Vsako vozlišče navadno vsebuje:

  • Enega ali več večjedrnih procesorjev (CPU), npr. AMD ali Intel.
  • Velike količine delovnega pomnilnika (RAM), pogosto nad 256 GB ali celo 512 GB.
  • Ene ali več grafičnih procesnih enot (ang. GPU) za pospeševanje računanja pri strojnem učenju ali zahtevnih numeričnih simulacijah.
  • Lokalni disk ali bliskovni pomnilnik (SSD).
  • Omrežno kartico (pogosto Infiniband) z visoko prepustnostjo in nizko zakasnitvijo za komunikacijo z drugimi vozlišči.

Vrste vozlišč

  • Glavno vozlišče za upravljanje (admin node): Namenjeno sistemski administraciji, običajni uporabniški procesi se tu ne izvajajo.
  • Vstopno (login) vozlišče: Edino vozlišče, ki je neposredno dostopno prek interneta. Uporabniki se nanj prijavijo (SSH), pripravljajo kodo ter naloge, ki jih nato posredujejo v čakalno vrsto. Na tem vozlišču ni dovoljeno izvajati zahtevnih računskih nalog.
  • Računska vozlišča (compute nodes): Namenjena izvajanju dejanskih računskih opravil. Nimajo neposrednega dostopa do interneta, saj se vanje dostopa prek vstopnega vozlišča.
  • Podatkovna vozlišča (storage nodes): Zasnovana za hiter dostop do podatkov. Uporabnik teh vozlišč največkrat ne vidi neposredno, saj so dostopna prek skupnega ali vzporednega datotečnega sistema.

Omrežna infrastruktura

  • Hitro notranje omrežje (npr. Infiniband, Omni-Path): Omogoča visoko hitrost in nizko zakasnitev med vozlišči in podatkovnimi sistemi.
  • Prednja (Ethernet) mreža: Vzpostavlja povezavo z zunanjim svetom, pri čemer je največkrat omejena na vstopno vozlišče.

Tipični postopki uporabe superračunalnika

  1. Pridobitev uporabniškega računa: Zahteva se pri ustrezni ustanovi (univerza, inštitut).
  2. Povezava na vstopno vozlišče: Poteka prek SSH (npr. z orodjem PuTTY, OpenSSH).
  3. Prenos in priprava podatkov: Uporabnik naloži svojo kodo, podatkovne množice ipd. na vstopno vozlišče in jih umesti v domači ali projektni direktorij.
  4. Priprava naloge: Zapiše se skripta (npr. Slurm skripta), ki določa:
  5. Koliko jeder (CPU) je potrebnih.
  6. Število in vrsto grafičnih procesnih enot (ang. GPU).
  7. Količino pomnilnika.
  8. Čas izvajanja.
  9. Modul(e) in knjižnice, ki se naložijo (npr. Python, PyTorch, TensorFlow).
  10. Oddaja naloge v čakalno vrsto: S pomočjo ukazov sbatch ali srun nalogo predamo sistemu Slurm, ki upravlja čakalne vrste.
  11. Spremljanje izvajanja: Z ukazi, kot sta squeue (prikaz čakalne vrste) in sinfo (stanje gruč), lahko spremljamo potek izvajanja.
  12. Prevzem rezultatov: Po zaključenem izvajanju se rezultati shranijo v izhodne datoteke, ki jih lahko nato prenesemo na svoj lokalni računalnik.

Razlika med navadnim računalnikom in superračunalnikom

Lastnost Osebni računalnik Superračunalnik
Strojna oprema 1 procesor (CPU) z 2-8 jedri, do ~64 GB RAM, 1 grafična procesna enota (ang. GPU) Več procesorjev (npr. 32, 64, 128 jeder) na vozlišče, 256+ GB RAM, več grafičnih procesnih enot (ang. GPU)
Mrežna povezava Standardna Ethernet (1–10 Gbit/s) Specializirano visoko hitrostno omrežje (npr. Infiniband) z nizko zakasnitvijo
Način uporabe Interaktivno delo, programi se poganjajo lokalno Naloge se oddajajo v čakalno vrsto, izvajanje poteka na računskih vozliščih
Operacijski sistemi Windows, Linux, macOS Večinoma Linux, prilagojen za visoko zmogljivo računalništvo (HPC)
Razporejanje dela Uporabnik ročno zažene program Sistem (npr. Slurm) inteligentno razporeja naloge in vire
Ciljna uporaba Vsakodnevna uporaba, pisarniško delo, igre, manjši projekti Znanstveno računanje, simulacije, velika analiza podatkov, AI/ML

Najpomembnejša razlika je v vzporednosti: v superračunalniku lahko hkrati uporabljamo več sto ali celo tisoč procesorskih jeder ter grafičnih procesnih enot (ang. GPU), kar drastično skrajša čas izvajanja zahtevnih nalog.


Razlika med superračunalnikom in ponudniki storitev v oblaku

Superračunalniki in storitve v oblaku (AWS, Google Cloud, Azure itd.) predstavljajo dva različna pristopa k zagotavljanju visokozmogljivih računalniških virov. Ključna razlika med njima je način dodeljevanja virov, kar vpliva na učinkovitost, dostopnost in prilagodljivost uporabe. Spodnja shema prikazuje, kako so računski viri organizirani v podatkovnem centru, kadar se uporabljajo za storitve v oblaku.

CHATGPT datacenter

Na sliki je prikazano, da pri oblačnih storitvah več uporabnikov (A, B in C) hkrati uporablja manjše dele posameznih vozlišč. Upravljavci podatkovnih centrov to omogočajo z virtualizacijo, pri čemer uporabljajo tehnologije, kot so VMWare ali Xen. Uporabniki plačujejo glede na porabo virov in čas uporabe. Takšen model zagotavlja izjemno elastičnost, saj omogoča hitro prilagajanje – uporabniki lahko po potrebi nemudoma pridobijo več procesorskih jeder ali dodatni pomnilnik.

Na spodnjih treh slikah pa je prikazano, kako poteka dodelitev uporabnikom A, B in C, če je podatkovni center uporabljan kot superračunalnik.

Na začetku uporablja velik del kapacitet uporabnik A. CHATGPT datacenter

Potem uporablja velik del kapacitet uporabnik B. CHATGPT datacenter

Potem pa pride na vrsto uporabnik C, ki uporablja celoten superračunalnik, in je moral počakati da so se naloge uporabnikov A in B zaključile. CHATGPT datacenter

V spodnji preglednici pa imamo povzete razlike med ponudniki storitev v oblaku in superračunalniško gručo.

Lastnost Ponudnik oblačnih storitev Superračunalnik
Dostop in plačilo Stroški glede na rabo (pay-as-you-go); hiter začetek Pogosto subvencioniran ali brezplačen za akademske uporabnike; potreben postopek odobritve
Način upravljanja virov Avtomatsko prilagajanje prek virtualiziranega okolja Viri so dodeljeni prek čakalnih vrst in so fizično omejeni z razpoložljivostjo vozlišč
Mrežna infrastruktura Visoka hitrost, a splošno namenjena in večnamenska Specializirana (Infiniband) z nizko zakasnitvijo in visoko prepustnostjo
Uporabniški vmesnik Spletni portali, API-ji, orodja za orkestracijo SSH in HPC okolje (Slurm, moduli), pogosto zahteva več ročnih nastavitev
Ciljna uporaba Raznolike storitve (gostovanje, podatkovne baze, AI-sistemi) Znanstvene simulacije, masivne analize podatkov, napredno strojno učenje
Stroški pri intenzivni uporabi Obsežne in dolgotrajne naloge lahko postanejo zelo drage Znanstvena skupnost običajno krije stroške iz državnih/evropskih virov

Izbira med ponudnikom v oblaku in superračunalnikom je odvisna od dostopnosti in specifičnih potreb. Superračunalniki so pogosto na voljo za raziskovalne namene, financirane s strani države ali EU, ponujajo pa specializirane visoko hitrostne povezave in okolje, ki je prilagojeno zahtevnim računalniškim izzivom.


Primer uporabe superračunalnika v praksi

  • Analiza obsežnih podatkov: Na primer za raziskave s področja genomike, podnebnih modelov ali fizikalnih simulacij.
  • Strojno učenje in globoko učenje (ang. deep learning): Zmogljivost grafičnih procesnih enot (ang. GPU) pospeši učenje nevronskih mrež pri računalniškem vidu in obdelavi jezika.
  • Inženirske in fizikalne simulacije: Uporablja se v letalstvu, gradbeništvu, kemiji, računalniški dinamiki tekočin (ang. CFD) in drugih zahtevnih znanstvenih panogah.
  • Razvoj novih materialov: Molekularna dinamika, kemijske simulacije in interakcije makromolekul zahtevajo ogromno virov CPU in/ali grafičnih procesnih enot (ang. GPU).

Povzetek

Superračunalnik je visokozmogljiva gruča (ang. cluster) računalniških vozlišč, optimizirana za masivno vzporedno izvajanje. Uporabniki se prijavljajo na vstopno vozlišče, kjer pripravijo naloge ter jih posredujejo v čakalno vrsto. Naloge se nato izvajajo na računskih vozliščih glede na razpoložljive vire. V primerjavi z osebnimi računalniki superračunalnik močno skrajša čas izvajanja najzahtevnejših znanstvenih, raziskovalnih in inženirskih opravil. Razlika od oblačnih ponudnikov (ang. cloud providers) se kaže predvsem pri razporejanju virov znotraj sistema.