...
Table of Contents | ||
---|---|---|
|
Uvod
Za raspoređivanje i upravljanje poslovima na računalnom klasteru Supek, koristi se PBS Pro (Portable Batch System Professional) koji obavlja raspoređivanje poslova unutar klastera. Njegova primarna zadaća je raspodjela računalnih zadataka, tj. paketnih poslova, među dostupnim računalnim resursima.
...
Note | ||
---|---|---|
| ||
GPU-ovi su dostupni samo na GPU pristupnom i radnim poslužiteljima, a njihovo korištenje je ograničeno na gpu i gpu-testredove poslova. Više o redovima poslova na pročitajte na stranici Redovi poslova. |
Izvođenje poslova
Korisničke aplikacije (u nastavku poslovi) koji se pokreću pomoću sustava PBS moraju biti opisani startnom shell skritpom (sh, bash, zsh...). Unutar startne skripte iznad normalnih naredbi, navode se PBS parametri. Te parametre moguće je navesti i prilikom podnošenja posla.
...
Code Block |
---|
qcat jobID qcat -e jobID qtail jobID qtail -e jobID |
Podnošenje poslova
Postoji nekoliko načina na koji se poslovi mogu podnijeti:
...
Tip | ||
---|---|---|
| ||
Ovaj način poželjan je naspram višetrukog podnošenja (npr. for petljom) jer:
Varijable okoliša koje PBS definira pri njihovom izvršavanju su:
|
Opis posla
Za opisivanje poslova koristi se jezik sustava PBS, dok datoteka za opis posla je standardna shell skripta. U zaglavlju svake skripte navode se PBS parametri koji detaljno opisuju posao nakon kojih slijede naredbe za izvršavanje željene aplikacije.
...
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/bash #PBS -P testni_primjer #PBS -q cpu #PBS -e /home/moj_direktorij #PBS -l select=2:ncpus=10 module load gcc/12.1.0 gcc --version |
Osnovni PBS parametri
Opcija | Argument opcije | Značenje opcije |
-N | ime | Postavljanje imena posla |
-q | destinacija | Specificiranje reda posla i/ili servera |
-l | lista_resursa | Traženje resursa potrebnih za izvođenje posla |
-M | lista_korisnika | Postavljanje liste primatelja mail-a |
-m | opcije_maila | Postavljanje vrste notifikacije mail-a |
-o | putanja/do/željenog/direktorija | Postavljanje imena/putanje u koje se sprema standardni izlaz |
-e | putanja/do/željenog/direktorija | Postavljanje imena/putanje u koje se sprema standardna greška |
-j | oe | Povezivanje standardnog izlaza i greške u istu datoteku |
-Wgroup_list | šifra_projekta | Odabir projekta pod kojim će se izvoditi posao |
...
-l select=3:ncpus=2 | Traženje 3 komada(chunk-a) čvora po 2 jezgre (ukupno 6 jezgri) |
-l select=1:ncpus=10:mem=20GB | Traženje 1 komada(chunka-a) čvora sa 10 jezgri i 20GB radne memorije |
-l ngpus=2 | Traženje 2 gpu-a |
PBS varijable okoline
Ime | Opis |
---|---|
PBS_JOBID | Identifikator posla koji daje PBS kada se posao preda. Stvoreno nakon izvršenja naredbe qsub. |
PBS_JOBNAME | Naziv posla koji je dao korisnik. Zadani naziv je naziv podnešene skripte. |
PBS_NODEFILE | Popis radnih čvorova, odnosno procesorskih jezgri na kojima se izvršava posao |
PBS_O_WORKDIR | Radni direktorij u kojem je podnesen posao, odnosno u kojem je pozvana naredba qsub. |
OMP_NUM_THREADS | OpenMP varijabla koju PBS izvozi u okolinu, a koja je jednaka vrijednosti opcije ncpus iz zaglavlja PBS skripte |
NCPUS | Broj zatraženih jezgara. Odgovara vrijednosti iz opcije ncpus iz zaglavlja PBS skripte. |
TMPDIR | Putanja do scratch direktorija. |
...
Tip | ||
---|---|---|
| ||
Dok je u PBS pro određena putanja za output i error datoteke u direktoriju u kojem se izvode, input i output datoteke samog programa se zadano učitavaju/spremaju u $HOME direktorij. PBS Pro nema opciju određivanja izvođenja posla u trenutnom direktoriju u kojem se nalazimo stoga je potrebno ručno promijeniti direktorij. Poslije zaglavlja potrebno je napisati: cd $PBS_O_WORKDIR Prebacit će izvođenje posla u direktorij u kojem je pokrenuta skripta. |
Paralelni poslovi
OpenMP paralelizacija
Ukoliko Vaša aplikacija koristi paralelizaciju isključivo na razini OpenMP dretvi (engl. threads) i ne može se širiti van jednog radnog čvora (odnosno radi s dijeljenom memorijom), posao možete pozvati na način kako je prikazano u primjeru xTB aplikacije niže.
...
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/bash #PBS -q cpu #PBS -l ncpus=8 cd ${PBS_O_WORKDIR} xtb C2H4BrCl.xyz --chrg 0 --uhf 0 --opt vtight |
MPI paralelizacija
Ukoliko Vaša aplikacija koristi paralelizaciju isključivo na razini MPI procesa i može se širiti van jednog radnog čvora (odnosno radi s raspodijeljenom memorijom), posao možete pozvati na način kako je prikazano u primjeru Quantum ESPRESSO aplikacije niže.
...
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/bash #PBS -q cpu #PBS -l select=16 cd ${PBS_O_WORKDIR} mpiexec pw.x -i calcite.in |
MPI + OpenMP (hibridna) paralelizacija
Ukoliko se Vaša aplikacije može paralelizirati hibridno, odnosno dijeliti svoje MPI procese u OpenMP threadove, možete posao pozvati na način kako je prikazano u primjeru GROMACS aplikacije niže:
...
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/bash #PBS -q cpu #PBS -l select=8:ncpus=4 cd ${PBS_O_WORKDIR} mpiexec -d ${OMP_NUM_THREADS} --cpu-bind depth gmx mdrun -v -deffnm md |
cray-pals
Za izvođenje aplikacija koje koriste paralelizaciju MPI (ili hibridno MPI+OMP) potrebno je podignuti modul cray-pals
prije pozivanja naredbe mpiexec
, čime se osigurava ispravna integracija aplikacije sa sustavom za podnošenje poslova PBS Pro i Crayevom inačicom aplikacije MPI mpiexec
baziranoj na implementaciji MPICH.
...
Note | ||
---|---|---|
| ||
Znanstvene aplikacije koje su dostupne na Supeku putem modulefiles alata u sebi već pozivaju ovaj modul, stoga ga nije potrebno opet podizati. |
Praćenje i upravljanje izvođenja posla
Praćenje posla
Za prikaz stanja poslova koristi se PBS-ova naredba qstat. Osnovna sintaksa naredbe je:
...
Code Block | ||
---|---|---|
| ||
$ tracejob 2670 Job: 2670.x3000c0s25b0n0.hsn.hpc.srce.hr 03/30/2023 11:23:24 L Considering job to run 03/30/2023 11:23:24 S Job Queued at request of mhrzenja@x3000c0s25b0n0.hsn.hpc.srce.hr, owner = mhrzenja@x3000c0s25b0n0.hsn.hpc.srce.hr, job name = mapping, queue = cpu 03/30/2023 11:23:24 S Job Run at request of Scheduler@x3000c0s25b0n0.hsn.hpc.srce.hr on exec_vnode (x8000c0s0b0n0:ncpus=40:mem=104857600kb) 03/30/2023 11:23:24 L Job run 03/30/2023 11:23:24 S enqueuing into cpu, state Q hop 1 03/30/2023 11:23:56 S Holds u set at request of mhrzenja@x3000c0s25b0n0.hsn.hpc.srce.hr 03/30/2023 11:24:22 S Holds u released at request of mhrzenja@x3000c0s25b0n0.hsn.hpc.srce.hr |
Upravljanje poslovima
Poslom se može upravljati i nakon pokretanja.
...
Code Block | ||
---|---|---|
| ||
qdel -W force -x <ID_posla> |
Odgađanje izvođenja
PBS pruža mogućnost izvođenja poslova u ovisnosti o drugima, što je korisno u slučajevima poput:
...
Note |
---|
Posao s direktivom |
Primjeri
Ako želimo da posao1
započne nakon uspješnog završetka posao0
:
...