Platform LSF Administration Guide Version 6.2
Chapter 16
Fairshare Scheduling
Administering Platform LSF
279
Dynamic User Priority
LSF calculates a dynamic user priority for individual users or for a group, depending on
how the shares are assigned. The priority is dynamic because it changes as soon as any
variable in formula changes. By default, a user’s dynamic priority gradually decreases
after a job starts, and the dynamic priority immediately increases when the job finishes.
How LSF calculates dynamic priority
By default, LSF calculates the dynamic priority for each user based on:
◆
The number of shares assigned to the user
◆
The resources used by jobs belonging to the user:
❖
Number of job slots reserved and in use
❖
Run time of running jobs
❖
Cumulative actual CPU time (not normalized), adjusted so that recently used
CPU time is weighted more heavily than CPU time used in the distant past
If you enable additional functionality, the formula can also involve additional resources
used by jobs belonging to the user:
◆
Historical run time of finished jobs
◆
Committed run time, specified at job submission with the -W option of bsub, or in
the queue with the RUNLIMIT parameter in
lsb.queues
How LSF measures fairshare resource usage
LSF measures resource usage differently, depending on the type of fairshare:
◆
For user-based fairshare:
❖
For queue-level fairshare, LSF measures the resource consumption of all the
user’s jobs in the queue. This means a user’s dynamic priority can be different
in every queue.
❖
For host partition fairshare, LSF measures resource consumption for all the
user’s jobs that run on hosts in the host partition. This means a user’s dynamic
priority is the same in every queue that uses hosts in the same partition.
◆
For queue-based fairshare, LSF measures the resource consumption of all jobs in
each queue.
Default dynamic priority formula
By default, LSF calculates dynamic priority according to the following formula:
dynamic priority = number_shares / (cpu_time * CPU_TIME_FACTOR + run_time
* RUN_TIME_FACTOR + (1 + job_slots) * RUN_JOB_FACTOR)
The maximum value of dynamic user priority is 100 times the number of user shares (if
the denominator in the calculation is less than 0.01, LSF rounds up to 0.01).
For cpu_time, run_time, and job_slots, LSF uses the total resource consumption of all
the jobs in the queue or host partition that belong to the user or group.
number_shares
The number of shares assigned to the user.