Skoči na vsebino

Programska oprema gruče

Programsko opremo računalniške gruče 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. Popularni operacijski sistemi so prosto dostopni Linux, plačljiva macOS in Windows. Na vozliščih gruč Arnes, NSC, Maister in Trdina je nameščen operacijski sistem 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.

Uporabniki računalniških gruč večinoma delamo z vmesno programsko opremo za nadzor poslov, zelo razširjen je Slurm (angl. Simple Linux utility for resource management). Sistem Slurm upravlja s čakalno vrsto, poslom dodeljuje zahtevane vire in nadzira izvajanje poslov. Uporabniki si s sistemom Slurm za določen čas zagotovimo dostop do virov (računskih vozlišč), zaganjamo posle in spremljamo 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. Z uporabniško programsko opremo uporabniki izvajamo želene funkcije. Na gručah lahko uporabljamo samo uporabniško programsko opremo, prilagojeno za operacijski sistem Linux. 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. Na delavnici bomo uporabljali orodje FFmpeg za obdelavo video posnetkov.

Uporabniša programska oprema je na gruče lahko nameščena na različne načine:

  • skrbnik jo namesti neposredno na vozlišča,
  • skrbnik pripravi okoljske module (angl. environmental modules),
  • skrbnik pripravi vsebnike (angl. containers), namenjene splošni rabi,
  • uporabnik si jo namesti v svojo mapo,
  • uporabnik pripravi vsebnik v svoji mapi.

Zaradi lažjega vzdrževanja sistema, skrbniki uporabniško programsko opremo nameščajo v obliki okoljskih modulov, še raje pa v obliki 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

Skrbniki računalniških gruč želijo, da uporabniki čim več uporabljamo vsebnike, saj:

  • 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),
  • preko vsebnikov skrbniki lažje nadzorujejo porabo virov.

Najbolj razširjeni so vsebniki Docker. Na gručah v omrežju SLING sta za delo z vsebniki nameščena nadzornika Apptainer oziroma Singularity, ki sta bolj prilagojena za delo v superračunalniškem okolju. V okolju vsebnika Apptainer lahko delamo z istim uporabniškim računom kot na operacijskem sistemu, imamo urejen dostop do omrežja in podatkov. Nadzornik Apptainer zna zaganjati vsebnike Docker in druge.