...
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:
...
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 | ||
---|---|---|
| ||
$ 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 | ||
---|---|---|
| ||
$ conda update python |
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 | ||
---|---|---|
| ||
$ mamba create -n <env_ime> python=<npr. verzija 3.9> |
Paralelno računanje
Paralelno 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 | ||
---|---|---|
| ||
$ 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.
...