How are job priorities within a queue determined?
All public queues on Odyssey employ ‘Fairshare’ queueing, in which a job’s priority within a queue is calculated as follows:
dynamic priority = number_shares / (cpu_time*CPU_TIME_FACTOR + run_time*RUN_TIME_FACTOR + (1 + job_slots)*RUN_JOB_FACTOR)
cpu_time
The cumulative CPU time used by the user (measured in hours). LSF calculates the cumulative CPU time using the actual (not normalized) CPU time and a decay factor such that 1 hour of recently used CPU time decays to 0.1 hours after an interval of time specified by HIST_HOURS.
run_time
The total run time of running jobs (measured in hours).
job_slots
The number of job slots (processors) reserved and in use.
At the moment, CPU_TIME_FACTOR=RUN_TIME_FACTOR=0.7 and RUN_JOB_FACTOR=3
number_shares is the same for all users.
On Odyssey, HIST_HOURS is set to 48 hours.
