
Montag April 25, 2005
N1GE 6 - Scheduler Hacks: The ticket policy hierarchy
The N1GE 6 support fair share scheduling through its ticket policy. The
ticket policy consists of three different parts:
- the Share Tree policy
- the functional policy
- the override policy
The share tree and the functional policy have a fixed amount of
tickets, which gets distributed over all jobs in the system. The
override policy is open. If "share override tickets" or "share
functional tickets" are enabled, the ticket amount of a job depends in
its submission time. The ticket amount in the share tree always depends
on the submission time as well as the past usage. Of course to all
three of them depend on the assignments from the configuration.
The statement, that the jobs' ticket amount depends on the submission
time is a bit simple. An additional parameter comes into play through
the Ticket Policy Hierarchy.
It specifies the order in which the different ticket policies are
called. The default is: OFS, which means:
1. O = override ticket policy
2. F = functional ticket policy
3. S = share tree policy
The real dependency for the final tickets are:
compute override tickets:
- assigned tickets by the configuration
- job submission time
compute functional tickets:
- assigned tickets by the configuration
- assigned override tickets
- job submission time
compute share tree tickets:
- assigned tickets by the configuration
- usage
- assigned override tickets
- assigned functional tickets.
- job submission time
As you see, the previous computed tickets have an effect on the
following ticket policy. The next example will demonstrate it.
Setup:
qconf -msconf
ticket_policy_hierarchy OFS
weight_tickets_functional
100000
weight_tickets_share
0
weight_ticket
1.000000
weight_waiting_time
0.000000
weight_deadline
3600000.000000
weight_urgency
0.000000
weight_priority
0.000000
qconf -aprj PRJ1
name PRJ1
oticket 10
fshare 0
acl NONE
xacl NONE
qconf -muser <NAME>
fshare 100
Jobs:
7 jobs without a project:
qsub
$SGE_ROOT/examples/jobs/sleeper.sh
2 PRJ1 jobs:
qsub -P PRJ1
$SGE_ROOT/examples/jobs/sleeper.sh
qstat
output:
JobId
P S Project
Tot-Tkt ovrts otckt ftckt
stckt shr
--------------------------------------------------------
223690
1.00000 qw PRJ1
25010
0 10
25000 0 0.35
223691
0.50000 qw PRJ1
12505
0 5
12500 0 0.18
223683 0.33320
qw NA
8333
0 0
8333 0 0.12
223684 0.24990
qw NA
6250
0 0
6250 0 0.09
223685 0.19992
qw NA
5000
0 0
5000 0 0.07
223686 0.16660
qw NA
4166
0 0
4166 0 0.06
223687 0.14280
qw NA
3571
0 0
3571 0 0.05
223688 0.12495
qw NA
3125
0 0
3125 0 0.04
223689 0.11107
qw NA
2777
0 0
2777 0 0.04
Setup
change:
I know modify the policy hierarchy:
qconf -msconf
ticket_policy_hierarchy FSO
and the qstat output changes to:
JobId
P S Project
Tot-Tkt ovrts otckt ftckt
stckt shr
--------------------------------------------------------
223683 1.00000
qw NA
25000
0 0
25000 0 0.35
223684 0.50000
qw NA
12500
0 0
12500 0 0.18
223685 0.33333
qw NA
8333
0 0
8333 0 0.12
223686 0.25000
qw NA
6250
0 0
6250 0 0.09
223687 0.20000
qw NA
5000
0 0
5000 0 0.07
223688 0.16667
qw NA
4166
0 0
4166 0 0.06
223689 0.14286
qw NA
3571
0 0
3571 0 0.05
223690
0.12540 qw PRJ1
3135
0 10
3125 0 0.04
223691
0.11131 qw PRJ1
2782
0 5
2777 0 0.04
( Apr 25 2005, 12:27:04 PM CEST )
Permalink
|