Versions Compared

Key

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

...

titleSadržaj

Table of Contents
outlinetrue

...


Uvod

Za raspoređivanje i upravljanje poslovima na računalnom klasteru Isabella koristi se SGE (engl. Sun Son of Grid Engine) je , klasterski sustav za upravljanje poslovima (engl. job management system, JMS). Više informacija o sustavu SGE možete pronaći u izvještaju http://www.srce.hr/crogrid/clusters.pdf te SGE-jevim službenim stranicama http://gridengine.sunsource.net/. U ovom dokumentu opisano je opisano korištenje SGE verzije 68.

Izvođenje poslova

Korisničke aplikacije (u nastavku poslovi) koji se izvode pokreću pomoću sustava SGE moraju biti opisane opisani startnom shell skriptom (npr. sh, bash). Unutar startne skripte, pored normalnih naredbi navode se SGE parametri za SGE. Također je moguće koristiti SGE varijable okoline opisane u odjeljku SGE varijable okolineIste parametre moguće je navesti i izvan startne skripte, prilikom podnošenja posla.

Pokretanje poslova se ostvaruje naredbom qsub:

Code Block
languagetextbash
qsub <SGE_parametri> <ime_startne_skripte>

...


Info

SGE također sadrži grafičko sučelje (engl. graphical user interface, GUI) za pristup svim funkcionalnostima sustava. GUI se pokreće naredbom qmon. Korištenje GUI-ja neće biti opisivano jer unutar

...

njega postoje upute za uporabu (tipke Help).

SGE okolina i parametri

Prilikom izvođenja poslova potrebno je definirati kojem projektu poslovi pripadaju. Na taj način se prati trošenje resursa od strane pojedinih projekata i omogućava pravedno raspoređivanje (engl. fair share) poslova među njima.

SGE za radni direktorij uzima $HOME. Ukoliko se želi promijeniti direktorij potrebno je to napraviti u skripti. Ako se eksplicitno ne navedu standardni izlaz i greška, bit će spremljeni u datoteke: <radni_direktorij>/<ime_skripte>.o<id_posla> i <radni_direktorij>/<ime_skripte>.e<id_posla>.

SGE parametri omogućavaju korisniku da SGE-u detaljnije opiše svoj posao. Oni se unutar shell skripte navode u sljedećem obliku:

Code Block
languagetext
#$ -<parametar> <vrijednost>

Osnovni SGE parametri koje se preporuča postaviti su:

Panel
-cwd : parametar definira da je trenutni direktorij radni direktorij posla.
-e <ime_dat>: ime datoteke u koju se sprema standardna greška.
-l <resurs>=<vrij>[,<resurs>=<vrij>...] : definira resurse koje posao zahtjeva (za razliku od PBS-a, ova opcija se ne koristi kod paralelnih poslova).
-M <email_adresa>[,<email_adresa>...] : lista mail adresa na koju se šalju obavijesti o poslu.
-m [a][b][e] : parametar definira u kojem slučaju se šalje obavijest: b - početak izvođenja, e - završetak izvođenja, a - greška u izvođenju posla.
-now y|n : vrijednost y definira da se posao mora izvesti odmah. Ukoliko SGE ne može pronaći slobodne resurse, 
           posao se ne sprema u red, nego odmah završava. Kod interaktivnih  poslova podrazumijevana vrijednost 
           je y, a kod ostalih n.
-N <ime_prog> : ime programa koje će se prikazati pri dohvatu informacija o poslovima.
-o <ime_dat>: ime datoteke u koju se sprema standardni izlaz.
-P <ime_projekta>: ime projekta kojemu posao pripada.
-pe <paralelna_okolina> <raspon_cvorova> : parametar se koristi za paralelne poslove. 
    Prvi parametar definira modul koji pokreće traženi oblik paralelnog posla. 
    Drugi parametar definira konkretan broj procesora ili raspon u obliku 
   <N>,[<Ni>,...]<S>-<E>,[<Si>-<Ei>,] koji paralelni posao zahtjeva. 
    Za detalje vidi odjeljak Paralelni poslovi.
-q <ime_reda>[,<ime_reda>...]: red poslova u koje se sprema posao. 
   Ovu opciju je moguće koristiti i za zahtijevanje određenog čvora, na način da se zahtjeva 
   lokalni red poslova (npr.  all.q@compute-0-0.local).
-r y|n : da li se prilikom greške posao ponovno pokreće (podrazumijevana vrijednost: no).
-t <početak>:<kraj>:<korak> : parametar definira da se radi o polju poslova. 
   Vrijednost <početak> je identifikator prvog zadatka, <kraj> identifikator posljednjeg zadatka, 
   a <korak> vrijednost za koju se uvećava svaki sljedeći identifikator između <početak> i <kraj>.
-v <var>[=<vrijednost>][,<var>[=<vrijednost>]...]: opcija definira SGE-u da uzme 
   trenutne vrijednosti varijable okoline ili da ih postavi na određenu vrijednost prilikom izvođenja posla. 
   Ovaj parametar je koristan kada aplikacija koristi posebne varijable okoline, 
   jer ih SGE podrazumijevano ne postavlja prilikom pokretanja posla.
-V : opcija definira SGE-u da poslu prenese sve trenutne varijable okoline.

Detaljan popis i informacije o parametrima moguće je dobiti naredbom man qsub. Napomena: prilikom nabrajanja vrijednosti parametara (npr. -l ili -q) nije dozvoljeno stavljati razmake.

Serijski poslovi

Najjednostavniji oblik SGE poslova su serijski poslovi koji zahtijevaju samo jedan procesor za izvođenje. Za njih obično nije potrebno navoditi nikakve posebne parametre, nego se samo navodi ime programa.

Primjeri korištenja

1. Primjer skripte bez dodatnih parametara

Code Block
languagetext
#!/bin/bash
date

2. Primjer jednostavne skripte s parametrima

Code Block
languagetext
#!/bin/bash
#$ -N Date_SGE_script
#$ -o Date_SGE.out
#$ -e Date_SGE.err
date

3. Primjer izvođenja programa iz trenutnog direktorija

Code Block
languagetext
#!/bin/bash
#$ -N mojprog
#$ -P local
#$ -o mojprog.out
#$ -e mojprog.err
#$ -cwd
mojprog

Interaktivni poslovi

SGE omogućava pokretanje interaktivnih poslova. Kod interaktivnih poslova standardni izlaz i greške se šalju izravno korisniku. Drugi oblik interaktivnih poslova je da korisnik dobije komandnu liniju čvora koji mu je dodijeljen. Za interaktivno izvođenje poslova koristi se naredba qrsh. Preporuča se koristiti ovaj oblik poslova u slučaju kada je potrebno prevesti ili debuggirati aplikacije na čvorovima. Za razliku od korištenja ssh, na ovaj način se daje do znanja SGE-u da su čvorovi zauzeti i da ne pokreće druge poslove na njima. Prilikom interaktivnog izvođenja naredbe potrebno je navesti puni put do naredbe.

Ukoliko SGE trenutno nema slobodnih resursa i posao se želi ostaviti da čeka u redu, potrebno je navesti parametar "-now n". U suprotnom će SGE odmah završiti izvođenje posla s porukom:

Code Block
languagetext
Your "qrsh" request could not be scheduled, try again later.

Ukoliko skripta koja se pokreće poziva aplikaciju s grafičkim sučeljem potrebno je koristiti naredbu qsh i definirati varijablu okoline DISPLAY.

...

1. Izravan pristup do komandne linije proizvoljnog čvora

Code Block
languagetext
qrsh

2. Izravan pristup do komandne linije čvora compute-0-1.local

Code Block
languagetext
qrsh -q all.q@compute-0-1.local

3. Primjer interaktivnog izvođenja naredbe

Code Block
languagetext
qrsh /home/user/mojaskripta

4. Primjer interaktivnog izvođenja aplikacije s grafičkim sučeljem

Code Block
languagetext
qrsh -DISPLAY=10.1.1.1:0.0 <job_script>

Paralelni poslovi

Pokretanje paralelnih poslova je specifično jer postoje alati za pokretanje podposlova (npr. mpirun) koji sami obavljaju raspoređivanje podposlova po čvorovima. U slučaju MPI (engl. Message Passing Interface) poslova, okolinu je postavljena na odgovarajuću implementaciju.

Da bi se omogućilo SGE sustavu da kontrolira izvođenje paralelnih poslova potrebno je definirati broj procesora koji je potreban za izvođenje posla. Sintaksa je:

Code Block
languagetext
-pe <tip_paralelnog_posla> <N>,[<Ni>,...]<S>-<E>,[<Si>-<Ei>,]

Primjeri raspona adresa su: 1. Vrijednost može biti između 2 i 4

Code Block
languagetext
-pe p20-mpi 2-4

2. Vrijednost može biti 1 ili 4

Code Block
languagetext
-pe p20-mpi 1,4

3. Vrijednost može biti 1 ili između 2 i 4

Code Block
languagetext
-pe p20-mpi 1,2-4

Kada SGE dodijeli čvorove paralelnom poslu, popis čvorova spremi u datoteku $TMPDIR/machines. Unutar SGE skripte datoteka se prenosi kao parametar paralelnim programima (npr. pvm, mpiexec). Korisnici mogu iskoristiti varijablu za vlastito raspoređivanje procesa, primjerice sa alatom ssh. Obzirom da korisnik ne mora unaprijed znati koliko procesora će mu biti dodijeljeno, SGE postavlja vrijednost varijable $NSLOTS na broj dodijeljenih procesora.

Više informacija o paralelnim okolinama dostupnim na Isabelli možete pronaći na stranici Redovi poslova i paralelne okoline.

Polja poslova

SGE omogućava izvođenje polja poslova, tj. višestruko pokretanje istog posla. Podposlovi unutar polja se nazivaju zadaci. Svaki zadatak dobija svoj identifikator. Prilikom pokretanja polja poslova korisnik može definirati raspon vrijednosti identifikatora zadataka. Polje poslova i raspon vrijednosti identifikatora se definira parametrom -t:

Code Block
languagetext
-t <početak>:<kraj>:<korak>  

Vrijednost <početak> je identifikator prvog zadatka, <kraj> identifikator posljednjeg zadatka, a <korak> vrijednost za koju se uvećava svaki sljedeći identifikator između <početak> i <kraj>.

Korisnik može koristiti SGE varijablu okoline $SGE_TASK_ID za dohvat identifikatora zadatka. Pomoću identifikatora korisnici mogu dodijeliti različite parametre pojedinom zadatku (vidi primjere korištenja). Zadaci mogu biti i paralelni poslovi, pri čemu je potrebno navesti parametre prema uputama iz prethodnog poglavlja.

Primjeri korištenja

1. Primjer skripte za pokretanje polja poslova koje se sastoji od 10 zadataka

Code Block
languagetext
#$ -N starSeeker
#$ -o ./taskJobOutput/
#$ -e taskJobErr
#$ -t 1-10
./starSeeker starCluster.$SGE_TASK_ID

2. Primjer skripte za pokretanje polja paralelnih poslova koje se sastoji od 10 zadataka

Code Block
languagetext
#$ -N starSeeker
#$ -o ./taskJobOutput/
#$ -e taskJobErr
#$ -pe p20-mpi 4
#$ -t 1-10
mpiexec -machinefile $TMPDIR/machines ./starSeeker starCluster.$SGE_TASK_ID

Definiranje dodatnih karakteristika poslova

Prilikom pokretanja poslova korisnik može detaljnije opisati koji uvjeti trebaju biti ispunjeni za posao. Primjerice, moguće je zahtijevati samo određene redove, arhitekturu, količinu memorije ili procesorskog vremena. Opisivanje poslova je iznimno bitno za rad sustava za upravljanje poslovima jer omogućava učinkovitije raspoređivanje poslova.

Parametri se navode pomoću opcije -l:

Code Block
languagetext
#$ -l <naziv_parametra>=<vrijednost_parametra>[,<naziv_parametra>=<vrijednost_parametra>...]

Parametri koji samo definiraju potrebe posla:

Code Block
languagetext
arch : arhitektura čvorova. Moguće vrijednosti ovih parametara moguće je vidjeti iz qstat -f naredbe.
mem_free : količina slobodne stvarne memorije
swap_free : količina slobodne swap memorije
virtual_free : zbroj stvarne i swap memorije
mem_total : ukupna količina stvarne memorije
swap_total : ukupna količina swap memorije
virtual_total : zbroj slobodne stvarne i swap memorije
hostname: ime jednog ili više čvorova na kojima se želi izvesti posao.

Parametri koji postavljaju stvarna ograničenja na poslove:

Code Block
languagetext
vmem:   virtualna memorija je zbroj stvarne (RAM) i swap memorije koju procesor koristi.
rss:    stvarna memorija
core:   veličina core datoteke u slučaju da se desi core dump
stack:  veličina stoga programa. Ovaj parametar se postavlja na vmem ako nije naveden.
data:   veličina ukupne memorije koju proces zahtjeva (izuzev stoga). Ovaj parametar se postavlja na vmem ako nije naveden.
fsize:  količina HD koju proces smije potrošiti
cput:   stvarno vrijeme koje proces "provede" u procesoru
rt:     ukupno vrijeme izvođenja procesa

BITNO! SGE koristi alat ulimit za postavljanje ograničenja za poslove (resursi: rss, rt, cpu, data, core, stack, vmem i fsize). Posao će biti zaustavljen sa signalom segmentation fault ukoliko prekorači ograničenja. Stoga je potrebno pažljivo definirati vrijednosti (npr. uzimati 50% veće vrijednosti od očekivanog).

BITNO! Stvarna ograničenja se postavljaju po procesu. Na primjer, ukoliko korisnik na jednom čvoru zahtjeva 3 procesora, vrijednosti ograničenja će biti pomnožene s 3.

-l memory

Kako bi učinkovitije rasporedili željeni posao, jedna od korisnijih karakteristika je -l memory. Ova opcija je izuzetno korisna za poslove koji zahtjevaju veliku količinu radne memorije. Željena količina radne memorije izražava se u Gb koje posao treba za izvođenje jednog procesa! Primjer za posao koji zahjeva 20 jezgri i 200Gb RAM-a:

Code Block
languagetext
#$ -pe mpi 20
#$ -l memory=10

-l scratch

Karakteristiku -l scratch koristimo za poslove koji zahtjevaju veliku količinu prostora na scratchu. Kao i u slučaju karakteristike -l memory, navodi se količina memorije izražena u Gb koje posao treba za izvođenje jednog procesa. Primjer za posao koji zahtjeva 4 jezgre i 200 Gb scratch prostora:

Code Block
languagetext
#$ -pe mpisingle 4
#$ -l scratch=50

SGE varijable okoline

Unutar skripte moguće je koristiti SGE varijable. Primjeri SGE varijabli su već spomenute varijable $NSLOTS i $TMPDIR. Neke od SGE varijabla su:

Code Block
languagetext
$SGE_O_HOST : adresa računala sa kojeg je pokrenut posao
$SGE_O_PATH : originalna vrijednost varijable okoline PATH prilikom pokretanja posla
$SGE_O_WORKDIR : direktorij iz kojeg je posao pokrenut
$SGE_STDOUT_PATH : datoteka u koju se sprema standardni izlaz
$SGE_STDERR_PATH : datoteka u koju se sprema standardna greška
$HOSTNAME : adresa računala na kojem se izvršava skripta
$JOB_ID : SGE identifikator posla
$JOB_NAME : ime posla
$PE_HOSTFILE : ime datoteke u kojoj su navedene adrese računala
$QUEUE : ime reda u kojem se posao izvršava
$SGE_TASK_ID : identifikator zadatka kod polja poslova
$TMPDIR : ime direktorija u koji se mogu spremati privremene datoteke (/scratch).

Gdje spremati privremene podatke i rezultate?

Za spremanje privremenih podataka i rezultat ne preporuča se korištenje $HOME direktorija, budući da se time smanjuje učinkovitost aplikacije te se opterećuju frontend i mreža klastera. Za ovakve datoteke uputno je koristiti varijablu $TMPDIR koja će za svaki pojedini posao kreirati direktorij na radnim čvorovima oblika /scratch/<jobID>.<taskID>.<queue> koji će se automatsko ukloniti nakon završetka posla. Ukoliko postoje naznake da će kreirane privremene datoteke premašiti vrijednost od 500Gb, spremanje privremenih podataka treba se vršiti na disk /shared.

Primjer korištenja automatski kreiranog direktorija pomoću varijable $TMPDIR:

Code Block
languagetext
#$ -N scratch
#$ -cwd
#$ -o output/scratch.out
#$ -j y

cd $TMPDIR
pwd > test
cp test $SGE_O_WORKDIR

Korištenje diska /shared kada aplikacija barata privremenim podatcima većim od 500Gb:

Code Block
#$ -N scratch
#$ -cwd
#$ -o output/scratch.out
#$ -j y

mkdir -p /shared/$USER/$TMPDIR
cd /shared/$USER/$TMPDIR
pwd > test
sleep 120
cp test $SGE_O_WORKDIR

Praćenje i upravljanje izvođenjem poslova

Nakon pokretanja posla korisnik može koristiti različite SGE-ove alate za praćenje izvođenja posla.

Prikaz informacija o poslovima

Naredba qstat je SGE-ova naredba za prikaz stanja poslova. Neki od važnijih parametara naredbe su:

Code Block
languagetext
-s [r|p|s|h] : filtrira poslove prema stanju: r - aktivni, s - zaustavljeni aktivni, h - zaustavljeni u redu, p - poslovi u redu.
-j : prikazuju se poruke od SGE-a (npr. razlog zašto posao nije raspoređen na određene čvorove).
-f : prikazuju se detaljne informacije o opterećenosti čvorova i rasporedu poslova na čvorove.
-F : detaljan prikaz podataka o čvorovima.
-u <ime_korisnika> : prikazuju se samo poslovi od korisnika <ime_korisnika>.
-q [ime_reda] : naredba dohvaća isključivo informacije o redovima poslova.
-g c: dohvat zbirnih informacija o redovima poslova: ukupno opterećenje reda, ukupan broj čvorova u redu, broj zauzetih i slobodnih čvorova te broj čvorova u posebnim stanjima.
-g t : u prikazu poslova su označeni slave i master zadaci (ovaj ispis je analogan ispisu iz SGE5.3).

Informacije o ostalim parametrima moguće je dobiti naredbom man qstat.

Uobičajen način praćenja izvođenja poslova je korištenjem parametara -r i -n. Na primjer, naredba:

Code Block
languagetext
qstat -s r -f

prikazuje sve aktivne poslove i imena čvorove na kojima se izvode.

Detaljni podaci o nekom poslu

Code Block
languagetext
qstat -f <id_posla>

Ukoliko se ne navede <id_posla> bit će prikazani podaci o svim aktivnim poslovima.

Upravljanje poslovima

Nakon pokretanja, poslom se može upravljati: privremeno ga zaustaviti, potpuno ga zaustaviti te mu promijeniti karakteristike.

Naredbe za privremeno zaustavljanje posla su:

Code Block
languagetext
qhold <id_posla> - privremeno zaustavlja izvođenje posla
qrls <id_posla> - nastavlja izvođenje posla

Napomena: aktivni posao neće biti stvarno zaustavljen. Naredba se koristi isključivo dok posao čeka u redu na izvođenje. Za potrebe zaustavljanja aktivnog posla koristiti naredbu qmod.

Veću kontrolu nad poslom omogućava naredba qmod. Naredba omogućava privremeno zaustavljanje aktivnih poslova i to na način da poslu pošalje signal SIGSTOP. Posao će preći u neaktivno stanje (T), ali neće osloboditi resurse (memoriju, opisnike datoteka). Naredba omogućava i spremanje stanja procesa na disk (checkpointing) za poslove koji imaju tu mogućnost. Nadalje pomoću qmod naredbe korisnik može zaustaviti aktivni proces i vratiti ga natrag u red poslova. Parametri naredbe su:

Code Block
languagetext
-c : naredba izvodi spremanje stanja proces
-f : parametar definira da se naredba izvede bez obzira da li je to moguće ili ne (korisno kod vraćanja u red poslova koji su označeni s parametrom -r n).
-r: naredba zaustavlja posao i vraća ga natrag u red.
-s : naredba zaustavlja izvođenje aktivnog procesa.
-us : naredba nastavlja izvođenje zaustavljenog aktivnog posla.

Posao se u potpunosti zaustavlja naredbom qdel:

Code Block
languagetext
qdel <id_posla>

Moguće je i zaustaviti sve poslove pojedinih korisnika s opcijom "-u <ime_korisnika>" ili svih korisnika s opcijom "-u all".

Dohvat informacija o završenim poslovima

Informacije o završenim poslovima i statistike moguće je dobiti korištenjem naredbe qacct. Uobičajeno korištenje je: qacct -j <id_posla> sto prikazuje sve podatke o poslu <id_posla>.

Pomoću naredbe qacct moguće je vidjeti statistike o klasteru. Parametri naredbe su:

Code Block
languagetext
-j [ime_posla] : detaljan opis pojedinih poslova
-h [adresa_čvora] : statistike za pojedine čvorove
-q [ime_reda] : statistike za pojedine redove
-o [ime_korisnika] : statistike za pojedine korisnike
-pe [ime_paralelne_okoline] : statistike za pojedine paralelne okoline
-slots [broj_procesora] : statistike za poslove za određeni broj procesora

Primjeri korištenja

1. Dohvat detaljnih informacija o poslovima korisnika toni koji su koristili 4 procesora:

...

languagetext

...

Opisivanje poslova

Za opisivanje poslova koristi se jezik sustava SGE, a datoteka za opis posla (startna skripta) je standardna shell skripta. U zaglavlju svake skripte navode se SGE parametri kojima se detaljno opisuje posao nakon kojih slijede normalne naredbe za izvršavanje korisničke aplikacije.

Struktura startne skripte:

Code Block
languagebash
titlemoj_posao.sge
#!/bin/bash

#$ -<parametar1> <vrijednost1>
#$ -<parametar2> <vrijednost2>

<naredba1>
<naredba2>

Posao opisan ovakvom startnom skriptom podnosi se naredbom:

Code Block
qsub moj_posao.sge

Naredba qsub vraća ID posla koji se koristi za kasnije nadziranje stanja posla:

Code Block
Your job <JobID> ("moj_posao") has been submitted

Osnovni SGE parametri

Code Block
-N <ime_posla> : ime posla koje će se prikazivati pri dohvatu informacija o poslovima 
-P <ime_projekta> : ime projekta kojemu posao pripada 
-cwd : definira da je direktorij u kojemu se nalazi startna skripta radni direktorij posla 

  • Info

    Podrazumijevani radni direktorij posla je $HOME.


Code Block
-o <ime_dat> : ime datoteke u koju se sprema standardni izlaz 
-e <ime_dat> : ime datoteke u koju se sprema standardna greška 
-j y|n : omogućuje spajanje standardnog izlaza i standardne greške u istu datoteku (podrazumijevana vrijednost je n)

  • Info

    Ako se standardni izlaz i greška eksplicitno ne navedu, biti će spremljeni u datoteke:

    1. Ukoliko nije definirano ime posla:
      <radni_direktorij>/<ime_skripte>.o<id_posla>
      <radni_direktorij>/<ime_skripte>.e<id_posla>
    2. inače:
      <radni_direktorij>/<ime_posla>.o<id_posla>
      <radni_direktorij>/<ime_posla>.e<id_posla>

    Parametri -o i -e mogu pokazivati na direktorij:

    #$ -o outputDir/
    #$ -e outputDir/

    U ovom slučaju, SGE će u direktoriju outputDir kreirati datoteke sa standardnim izlazom i standardnom greškom, naziva <ime_posla>.o<JobID> i <ime_posla>.e<JobID>

    Bitno: outputDir je potrebno ručno kreirati prije podnošenja posla.



Code Block
languagetext
-M <emailAddress>[,<emailAddress>]…	: lista mail adresa na koju se šalju obavijesti o poslu
-m [a][b][e][n]	: definira u kojem se slučaju šalju mail obavijesti: 
					b - početak izvođenja posla, 
					a - greška u izvođenju, 
					e - završetak izvođenja posla, 
					n - ne šalji obavijesti (podrazumijevana opcija)

-now y|n : vrijednost y definira da se posao mora izvesti odmah. Kod interaktivnih poslova ovo je podrazumijevana vrijednost.
			Ukoliko SGE ne može pronaći slobodne resurse, posao se ne sprema u red nego odmah završava. 
-r y|n : treba li se posao u slučaju greške tokom izvođenja ponovno pokrenuti (podrazumijevana vrijednost je n)
-R y|n : vrijednost y definira da će SGE prilikom raspoređivanja rezervirati čvorove (bitno za višeprocesorske poslove)

-l <resurs>=<vrij>[,<resurs>=<vrij>...] : definira resurse koje posao zahtijeva. Za detalje vidi Resursi.

-pe <paralelna_okolina> <raspon> : parametar se koristi za paralelne poslove.
    Prvi parametar definira modul koji pokreće traženi oblik paralelnog posla. 
    Drugi parametar definira konkretan broj procesora ili raspon u obliku <N>,[<Ni>,...]<S>-<E>,[<Si>-<Ei>,] koji paralelni posao zahtijeva. 
    Za detalje vidi Paralelni poslovi.
-q <ime_reda>[,<ime_reda>...] : red poslova u koje se sprema posao. Ovu opciju je moguće koristiti i za zahtijevanje određenog čvora, na način da se zahtijeva 
   								lokalni red poslova (npr. a12.q@sl250s-gen8-08-01.isabella)
-t <početak>:<kraj>:<korak> : parametar definira da se radi o polju poslova. Za detalje vidi Polja poslova.

-v <var>[=<vrijednost>][,<var>[=<vrijednost>]...] : opcija defnira da SGE prilikom izvođenja posla postavi varijablu okoline. Ovaj parametar je koristan kada
													aplikacija koristi posebne varijable okoline, jer ih SGE podrazumijevano ne postavlja prilikom pokretanja posla.
-V : SGE poslu prenosi sve trenutne varijable okoline.

  • Info

    Napomena: prilikom nabrajanja vrijednosti parametara (npr. -l ili -q) nije dozvoljeno stavljati razmake.


Info

Detaljan popis i informacije o parametrima moguće je dobiti naredbom man qsub.

SGE varijable okoline

Unutar startne skripte moguće je koristiti SGE varijable. Neke od njih su:

Code Block
$TMPDIR : ime direktorija u koji se mogu spremati privremene datoteke (/scratch)
$JOB_ID : SGE identifikator posla
$SGE_TASK_ID : identifikator zadatka kod polja poslova
$SGE_O_HOST : adresa računala sa kojeg je pokrenut posao
$SGE_O_PATH : originalna vrijednost varijable okoline PATH prilikom pokretanja posla
$SGE_O_WORKDIR : direktorij iz kojeg je posao pokrenut
$SGE_STDOUT_PATH : datoteka u koju se sprema standardni izlaz
$SGE_STDERR_PATH : datoteka u koju se sprema standardna greška
$HOSTNAME : adresa računala na kojem se izvršava skripta
$JOB_NAME : ime posla
$PE_HOSTFILE : ime datoteke u kojoj su navedene adrese računala
$QUEUE : ime reda u kojem se posao izvršava

Vrste poslova

Serijski poslovi

Najjednostavniji oblik SGE poslova su serijski poslovi koji zahtijevaju samo jedan procesor za izvođenje. Za njih obično nije potrebno navoditi nikakve posebne parametre, nego se samo navodi ime programa.

Primjeri korištenja:

  1.  Primjer skripte bez dodatnih parametara

    Code Block
    languagebash
    #!/bin/bash 
    
    date


  2. Primjer jednostavne skripte s parametrima

    Code Block
    languagebash
    #!/bin/bash 
    
    #$ -N Date_SGE_script 
    #$ -o Date_SGE.out 
    #$ -e Date_SGE.err 
    
    date


  3. Primjer izvođenja programa iz trenutnog direktorija

    Code Block
    languagebash
    titlemoj_program.sge
    #!/bin/bash
    
    #$ -N mojprog
    #$ -P local
    #$ -o mojprog.out
    #$ -e mojprog.err
    #$ -cwd
    
    mojprog


Paralelni poslovi

Za pokretanje paralelnih poslova potrebno je specificirati željenu paralelnu okolinu te broj procesorskih jezgara koji je potreban za izvođenje posla. Sintaksa je:

Code Block
languagetext
#$ -pe <tip_paralelnog_posla> <N>,[<Ni>,...]<S>-<E>,[<Si>-<Ei>,]

Primjeri korištenja:

  1. Posao za izvođenje zahtijeva 14 procesorskih jezgara:

    Code Block
    #$ -pe *mpi 14


  2. Broj dodijeljenih procesorskih jezgara može biti između 2 i 4:

    Code Block
    #$ -pe *mpi 2-4


  3. Broj dodijeljenih procesorskih jezgara može biti 5 ili 10:

    Code Block
    #$ -pe *mpi 5,10


  4. Broj dodijeljenih procesorskih jezgara može biti 1 ili između 2 i 4:

    Code Block
    #$ -pe *mpi 1,2-4


Info

Više informacija o paralelnim okolinama dostupnim na Isabelli možete pronaći na stranici Redovi poslova i paralelne okoline.


Info

Obzirom da korisnik ne mora unaprijed znati koliko procesorskih jezgara će mu biti dodijeljeno, SGE postavlja vrijednost varijable $NSLOTS na broj dodijeljenih jezgara.

Samo pokretanje paralelnih poslova je specifično jer postoje alati za pokretanje podnaslova (npr. mpirun) koji sami obavljaju raspoređivanje podposlova po čvorovima. Kada SGE dodijeli čvorove paralelnom poslu, popis čvorova spremi u datoteku $TMPDIR/machines koja se unutar skripte za opis posla prenosi kao parametar paralelnim poslovima (npr. mpirun, mpiexec, pvm...).

Primjer startne skripte za pokretanje jedne vrste paralelnog posla:

Code Block
languagebash
#!/bin/bash

#$ -N paralelni-posao
#$ -cwd
#$ -pe *mpi 14

mpirun_rsh -np $NSLOTS -hostfile $TMPDIR/machines ...

Polja poslova

SGE omogućava višestruko pokretanje istog posla, tzv. polja poslova. Podposlovi unutar polja se nazivaju zadaci i svaki zadatak dobiva svoj identifikator.

Prilikom pokretanja poslova korisnik specificira raspon vrijednosti identifikatora zadataka koristeći parametar -t:

Code Block
#$ -t <pocetak>:<kraj>:<korak>

Vrijednost <početak> je identifikator prvog zadatka, <kraj> identifikator posljednjeg zadatka, a <korak> vrijednost za koju se uvećava svaki sljedeći identifikator između <početak> i <kraj>. SGE sprema identifikator svakog zadatka u varijablu $SGE_TASK_ID, pomoću koje korisnici mogu dodijeliti različite parametre pojedinom zadatku. Zadaci mogu biti serijski ili paralelni poslovi.

Primjeri korištenja

  1. Primjer skripte za pokretanje polja poslova od 10 serijskih poslova:

    Code Block
    languagebash
    #!/bin/bash
    
    #$ -N job_array_serial
    #$ -cwd
    #$ -o output/
    #$ -j y
    #$ -t 1-10
    
    ./starSeeker starCluster.$SGE_TASK_ID


  2. Primjer skripte za pokretanje polja poslova od 10 paralelnih poslova:

    Code Block
    languagebash
    #!/bin/bash
    
    #$ -N job_array_parallel
    #$ -cwd
    #$ -o output/
    #$ -j y
    #$ -t 1-10
    
    mpiexec -machinefile $TMPDIR/machines ./starseeker starCluster.$SGE_TASK_ID


Interaktivni poslovi

SGE omogućava pokretanje interaktivnih poslova. Za interaktivno izvođenje poslova koristi se naredba qrsh.

Preporuča se koristiti ovaj oblik poslova u slučaju kada je potrebno prevesti ili debuggirati aplikacije na čvorovima. Za razliku od korištenja ssh, na ovaj način se daje do znanja SGE-u da su čvorovi zauzeti i da ne pokreće druge poslove na njima. Prilikom interaktivnog izvođenja naredbe potrebno je navesti puni put do naredbe.

Ukoliko SGE trenutno nema slobodnih resursa i posao se želi ostaviti da čeka u redu, potrebno je navesti parametar "-now n". U suprotnom će SGE odmah završiti izvođenje posla s porukom:

Code Block
languagetext
Your "qrsh" request could not be scheduled, try again later.

Primjeri korištenja

  1. Izravan pristup do komandne linije testnog čvora:

    Code Block
    languagetext
    qrsh


  2. Interaktivno izvođenje naredbe

    Code Block
    languagetext
    qrsh /home/user/moja_skripta


  3. Interaktivno izvođenje aplikacije s grafičkim sučeljem

    Code Block
    languagetext
    qrsh -DISPLAY=10.1.1.1:0.0 <moja_skripta>


Napredno opisivanje poslova

Spremanje privremenih rezultata

Za spremanje privremenih rezultata koji se generiraju tijekom izvođenja posla ne preporuča se koristiti $HOME direktorij. Time se smanjuje učinkovitost aplikacije te opterećuju frontend i mreža klastera.

SGE za svaki pojedini posao kreira direktorij na disku na radnim čvorovima (/scratch), oblika /scratch/<jobID>.<taskID>.<queue>. Adresu ovog direktorija SGE sprema u varijablu $TMPDIR.

Info

Zbog veće brzine, korištenje privremenog direktorija na /scratch disku preporuča se i za poslove koji često zahtijevaju nasumičan pristup podacima na disku, kao što su TensorFlow i PyTorch poslovi.


Warning

Ukoliko postoje naznake da će kreirane privremene datoteke prijeći 500 GB, spremanje privremenih podataka treba se vršiti na disk /shared (opisano niže).


Warning

Privremeni direktorij na /scratch disku se briše automatski po završetku izvršavanja posla.

Primjeri korištenja:

  1. Primjer jednostavnog korištenja $TMPDIR varijable:

    Code Block
    languagebash
    #!/bin/bash 
    
    #$ -N scratch_1 
    #$ -cwd 
    #$ -o output/scratch.out 
    #$ -j y
    #$ -l scratch=50 
    
    cd $TMPDIR 
    pwd > test 
    cp test $SGE_O_WORKDIR


  2. Primjer kopiranja podataka na scratch disk:

    Code Block
    languagebash
    #!/bin/bash 
    
    #$ -N scratch_2 
    #$ -cwd 
    #$ -o output/scratch.out 
    #$ -j y
    #$ -l scratch=50 
    
    mkdir -p $TMPDIR/data 
    cp -r $HOME/data/* $TMPDIR/data 
    
    python3.5 main.py $TMPDIR/data


Ukoliko privremeni podaci premašuju 500 GB potrebno je koristiti /shared. Za razliku od scratch-a, direktorij na shared-u je potrebno ručno kreirati i nema automatskog uklanjanja direktorija.

Primjer korištenja:

Code Block
languagebash
#!/bin/bash 

#$ -N shared
#$ -cwd 
#$ -o output/shared.out 
#$ -j y 

mkdir -p /shared/$USER/$TMPDIR
cd /shared/$USER/$TMPDIR

pwd > test
cp test $SGE_O_WORKDIR

Resursi

Prilikom pokretanja poslova korisnik može detaljnije opisati koji uvjeti trebaju biti ispunjeni za posao. Primjerice, moguće je zahtijevati samo određenu arhitekturu radnog čvora, količinu memorije ili vrijeme izvršavanja. Navođenje potrebnih resursa omogućava bolje raspoređivanje poslova, a poslovima daje veći prioritet (više na stranici Prioriteti na Isabelli).

Potrebni resursi se navode pomoću parametra -l:

Code Block
#$ -l <resurs>=<vrijednost>

Resursi koji definiraju potrebe posla:

Code Block
arch : arhitektura čvora (npr. lx26-x86, lx25-amd64)
hostname : adresa čvora (npr. c4140-01.isabella)

Resursi koji postavljaju stvarna ograničenja na poslove:

Code Block
vmem : količina virtualne memorije (format: <num>K|M|G)
rss : količina stvarne memorije
stack : veličina stoga
data : ukupna količina memorije (bez stoga)
fsize : ukupna veličina datoteka
cput : procesorsko vrijeme (format: [<hours>:<min>:]<sec>)
rt : stvarno vrijeme
scratch : prostor na scratch disku izrazen u GB


Note

Vrijednosti ovih resursa treba pažljivo definirati (npr. uzimati 50% veće vrijednosti od očekivanog). U slučaju prekoračenja posao će biti zaustavljen sa signalom "segmentation fault".


Note

Vrijednosti se ne mogu mijenjati za aktivne poslove.


Info

Vrijednosti resursa definirane u startnoj skripti posla postavljaju se po procesu. Na primjer, ukoliko korisnik na jednom čvoru zahtijeva 3 procesorske jezgre, vrijednosti svih zatraženih resursa biti će pomnožene s 3.

Primjeri korištenja:

  1. Primjer posla koji zahtijeva 20 CPU jezgara i 10 GB radne memorije po procesu (poslu će ukupno biti dodijeljeno 200 GB radne memorije):

    Code Block
    #$ -pe *mpi 20
    #$ -l memory=10


  2. Posao zahtijeva 100 GB prostora na scratchu:

    Code Block
    #$ -pe *mpisingle 4
    #$ -l scratch=25


Red poslova

SGE podržava više redova poslova, za različite vrste i maksimalna trajanja poslova, za različite vrste poslova (interaktivni, vSMP poslovi, ...) itd.

Željeni red poslova može se definirati parametrom -q:

Code Block
#$ -q <queueName>

Popis dostupnih redova poslova na Isabelli može se pronaći na Redovi poslova i paralelne okoline.

Obavijesti o stanju posla

SGE podržava slanje e-mail obavijesti o promjeni stanja posla.

Parametar -M određuje na koju email adresu će stizati obavijesti o stanju poslova:

Code Block
#$ -M <email_adresa> 

Parametar -m određuje u kojim slučajevima će se slati obavijest:

Code Block
#$ -m [b][a][e][n]
  • b - početak izvođenja
  • a - greška u izvođenju
  • e - završetak izvođenja
  • n - ne slati obavijesti (pretpostavljena opcija)

Primjer korištenja:

Code Block
languagetext
#$ -m ae
#$ -M moj@mail.com

Obavijest će biti poslana na adresu moj@mail.com prilikom prekida ili završetka posla.

Praćenje i upravljanje izvođenjem poslova

Prikaz stanja poslova

Za prikaz stanja poslova koristi se SGE-ova naredba qstat. Sintaksa naredbe je:

Code Block
$ qstat <opcije>

Izvršavanjem naredbe qstat bez dodatnih opcija dobiva se ispis svih trenutnih korisnikovih poslova:

Code Block
languagetext
[tsmolcic@teran ~]$ qstat
job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID
-----------------------------------------------------------------------------------------------------------------
 131982 0.00001 md5-10k.0  tsmolcic     r     05/28/2019 06:24:06 gpu.0.q@c4140-03.isabella          1
 131988 0.00001 md5-10k.2  tsmolcic     r     05/28/2019 09:29:26 gpu.2.q@c4140-01.isabella          1
 131990 0.00001 md1-5k.3   tsmolcic     r     05/28/2019 09:29:41 gpu.3.q@c4140-01.isabella          1
 131991 0.00001 md10-15.4  tsmolcic     r     05/28/2019 10:18:08 gpu.1.q@c4140-01.isabella          1
 131994 0.04119 md1kp.5    tsmolcic     qw    05/27/2019 13:14:14                                   20
 131996 0.00005 md1-5k.6   tsmolcic     qw    05/27/2019 13:16:30                                    1

Neke od važnijih opcija su:

Code Block
-s [r|p|s|h] : filtrira poslove prema stanju: r - aktivni, s - zaustavljeni, h - zaustavljeni u redu, p - u redu čekanja
-j [job_ID] : detaljan prikaz stanja posla (ukoliko se ne navede job_ID, prikazuju se podaci o svim aktivnim poslovima)
-f : prikazuju se detaljne informacije o opterećenosti čvorova i rasporedu poslova na čvorove
-F : detaljan prikaz podataka o čvorovima
-u <ime_korisnika> : prikazuju se samo poslovi od korisnika <ime_korisnik> (* - za sve korisnike)
-q [ime_reda] : naredba dohvaća isključivo informacije o redovima poslova
-g c : dohvat zbirnih informacija o redovima poslova: ukupno opterećenje reda, ukupan broj čvorova u redu, broj zauzetih
		i slobodnih čvorova te broj čvorova u posebnim stanjima
-g t : u prikazu poslova su označeni slave i master zadaci
-l <resurs>=<vrijednost> : filtriranje poslova prema resursima
-ext : dodatne informacije o poslovima
-pri : detaljni podaci o prioritetima poslova

Opcije naredbe qstat je moguće kombinirati što je naročito bitno kada je potrebno filtrirati kroz nekoliko stotina poslova.

Primjeri korištenja:

  1. Prikaz svih poslova u redu čekanja

    Code Block
    $ qstat -u "*" -s p


  2. Prikaz poslova svih korisnika koji se trenutno izvršavaju i zahtijevali su paralelnu okolinu a16-mpi

    Code Block
    $ qstat -u "*" -s r -pe a16-mpi


  3. Prikaz svih poslova i čvorova korisnika pero

    Code Block
    $ qstat –s r –f –u pero


  4. Prikaz svi poslova koji se trenutno izvršavaju na čvorovima s grafičkim procesorima:

    Code Block
    $ qstat –u "*" -q gpu.*.q


Prikaz radnih čvorova

Za ispis broja procesora, jezgri i količine radne memorije po čvoru koristi se naredba

Code Block
$ qhost

Naredom se mogu ispisati vrijednosti raspoloživih resursa po radnim čvorovima:

Code Block
$ qhost -F vendor,scratch,memory

Upravljanje poslovima

Poslom se može upravljati i nakon pokretanja.

Dok je posao u redu čekanja, moguće je privremeno zaustaviti njegovo izvršavanje naredbom

Code Block
$ qhold <ID_posla>

Tako zaustavljen posao može se vratiti u red čekanja naredbom

Code Block
$ qrls <ID_posla>

Veću kontrolu nad poslom omogućava naredba qmod. Naredba omogućava privremeno zaustavljanje aktivnih poslova i to na način da poslu pošalje signal SIGSTOP. Posao će preći u neaktivno stanje (T), ali neće osloboditi resurse (memoriju, opisnike datoteka). Naredba omogućava i spremanje stanja procesa na disk (checkpointing) za poslove koji imaju tu mogućnost. Nadalje pomoću qmod naredbe korisnik može zaustaviti aktivni proces i vratiti ga natrag u red poslova. Parametri naredbe su:

Code Block
-c : naredba izvodi spremanje stanja proces
-f : parametar definira da se naredba izvede bez obzira da li je to moguće ili ne 
	(korisno kod vraćanja u red poslova koji su označeni s parametrom -r n).
-r: naredba zaustavlja posao i vraća ga natrag u red.
-s : naredba zaustavlja izvođenje aktivnog procesa.
-us : naredba nastavlja izvođenje zaustavljenog aktivnog posla.

Posao se u potpunosti zaustavlja ili miče iz reda čekanja naredbom:

Code Block
$ qdel <ID_posla>

Moguće je zaustaviti sve poslove korisnika:

Code Block
$ qdel -u <ime_korisnika>

Za zaglavljene poslove treba koristiti prisilno zaustavljanje:

Code Block
$ qdel -f <ID_posla>

Dohvat informacija o završenim poslovima

Za dohvat informacija o završenim poslovima koristi se naredba qacct. Sintaksa je:

Code Block
$ qacct <opcije>

Najčešći primjer korištenja ove naredbe je

Code Block
$ qacct -j <ID_posla>

kojom se ispisuju svi podaci o završenom poslu.

Ostale korisne opcije naredbe qacct su:

Code Block
-j <ID_posla> : detaljan opis pojedinih poslova
-h <adresa_čvora> : statistike za pojedine čvorove
-q <ime_reda> : statistike za pojedine redove
-o <ime_korisnika> : statistike za pojedine korisnike
-pe <ime_paralelne_okoline> : statistike za pojedine paralelne okoline
-slots <broj_procesora> : statistike za poslove za određeni broj procesora
-P <projekt> : prikaz sažetka potrošnje definiranog projekta

Primjeri korištenja:

  1. Detaljne informacije o svim poslovima izvršenim na klasteru (oprez: velika količina podataka):

    Code Block
    $ qacct -j


  2. Prikaz informacija o svim poslovima definiranog korisnika:

    Code Block
    $ qacct -j -o <korisnik>

    Prikaz sažetka potrošnje računalnih resursa definiranog korisnika (ako se ne definira <korisnik>, prikazuju se podaci za sve korisnike):

    Code Block
    $ qacct -o <korisnik>


  3. Prikaz informacija o svim poslovima za definirani projekt:

    Code Block
    $ qacct -j -P <projekt>

    Prikaz sažetka potrošnje definiranog projekta (ako se ne definira <projekt>, prikazuju se podaci za sve projekte):

    Code Block
    $ qacct -P <projekt>


Šalabahteri

Linux šalabahter 

Kretanje po datotečnom sustavu

NaredbaOpis naredbe
pwdPrikazuje trenutačnu lokaciju korisnika. Lokacija se prikazuje u obliku apsolutne putanje do trenutačnog direktorija.
cdPromjena trenutačnog direktorija (cd - change directory).
cd -Povratak u prethodni direktorij.

Upravljanje direktorijima

NaredbaOpis naredbe
mkdir dir1

Kreira direktorij imena dir1.

mkdir -p /tmp/novi/dir1Opcija -p automatski kreira potrebne poddirektorije.
rm -rf dir1/*Briše sve datoteke i poddirektorije unutar direktorija dir1, tj. ostavlja direktorij dir1 praznim.
rm -rf dir1/Briše sve datoteke i poddirektorije uključujući i dir1.

Kopiranje datoteka i direktorija

NaredbaOpis naredbe
cp dat1 dat2Kopira datoteku dat1 u dat2 (dat1 je nepromijenjena).
cp dat1 dir/Kopira datoteku dat1 u direktorij dir.
cp -r dir1/* dir2/Kopira sve datoteke iz direktorija dir1 u direktorij dir2 bez samog direktorija dir1.
cp -r dir1/ dir2/Kopira sve datoteke i poddirektorije u direktoriju dir u direktorij
dir2, uključujući direktorij dir1.

Premještanje i preimenovanje datoteka i direktorija

NaredbaOpis naredbe
mv dat1 dat2Preimenuje datoteku dat1 u dat2
mv dat1 dir1Ako je dir1 ime direktorija, premješta datoteku dat1 u direktorij
dir1

Promjena zaporke

NaredbaOpis naredbe
passwdPromjena zaporke trenutnog korisnika. Naredba prvo traži upis stare lozinke, a zatim traži da se upiše nova lozinka (dva puta).
Napomena: prilikom upisivanja lozinke, iz sigurnosnih razloga, u terminalu se ne ispisuje tekst.

Automatsko nadopunjavanje i pretraživanje povijesti naredbi

NaredbaOpis naredbe
[Tab]Brzo nadopunjavanje naredbi. Kad korisnik počne pisati naredbu, npr. passwd, može napisati prvih nekoliko slova (npr. pass) i pritisnuti tipku [Tab]. Ljuska će tada automatski završiti naredbu ili ispisati sve naredbe koje započinju nizom pass. Na isti način se mogu nadopunjavati imena datoteka na disku.
[Ctrl] + [r]Pretraživanje povijesti naredbi. U terminalu, držite pritisnutu tipku [Ctrl] i pritisnete tipku [r]. Počnete pisati slova iz naredbe, i pojavljuju vam se prijašnje naredbe koje sadržavaju slova koja tipkate. Ako želite rotirati kroz sve naredbe koje sadrže utipkana slova, ponovno stisnete [Ctrl] + [r].

Naredbe za dohvaćanje uputa

NaredbaOpis naredbe
manUpute za korištenje naredbi sustava. Ako želite vidjeti kako se koristi, npr. naredba ls, za otvaranje man-stranice napisat ćete man ls.
<naredba> [-h/--help]Dobar dio aplikacija ima mogućnost dohvaćanja uputa korištenjem parametara -h ili --help (ne vrijedi za sve aplikacije!).


SGE šalabahter

Podnošenje poslova

NaredbaOpis naredbe
qsubPodnosi posao i vraća ID posla.

Provjera stanja poslova

NaredbaOpis naredbe
qstatPrikazuje stanje poslova na klasteru za trenutnog korisnika.
qstat -fPrikazuje stanje poslova i čvorova.
qstat -s rpshPrikazuje: p - poslove koji čekaju u redu; r - aktivne poslove; s -privremeno zaustavljene aktivne poslove; h - privremeno zaustavljene poslove u redu.
qstat -g cPrikazuje sažetak stanja pojedinih redova poslova.
qstat -j <job_id>Prikazuje detaljan prikaz informacija o jednom poslu.
qstat -u <user>Prikaz poslova određenog korisnika ("*"- za sve)
qstat -pe <name>Prikaz poslova koji koriste definiranu paralelnu okolinu.
qstat -q <queue>Prikaz poslova u definiranom redu poslova.

Zaustavljanje poslova

NaredbaOpis naredbe
qdel <job_id>Posao se u potpunosti zaustavlja ili miče iz reda čekanja.
qdel -u <user>Zaustavljaju se svi poslovi zadanog korisnika.
qdel -f <job_id>Prisilno zaustavljanje za zaglavljene poslove.

Informacije o završenim poslovima

NaredbaOpis naredbe
qacct -j <job_id>Detaljne informacije o poslu s ID-jem <job_id>.
qacct -jDetaljne informacije o svim poslovima (velika količina podataka).
qacct -j -o <user>Prikaz informacija o svim poslovima definiranog korisnika.
qacct -o <user>Prikaz sažetka potrošnje definiranog korisnika; ako se ne definira <user>, prikazuju se podaci za sve korisnike.
qacct -slots [<count>]Prikaz sažetka svih poslova koji su koristili zadani broj procesora; ako se ne definira <count>, prikazuju se podaci za sve vrijednosti.
qacct -j -P <project>Prikaz informacija o svim poslovima za definirani projekt.
qacct -P <project>Prikaz sažetka potrošnje definiranog projekta; ako se ne definira <project>, prikazuju se podaci za sve projekte.
qacct -j -q <queue>Prikaz informacija o svim poslovima za definirani red poslova.
qacct -q <queue>Prikaz sažetka potrošnje definiranog reda poslova.

...