...
Code Block | ||
---|---|---|
| ||
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.