Plan-based scheduling limits and prioritization

Plan-based scheduling follows specific limits and prioritization rules for LSF.

Limits and the allocation plan

The planner maintains an allocation plan for jobs into the near future. As a general principle the planner should obey resource constraints and configured limits for each point in time.

For example, if there is a limit configured of 20 jobs for a particular user, then in any plan generated by LSF the number of jobs concurrently running in the plan at any point in time must be 20 or less.

Job prioritization

For jobs without a planned allocation, the jobs are scheduled using the standard LSF job prioritization policies in both the main scheduler (parent mbschd) as well as the planner (child mbschd) process.

As usual, LSF considers jobs for dispatch queue-by-queue. When LSF schedules the jobs in a queue, it will first try to dispatch jobs with planned allocations on their planned. After those jobs are completed, LSF will then enter its standard scheduling flow and will consider jobs without planned allocations.

For two jobs with a planned allocation and within the same queue, LSF orders them by rank. The rank of a planned allocation indicates the order in which it was created, relative to other planned allocations from the same queue.

When a new planned allocation is created by the planner, it is assigned a rank larger than all other planned allocations from the same queue. The rank of a particular planned allocation can change from plan to plan, but the relative orders between pairs is preserved.

The rank of a job’s future allocation can be viewed using the bjobs –l command.