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:

ResursUrgency
cores1
exclusive1
memory100
scratch10
slots1000
vendor10

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



  • No labels