Versions Compared

Key

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

...

Code Block
languagetext
qacct -o toni -slots 4 -j

Određivanje prioriteta podnesenih poslova

SGE ima mehanizam za kontrolu prioriteta podnošenja poslova. Kod računanja prioriteta, uzimaju se u obzir količina iskorištenih resursa i količina navedenih resursa.

Jednadžba za računanje prioriteta je:

pri = 0.1 * nurg + 1 * ntckts,

gdje je nurg je prioritet koji dolazi iz opisa posla, a ntckts je prioritet na temelju fair-share ticketa.

Što je veći prioritet posla, to će se on prije početi izvršavati.

Prioritet koji se izračunava iz opisa posla (urg) se računa iz količine traženih resursa tako da se zbroje doprinosi svakog pojedinog resursa.

Šest je takvih mogućih resursa:

...

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.

SGE koristi sustsav za fair-share prioritete. Taj sustav određivanja prioriteta se temelji na analizi korištenja resursa u nekom prethodnom razdoblju, te se na temelju toga dodjeljuju ticketi korisnicima, odnosno projektima, a koji se onda raspodjeljuju na njihove poslove. Sustav radi tako da projekti, odnosno korisnici koji su manje koristili resurse dobiju više ticketa, a time i njihovi poslovi imaju veći prioritet. Time se osigurava da svi korisnici približno jednako koriste dostupne resurse. SGE ima na raspolaganju 10 000 000 ticketa koje može distribuirati na projekte, odnosno korisnike.

Halflife opisuje kako brzo SGE "zaboravlja" prošlo korisničko konzumiranje resursa. Opisuje se parametrom halftime, koji definira vremenski interval u kojem bi se akumulirano korištenje resursa smanjilo na polovicu svoje originalne vrijednosti. Parametar halftime je postavljen na vrijednost od 30 dana.

Primjeri

Pokažimo navedeno na jednom primjeru. Naredbom:

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

u stupcu urg se vidi urgency. Jedan praktični primjer:

Code Block
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       bkovacev     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:

Code Block
[root@teran ~]# qstat -j 106560
==============================================================
job_number:                 106560
exec_file:                  job_scripts/106560
submission_time:            Sun Apr  7 12:26:43 2019
owner:                      bkovacev
uid:                        10011
group:                      grid
gid:                        501
sge_o_home:                 /home/bkovacev
sge_o_log_name:             bkovacev
sge_o_path:                 /usr/lib64/qt-3.3/bin:/opt/sge/bin:/opt/sge/bin/lx-amd64:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/puppetlabs/bin:/images/amd/usr/local/amber/exe/:/home/bkovacev:/home/bkovacev/bin:/home/bkovacev/taopackage/scripts:/usr/local/amber12/exe:/home/bkovacev/lib/openmpi/:/home/bkovacev/.local/bin:/home/bkovacev/bin
sge_o_shell:                /bin/bash
sge_o_workdir:              /storage/home/bkovacev/CF4-ACTIVATION/M02X
sge_o_host:                 teran
account:                    sge
hard resource_list:         memory=4,scratch=29
mail_list:                  bkovacev@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.

Naredbom

Code Block
qstat -u "*" -pri 

mogu se pogledati ukupni prioriteti poslova, a naredbom:

Code Block
qstat -u "*" -ext

se mogu pogledati prioriteti poslova koji se temelje na ticketima.