Sustav Sun of Grid Engine (SGE) omogućava prioritizaciju podnesenih poslova. Veći prioritet posla znači višu poziciju u redu čekanja te manje vrijeme čekanja do početka izvođenja. Prilikom računanja prioriteta poslova, uzimaju se u obzir dva faktora:
- količina iskorištenih resursa u proteklom razdoblju i
- količina zatraženih resursa.
Za računanje prioriteta temeljem iskorištenih resursa u proteklom razdoblju SGE koristi fair-share tikete. Tiketi se dodjeljuju projektima, odnosno pojedinim članovima temeljem prethodnog korištenja Isabelle. Sustav radi tako da projekti, odnosno korisnici koji su manje koristili resurse dobiju više tiketa, a time i njihovi poslovi imaju veći prioritet. Na Isabelli je na raspolaganju 10 000 000 tiketa koji se dijele među projektima, odnosno korisnicima. Parametar halflife definira kako brzo SGE "zaboravlja" prošlo korisničko trošenje resursa. Njime se definira vremenski interval u kojem se akumulirano korištenje resursa smanjuje na polovicu svoje originalne vrijednosti. Na Isabelli je parametar halflife postavljen na vrijednost od 30 dana.
Za računanje prioriteta temeljem zatraženih resursa (urg
) koriste se resursi navedeni u opisu posla. Šest je takvih mogućih resursa:
Resurs | Urgency |
---|---|
cores | 1 |
exclusive | 1 |
memory | 100 |
scratch | 10 |
slots | 1000 |
vendor | 10 |
Za pojedini resurs, doprinos se računa prema jednadžbi:
hrr = rurg * assumed_slot_allocation * request
gdje je rurg
urgency za dani resurs, assumed_slot_allocation
je traženi broj slotova (broj jezgri), a request
su traženi resursi per-slot.
Konačno, jednadžba za računanje ukupnog prioriteta poslova je:
pri =
0.1 * nurg + 1 * ntckts
gdje je nurg
normalizirani prioritet koji dolazi iz zatraženih resursa, a ntckts
je normalizirani prioritet na temelju fair-share tiketa.
Naredbe za prikaz prioriteta
Tri naredbe omogućavaju prikaz prioriteta poslova te doprinosa od zatraženih resursa i fair-share tiketa.
Prikaz prioriteta svih poslova u redu čekanja:
qstat -u "*" -s p -pri
Prikaz prioriteta temeljem zatraženih resursa svih poslova u redu čekanja:
qstat -u "*" -s p -urg
Prikaz raspodjele tiketa svih poslova u redu čekanja:
qstat -u "*" -s p -ext
Primjer - prioritet prema količini iskorištenih resursa u proteklom razdoblju
Prikaz raspodjele tiketa svih poslova u redu čekanja moguće je dobiti naredbom:
qstat -u "*" -s p -ext
u stupcu tckts
se vidi broj tiketa dodijeljen pojedinom poslu, a u stupcu ntckts
normirana vrijednost koja se koristi u izračunu ukupnog prioriteta.
Primjer - prioritet prema količini zatraženih resursa
Prikaz prioriteta temeljem zatraženih resursa svih poslova u redu čekanja moguće je dobiti naredbom:
qstat -u "*" -s p -urg
u stupcu urg
se vidi ukupna doprinos u prioritetu, a u stupcu nurg
je njegova normirana vrijednost koja se koristi u izračunu ukupnog prioriteta:
job-ID prior nurg urg rrcontr wtcontr dlcontr name user state submit/start at deadline queue slots ja-task-ID --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 106560 0.08422 0.84218 47320 47320 0 0 min1 hrvoje qw 04/07/2019 12:26:43 28
U ovom slučaju urg = 47320
. Naredbom qstat -j <job_id>
se može vidjeti informacije o danom poslu:
[root@teran ~]# qstat -j 106560 ============================================================== job_number: 106560 exec_file: job_scripts/106560 submission_time: Sun Apr 7 12:26:43 2019 owner: hrvoje uid: 10011 group: grid gid: 501 sge_o_home: /home/hrvoje sge_o_log_name: hrvoje sge_o_shell: /bin/bash sge_o_workdir: /storage/home/hrvoje sge_o_host: teran account: sge hard resource_list: memory=4,scratch=29 mail_list: hrvoje@teran.isabella notify: FALSE job_name: min1 jobshare: 0 env_list: TERM=NONE script_file: min1 parallel environment: p28-mpisingle range: 28 project: ISAB-8531-2018 binding: NONE job_type: NONE
Iz ispisa se vidi hard resource_list. Dakle, resursi koji se uzimaju u obzir su memory
, scratch
i slots
. Uvrštavanjem u gornju jednadžbu, dobiva se gore navedeni urgency:
urg = 100 * 28 * 4 (memory) + 10 * 28 * 29 (scratch) + 1000 * 28 (slots) = 47320