Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel
borderColorlightgray
borderWidth1
titleBGColormediumgray
borderStylesolid
titleSadržaj

Table of Contents


Na ovoj stranici možete naći upute i prijedloge o korištenju pythona, pipa i conde na Supeku:

  1. Lustre i virtualna okruženja - Kako se virtualna okruženja ponašaju na datotečnom sustavu Lustre
  2. Apptainer i kontejnerizacija - Poželjan način dopremanja i korištenja virtualnih okruženja
  3. Primjeri - Primjeri stvaranja kontejnera za određene aplikacije
  4. Kako dalje? - Reference s dodatnim detaljima

Prva dva poglavlja plitku plitki su uvod u potrebu kontejnera pri korištenju python knjižnica na Supeku, dok su druga dva posvećena naputcima ( za nestrpljive ) i referencama za one koji žele ući dublje u načine na koje se to može ostvariti.

Lustre i virtualna okruženja 
Anchor
lustre
lustre

...

Lustre je paralelni raspodijeljeni datotečni sustav koji koristi Supek, namijenjen okruženju HPC u kojem veliki broj korisnika generira i koristi iznimnu količinu podataka, i čija je visoka dostupnost i brzina prijenosa bitna radi što efikasnijeg izvođenja paralelnih aplikacija.

...

Slika 2. Vrijeme izvođenja komande ls -l * stotinu puta nad

kombinacijama broja direktorija (1-1000) i datoteka (1-100) koje

sadrže 10GB podataka.

Python i virtualna okruženja

...

Iako ove aplikacije pružaju veoma jednostavno i efikasno okruženje za brzi razvoj i eksperimentiranje raznih knjižnica i njihovih kombinacija, svakom novom instalacijom broj datoteka se multiplicira i dodatno opterećuje dijeljeni sustav (učestalim čitanjem i pisanjem pri razvoju ili izvršavanju).

Ispod se nalazi primjer okruženja nastalog pip instalacijama za samo jednu verziju pythona, koje u sebi sadrži tipični data stack u kojem se nalazi (approx.):

...

veličine za tipičan python3.9 data stack.

Code Block
languagebash
linenumberstrue
marko@pc-mkvakic 15:05 ~ $ find ~/.local/lib/python3.9/site-packages /usr/local/lib/python3.9/dist-packages -type d | wc -l
4338

marko@pc-mkvakic 15:05 ~ $ find ~/.local/lib/python3.9/site-packages /usr/local/lib/python3.9/dist-packages -type f | wc -l
47355

marko@pc-mkvakic 15:06 ~ $ du -hcs ~/.local/lib/python3.9/site-packages /usr/local/lib/python3.9/dist-packages 
939M	/home/marko/.local/lib/python3.9/site-packages
747M	/usr/local/lib/python3.9/dist-packages
1.7G	total

Apptainer i kontejnerizacija
Anchor
kontejner
kontejner

...

Jedan od sve ustaljenijih načina dopremanja aplikacija na HPC klastere su apptainer i singularity; sučelja za stvaranje izoliranih razvojnih okolina zvanih kontejneri.

Kontejneri su datoteke koje u sebi sadrže aplikacije i njihove ovisnosti potrebne za izvršavanje na Unix operativnim sustavima. To čine putem direktne integracije sa samo njihovom jezgrom (koju dijele i koja je odgovorna za upravljanje hardverom), zbog čega su prilagodljivi bilo kojem računalu koje koristi isti operativni sustav.

Datoteke kontejnera obično su u formi tzv. slike (engl. image) koja se stvara na osobnom računalu, gdje se instaliraju datoteke nužne za razvoj i korištenje aplikacija. Jednom kada se pripremi odgovarajući image, doprema se na superračunalo i koristi kao bilo koja druga aplikacija.

Na Supeku je dostupna verzija v1.1.6 apptainer aplikacije. Ispod se nalaze osnove stvaranja i korištenja kontejnera, dok detaljnije upute možete naći na službenim stranicama i našem wikiju Isabelle.

Napomena: Upute pretpostavljaju da applikaciju apptainer imate već instaliranu na osobnom računalu sa sudo ovlastima.

Izgradnja kontejnera

Najbitnija komanda apptainera je komanda build kojom se kontejneri mogu izgraditi u obliku slike (samo čitanje) ili sandbox verziji  putem opcije build --sandbox (za interaktivno modificiranje).

Kontejneri se grade korištenjem recepata zvanih definition datoteka i mogu se:

  • preuzeti s online repozitorija - za brzo pripremanje već testiranih recepata
  • skrojiti ručno - za pripremanje specifičnih konfiguracija

Primjerice, ako želimo izgraditi kontejner s operativnim sustavom ubuntu v20.04 (popularnim OS-om koji pruža veliki broj već prevedenih knjižnica kroz svoj upravitelj knjižnicama apt) osnovnu radnu verziju možemo izgraditi:

Code Block
[korisnik@kompjuter] apptainer build ubuntu.sif docker://ubuntu:20.04

Iako je ovaj image ograničene koristi (jer ubuntu sam po sebi ne sadrži aplikacije za izvođenje na HPC-u), ovom komandom se mogu dohvatiti već pripremljeni recepti za koje postoje posvećeni repozitoriji.

Neki od poznatijih repozitorija su:

Primjeri 
Anchor
primjeri
primjeri

...