Versions Compared

Key

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

...

Ukoliko neki od parametara nisu definirani koristiti će se defaultne vrijednost:

ParametarDefaultna vrijednost
select1
ncpus1
mpiprocs1
mem

3500 MB

walltime

4320:00:00

place

pack

Kontrola memorije pomoću cgrupa

Osim za kontrolu korištenja procesora, cgrupe postavljene su da kontroliraju i potrošnju memorije. To znači da su poslovi koje korisnik pokreće ograničene na traženu količinu memorije. Ako posao pokuša iskoristiti više memorije nego je to zatraženo u opisu posla, sustav će ubiti taj posao i u izlaznu error datoteku zapisati:

Code Block
languagebash
titlePoruka za korisnika kojemu cgrupe ubiju posao zbog nedostatka memorije
-bash: line 1: PID Killed                  /var/spool/pbs/mom_priv/jobs/JOB_ID.SC
Cgroup mem limit exceeded: oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=_JOB_ID,mems_allowed=0,oom_memcg=/pbs_jobs.service/jobid/JOB_ID,task_memcg=/pbs_jobs.service/jobid/JOB_ID,task=JOB_ID,pid=PID,uid=UID

Kod svakog posla ova poruka bit će malo drugačija, jer  sadrži podatke kao što su UID (jedinstvena brojčana oznaka korisnika), PID( brojčana oznaka procesa koji je ubijen), JOB_ID (ID posla koji dodijeljuje PBS).

Dodijeljivanje po traženom chunku

PBS omogućava traženje resursa u paketima ( chunkovima) što korisnicima daje veliku slobodu pri opisivanju poslova. Chunk je po definiciji set resursa dodijeljen poslu kao cijelina, definiran unutar select naredbe. Svi dijelovi chunka dolaze na jednom čvoru. Kod MPI poslova tipično dolazi jedan chunk po MPI- procesu.

Primjeri:
Korisnik traži dva chunka od kojih se svaki sastoji od 10 procesorskih jezgara i 10GB RAM-a, s time da korisnik nije specificirao na koliko čvorova već će sustav optimizirati dodijelu. U ovom slučaju korisnik će na korištenje dobiti 20 procesorskih jezgara i 20 GB radne memorije (moguće po 10 na dva čvora)

Code Block
languagebash
titlePrimjer traženja resursa
#PBS -l select=2:ncpus=10:mem=10GB


Korisnik traži 10 chunkova od kojih se svaki sastoji od jedne procesorske jezgre i 1 GB RAM-a, ali uvjetovano na jednom čvoru, pa će korisnik dobiti ukupno 10 procesorskih jezgara i 10 GB RAM-a.

Code Block
languagebash
titlePrimjer traženja resursa
#PBS -l select=10:ncpus=1:mem=1GB:place=pack


U gornjim primjerima poslovi su definirani kroz količinu chunkova, jezgara i memorije, ali sustav dozvoljava da se poslovima dodijeljuju resursi ako oni nisu zatraženi (default resursi):

Code Block
languagebash
titlePrimjer traženja resursa
#PBS -l ncpus=4:mem=14GB

U ovom slučaju korisnik dobiva 4 procesorske jezgre i ukupno 14GB memorije na jednom chunku.

Tip
titleMemorija

Ukoliko definirate poslove koristeći ncpus bez opcije select, poželjno je definirati i količinu memorije, jer će u suprotnom dostupna radna memorija iznositi 3500 MB (select x mem → 1 x 3500 MB).


Spremanje privremenih rezultata

...

Tip

OpenMP aplikacije zahtjevaju definiranje varijable OMP_NUM_THREADS.

PBS sustav vodi računa o tome umjesto Vas, te joj pridružuje vrijednost varijable ncpus , definirane u zaglavlju PBS skripte.

Ukoliko deefinirate definirate poslove koristeći koristeći ncpus bez opcije select, poželjno je definirati i količinu memorije, jer će u suprotnom dostupna radna memorija iznositi 3500 MB (select x mem → 1 x 3500 MB).

...