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 tri težinska parametra: weight_priority, weight_urgency i weight_ticket. Navedeni parametri se mogu provjeriti pozivom naredbe:

Code Block
qconf -ssconf

Jednadžba za računanje prioriteta je:

pri = weight_priority * npprior + weight_urgency * nurg + weight_ticket * ntckts,

gdje je npprior prioritet koji korisnici navode u opisu posla, nurg je prioritet koji dolazi iz opisa posla, a ntckts je prioritet na temelju fair-share ticketa.

Kako se vidi iz ispisa gore navedene naredbe, weight_priority = 0.000000, te se jednadžba svodi na oblik:

pri = weight_urgency * nurg + weight_ticket * ntckts = 0.1 * nurg + 1 * ntckts.

Š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:

urg = sum(hrr).

Šest je takvih mogućih resursa:

  • cores
  • exclusive
  • memory
  • scratch
  • slots
  • vendor

Pripadni prioriteti za navedene resurse mogu se vidjeti pozivom naredbe (gleda se stupac urgency):

Code Block
qconf -sc

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.

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.