Versions Compared

Key

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

...

Na klasteru Isabella dostupne su systemwide verzije pythona python-a 2.7.5 i 3.6.8. Ukoliko je potrebna druga verzija pythona, preporuča se korištenje python virtualnih okolina.

Virtualna okolina je izolirana, funkcionalna verzija pythona python-a koja održava svoje datoteke, direktorije i putanje sa specifičnim verzijama knjižnica.

...

Iako postoje mnogi alati za upravljanje virtualnim okolinama (conda, venv, virtualenv, pyenv, pyenv-virtualenv...) preporučamo korištenje conde/mambe kao alat za stvaranje i upravljanje virtualnim okruženjimaokolinama.

Na klasteru su dostupne miniforge3 i mambaforge conda distribucije:

DistribucijaAktivacijaPackage ManagerVerzija
Miniforgesource /apps/miniforge3/bin/activateconda4.13.0
pip22.1.2
Mambaforgesource /apps/mambaforge/mamba/bin/activatemamba0.27.0
conda22.9.0
pip22.1.2



Conda

Conda je alat otvorenog koda koji služi za upravljanje paketima kao i sustav za stvaranje i upravljanje virtualnim okruženjimaokolinama. Conda je stvorena za Python programe, ali može pakirati i distribuirati software za bilo koji jezik (C libraries, R paketi, Java paketi...).  

Conda u funkciji package manager-a pomaže korisniku u traženju i instaliranju različitih paketa. Ukoliko postoji paket/program koji zahtjeva drugačiju verziju Python-a od trenutno instalirane verzije na operativnom sistemu, Conda omogućava kreiranje odvojenog okruženja odvojene okoline sa drugačijom verzijom Python-a

Conda

...

virtualna okolina

Iako Python omogućava stvaranje i upravljanje virtualnim okruženjimaokolinama, Conda virtualno okruženje virtualna okolina ima neke prednosti. Glavni i preporučeni alat za upravljanje paketima u Python virtualnom okruženju virtualnoj okolini je pip. Uporaba pip sustava je ograničena samo na Python pakete. Stvaranje virtualnog okruženja virtualne okoline u Conda sustavu omogućava instalaciju svih paketa pa tako i korištenje pip alata kao alternativa Conda package manager-u.

Stvaranje

...

virtualne okoline

Prije kreiranja virtualnog okruženjavirtualne okoline, potrebno je učitati conda-miniforge3 naredbom:

Code Block
$ source /apps/miniforge3/bin/activate


Virtualno okuženje Virtualna okolina stvara se naredbom conda create. Prilikom pozivanja naredbe potrebno je dodijeliti ime novog virtualnog okruženja virtualne okoline zastavicom "-n" ili "-p" (instalacija u određeni direktorij) te verziju Python-a koja će se instalirati "python=x.y".

...

Ukoliko korisnik želi prilikom stvaranja novog virtualnog okruženja nove virtualne okoline instalirati i određene pakete, moguće ih je navesti prilikom izvođenja naredbe create. Instalacija paketa moguća je i nakon stvaranja virtualnog okruženjavirtualne okoline.

Code Block
languagebash
$ conda create -n <env_ime> python=3.8 <paket_1> <paket_2> <paket_3> ...

Pregled kreiranih virtualnih okruženja okolina moguće je vidjeti naredbom:

Code Block
$ conda env list


Aktivacija virtualnog okruženja virtualne okoline izvodi se naredbama:

Code Block
$ conda activate <env_ime>

Command prompt pokazati će naziv aktivnog virtualnog okruženja:virtualne okoline

Code Block
(<env_ime>) [<user>@teran ~]$ 


Deaktivacija virtualnog okruženja virtualne okoline:

Code Block
$ conda deactivate

Uklanjanje okruženja okoline:

Code Block
$ conda env remove -n <env_ime>

...

Glavni/default kanal Anaconda Inc.-a ne nalazi se na početnom popisu zbog aktualnih uvjeta korištenja tj. zbog mogućnosti kršenja istih. Anaconda je 2020 godine promjenila uvjete korištenja. U trenutku pisanja ovog teksta, ukoliko se Anaconda distribucija koristi u komercijalne svrhe, licenca za korištenje se plaća.


Naredbe za pregled, dodavanje i brisanje kanala:

...

Preporučeni način instalacije paketa/aplikacija u virtualnom okruženju virtualnoj okolini je korištenjem conda upraviteljem tj. conda install naredbom.

...

Moguće je navesti više od jednog paketa koje će Conda instalirati, a naredbu je moguće detaljno modificirati nekom od dostupnih zastavica.

Ime virtualnog okruženja virtualne okoline u kojem kojoj će se instalirati paket definira se zastavicom -n ili --name. Ako nije navedeno ime okruženjaokolinea, paket će se instalirati u trenutno aktivnom virtualnom okruženjuaktivnoj virtualnoj okolini.

Code Block
$ conda install <paket_ime_1> <paket_ime_2> -n <env_ime>

...

Code Block
titleAžuriranje Python-a
$ conda update python

Paralelno računanje


Conda virtualne okoline na klasteru

Na klasteru postoje unaprijed pripremljene conda virtualne okoline. Pripremljene conda virtualne okoline učitavaju se sa naredbom module load <virtualna-okolina>. Ukoliko unaprijed pripremljena virtualna okolina ne sadrži sve potrebne pakete, moguće ju je lokalno nadograditi sa naredbama:

Code Block
$module load <virtualna okolina>
$conda create --prefix $LOCALPKGS python=<Verzija pythona virtualne okoline> 
$conda install --prefix $LOCALPKGS <potrebni-python-pkg>
ili
$pip install --prefix $LOCALPKGS <potrebni-python-pkg>



Mamba

Mamba je reimplementacija conde u C++-u i kompatibilna je sa conda-om. Mamba je puno brža u slučaju rješavanja dependecy-a/ovisnosti paketa koje doprema. Virtualne okoline stvorene mambom mogu se aktivirati i nadograđivati conda-om i obrnuto. Korištenje je jednako kao i za condu sa razlikom u conda/mamba riječi prilikom pisanja naredbe.

Code Block
titlePrimjer stvaranja okoline sa mambom
$ mamba create -n <env_ime> python=<npr. verzija 3.9>



Paralelno računanje - mpi4py

Mpi4py paket omogućava paralelno izvođenje programa na više od jednog čvoraParalelno računanje unutar virtualne okoline moguće je ukoliko je instaliran mpi4py paket. U vrijeme pisanja ovog teksta, mpi4py paket za python verziju 3.10 nije dostupan na conda-forge kanalu, ali ga je moguće instalirati pomoću pip paket upravitelja.

Instalacija mpi4py paketa unutar

...

virtualne okoline


Code Block
titleConda Install
$ conda install mpi4py

...

Primjer se sastoji od dvije skripte. Skriptom testrun.sge definirati će se virtualna okolina, potrebni moduli (ukoliko su potrebni), broj jezgri za paralelizaciju kao i skripta koja će se paralelizirati (test.py). Sa naredbom mpirun pokrenuti će se isti broj instanci skripte test.py kao i broj zadanih jezgri za proračun (4). Za ispravno pokretanje ove skripte potrebna je instalacija numpy paketa i mpi4py u virtualnom okruženjuvirtualnoj okolini.

Kada se program pokreće sa MPI-om, svi procesi su grupirani u komunikator (MPI.COMM_WORLD). Varijable komunikatora ne mjenjaju se nakon što je komunikator kreiran. Veličina komunikatora tj. zbroj svih procesa nosi naziv size. Svaki od procesa unutar komunikatora ima jedinstveni broj za identifikaciju - rank.

...