Skoči na vsebino

Programska oprema superračunalnika

Programsko opremo superračunalnika sestavljajo:

  • operacijski sistem,
  • vmesna programska oprema in
  • uporabniška programska oprema (aplikacije).

Programska oprema gruče

Operacijski sistem

Operacijski sistem je most med uporabniško programsko opremo in strojno opremo računalnika. Je programska oprema, ki izvaja osnovna opravila, kot so: upravljanje pomnilnika, upravljanje procesorjev, nadzor naprav, upravljanje datotečnega sistema, izvajanje varnostnih funkcij, nadzor delovanja sistema, spremljanje porabe sredstev, detekcija napak. Na superračunalniških sistemih se običajno uporabljajo razne distribucije operacijskega sistema Linux. Na vozliščih slovenskih gruč Arnes, NSC, Maister in Trdina je nameščena distribucija AlmaLinux OS, na vozliščih gruče Vega pa Red Hat Enterprise Linux.

Vmesna programska oprema

Vmesna programska oprema (angl. middleware) je programska oprema, ki v gručah povezuje operacijski sistem in uporabniške aplikacije. V računalniški gruči skrbi za usklajeno delovanje množice vozlišč, omogoča centralizirano upravljanje vozlišč, skrbi za preverjanje pristnosti uporabnikov, nadzira izvajanje poslov (uporabniških aplikacij) na vozliščih in podobno.

Gručo običajno hkrati uporablja večje število uporabnikov, ki si morajo med sabo deliti računske vire (procesorska jedra, pospeševalnike, pomnilnik). Da je gruča čim bolj izkoriščena in hkrati prijazna do uporabnika, se poslužujemo vmesne programske opreme za za nadzor in razporejanje poslov. Zelo razširjen je Slurm (angl. Simple Linux utility for resource management), poznamo pa tudi druge sisteme, na primer PBS in Flux. Razporejevalnik poslov upravlja s čakalno vrsto uporabniških poslov, poslom dodeljuje zahtevane vire in nadzira njihovo izvajanje.

Uporabniška programska oprema

Uporabniška programska oprema je ključna programska oprema, zaradi katere uporabljamo računalnike, tako običajne kot računalniške gruče. Nekaj primerov uporabniške programske opreme, ki se uporablja na gručah: Gromacs za simulacije molekulske dinamike, OpenFOAM za simulacije toka tekočin, programska opreme Athena za analizo trkov na trkalniku LHC v CERNU (ATLAS), TensorFlow za učenje globokih modelov v umetni inteligenci.

Uporabniško programsko opremo je na računsko gručo mogoče namestiti na več načinov:

  • Namestitev s strani skrbnika: neposredno na vozlišča, kot okoljski moduli ali kot vsebniki za splošno uporabo.
  • Namestitev s strani uporabnika: v uporabnikovi mapi ali z ustvarjanjem lastnega vsebnika.

Zaradi lažjega vzdrževanja sistema skrbniki dajejo prednost nameščanju programske opreme v obliki okoljskih modulov ali vsebnikov.

Okoljski moduli

Ob prijavi na gručo, se znajdemo v ukazni vrstici s standarnimi nastavitvami okolja. To okolje lahko za lažje delo dopolnimo, najenostavneje z okoljskimi moduli. Okoljski moduli so orodje za spreminjanje nastavitev ukazne vrstice in uporabnikom omogočajo enostavno spreminjanje okolja med delom.

Vsaka datoteka okoljskega modula vsebuje informacije, potrebne za nastavitev ukazne vrstice za izbrano programsko opremo. Ko naložimo okoljski modul, spremenljivke okolja prilagodimo za izvajanje izbrane uporabniške programske opreme. Ena taka spremenljivka je PATH, v kateri so navedene mape kjer operacijski sistem išče programe.

Okoljske module namešča in posodablja skrbnik gruče. S tem, ko za programsko opremo pripravi okoljske module, si olajša vzdrževanje, se izogne težavam pri nameščanju zaradi uporabe različnih verzij knjižnic in podobno. Pripravljene module lahko uporabnik naložiti in odstrani med delom.

Virtualizacija in vsebniki

Kot smo videli, imamo na vozliščih množico procesorskih jeder, ki lahko hkrati izvajajo množico uporabniških aplikacij. Pri neposredni namestivi uporabniških aplikacij na operacijski sistem se lahko zatakne, največkrat zaradi neustreznih verzij knjižnic.

Virtualizacija vozlišč je elegantna rešitev, ki zagotavlja sobivanje najrazličnejših uporabniških aplikacij in zato lažje upravljanje s sistemom. Zmogljivost sistema je zaradi virtualizacije nekoliko manjša, seveda na račun večje robustnosti in enostavnosti vzdrževanja sistema. Ločimo virtualizacijo strojne opreme in virtualizacijo operacijskega sistema. V prvem primeru govorimo o virtualnih strojih (angl. virtual machines), v drugem o vsebnikih (angl. containers).

Za superračunalniške gruče je bolj primerna virtualizacija z vsebniki. Vsebniki ne vključujejo operacijskega sistema, zato so manjši in nadzornik lažje preklaplja med njimi. Nadzornik vsebnikov skrbi, da so vsebniki med seboj izolirani, vsakemu vsebniku pa omogoča dostop do skupnega operacijskega sistema in osnovnih knjižnic. V vsakem vsebniku nato ločeno namestimo samo potrebno uporabniško programsko opremo in dodatne knjižnice. Na spodnji sliki je predstavljena virtualizacija vozlišča z vsebniki.

Virtualizacija vozlišča z vsebniki

Prednosti vsebnikov so predvsem naslednje: - vsebnike lahko pripravimo sami (v vsebnikih imamo pravico za nameščanje programske opreme), - vsebniki nam ponujajo veliko možnosti prilagajanja operacijskega sistema, orodij in uporabniške programske opreme, - vsebniki zagotavljajo ponovljivost izvajanja poslov (enaki rezultati po nadgradnji operacijskega sistema),

Najbolj razširjeni so vsebniki Docker, vendar nadzornik Docker ni preveč primeren za uporabo na superračunalnikih. Na gručah v omrežju SLING sta zato za delo z vsebniki nameščena nadzornika Apptainer oziroma Singularity, ki sta bolj prilagojena za delo v superračunalniškem okolju.