US10223165B2

Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment

Summary by NHIP

Dynamic Batch Job Scheduling

The method schedules batch jobs in a high-performance computing system using a skip count parameter. Execution occurs only when assigned capacity fits available resources and the skip count reaches a predetermined threshold, after which the parameter resets for the next job.

Claim Score by NHIP

Read claim 11, the broadest

Abstract

Systems and methods are provided for scheduling homogeneous workloads including batch jobs, and heterogeneous workloads including batch and dedicated jobs, with run-time elasticity wherein resource requirements for a given job can change during run-time execution of the job.

US10223165B2, drawing sheet 1
Sheet 1 of 21

Term

Projected expiry 20 July 2033.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Projected expiry

19 claims: 3 independent, 16 dependent

  1. 1
    A method, comprising:maintaining a batch jobs queue to temporarily store batch jobs received by a HPC (high-performance computing) system, wherein the batch jobs are ordered according an order of arrival;setting a skip count parameter to an initial value for a current batch job in the batch jobs queue which is deemed a head batch job based on the order of arrival of the batch jobs, wherein the skip count parameter for the head batch job is incremented each time the head batch job is skipped and not scheduled for execution by the HPC system, and wherein no skip count parameter is maintained for a non-head batch job in the batch jobs queue;performing a scheduling process cycle at a given time to schedule one or more batch jobs pending in the batch jobs queue for execution by the HPC system, wherein performing the scheduling process cycle comprises: determining an available processor capacity of the HPC system at the given time;determining an assigned processor capacity for executing the head batch job in the batch jobs queue;determining a number of previous scheduling process cycles that the head batch job was skipped and not scheduled for execution by the HPC system based on a current value of the skip count parameter for the head batch job;scheduling the head batch job for execution by the HPC system at the given time when (i) the assigned processor capacity for executing the head batch job is less than or equal to the available processor capacity of the HPC system and (ii) the number of previous scheduling process cycles that the head batch job was skipped and not scheduled for execution by the HPC system reaches a predetermined skip count threshold, and setting the skip count parameter to an initial value for another batch job in the batch jobs queue which is deemed to be a new head batch job in the batch jobs queue;skipping a scheduling of the head batch job for execution by the HPC system at the given time when (i) the assigned processor capacity for executing the head batch job is less than or equal to the available processor capacity of the HPC system, (ii) the number of previous scheduling process cycles that the head batch job was skipped and not scheduled for execution by the HPC system is less than the predetermined skip count threshold, and (iii) a set of one or more batch jobs exists in the batch jobs queue which can be scheduled for execution at the given time to maximize utilization of the processor capacity of the HPC system without scheduling execution of the head batch job;andscheduling a future time for executing the head batch job by the HPC system when the assigned processor capacity for executing the head batch job exceeds the available processor capacity of the HPC system.
  2. 11
    Broadest claimClaim Score 19, narrow(NHIP)A method, comprising:maintaining a batch jobs queue to temporarily store batch jobs received by a HPC (high-performance computing) system;maintaining a dedicated jobs queue to temporarily store dedicated jobs received by the HPC system;performing a scheduling process cycle at a given time to schedule one or more batch jobs pending in the batch jobs queue and one or more dedicated jobs in the dedicated jobs queue for execution by the HPC system, wherein performing the scheduling process cycle comprises:determining an available processor capacity of the HPC system at the given time;when (i) the HPC system is determined to have available processor capacity, (ii) the batch jobs queue and the dedicated jobs queue are not empty, and (iii) a number of previous scheduling process cycles that a head batch job in the batch jobs queue was skipped and not scheduled for execution by the HPC system is less than a predetermined skip count threshold, then: determining if a specified start time of a head dedicated job in the dedicated jobs queue is less than or equal to the given time;andmoving the head dedicated job from the dedicated jobs queue to a head position in the batch jobs queue, when the specified start time of the head dedicated job in the dedicated jobs queue is determined to be less than or equal to the given time;andwhen (i) the HPC system is determined to have available processor capacity, (ii) the batch jobs queue and the dedicated jobs queue are not empty, and (iii) a number of previous scheduling process cycles that the head batch job in the batch jobs queue was skipped and not scheduled for execution by the HPC system meets the predetermined skip count threshold, then: removing the head batch job from the batch jobs queue;adding the head batch job to a list of active jobs;andexecuting the head batch job;wherein performing the scheduling process cycle further comprises:when (i) there is no available processor capacity in the HPC system or when there are no pending batch jobs in the batch jobs queue, and when (ii) the dedicated jobs queue is not empty, then: determining if the specified start time of a head dedicated job in the dedicated jobs queue is less than or equal to the given time;andmoving the head dedicated job from the dedicated jobs queue to a head position in the batch jobs queue, when the specified start time of the head dedicated job in the dedicated jobs queue is determined to be less than or equal to the given time;andending the scheduling cycle if the specified start time of the head dedicated job in the dedicated jobs queue is determined to be not less than or equal to the given time.
  3. 17
    A method, comprising:maintaining a batch jobs queue to temporarily store batch jobs received by a HPC (high-performance computing) system;maintaining a dedicated jobs queue to temporarily store dedicated jobs received by the HPC system;performing a scheduling process cycle at a given time to schedule one or more batch jobs pending in the batch jobs queue and one or more dedicated jobs in the dedicated jobs queue for execution by the HPC system, wherein performing the scheduling process cycle comprises:determining an available processor capacity of the HPC system at the given time;when (i) the HPC system is determined to have available processor capacity, (ii) the batch jobs queue and the dedicated jobs queue are not empty, and (iii) a number of previous scheduling process cycles that a head batch job in the batch jobs queue was skipped and not scheduled for execution by the HPC system is less than a predetermined skip count threshold, then: determining if a specified start time of a head dedicated job in the dedicated jobs queue is less than or equal to the given time;andmoving the head dedicated job from the dedicated jobs queue to a head position in the batch jobs queue, when the specified start time of the head dedicated job in the dedicated jobs queue is determined to be less than or equal to the given time;andwhen (i) the HPC system is determined to have available processor capacity, (ii) the batch jobs queue and the dedicated jobs queue are not empty, and (iii) a number of previous scheduling process cycles that the head batch job in the batch jobs queue was skipped and not scheduled for execution by the HPC system meets the predetermined skip count threshold, then: removing the head batch job from the batch jobs queue;adding the head batch job to a list of active jobs;andexecuting the head batch job;wherein performing the scheduling process cycle further comprises:when there is available processor capacity of the HPC system, and when the batch jobs queue is not empty and the dedicated jobs queue is empty, then: determining an assigned processor capacity for executing a head batch job in the batch jobs queue;determining a number of previous scheduling process cycles that the head batch job was skipped and not scheduled for execution by the HPC system;andscheduling the head batch job for execution by the HPC system at the given time when (i) the assigned processor capacity for executing the head batch job is less than or equal to the available processor capacity of the HPC system and (ii) the number of previous scheduling process cycles that the head batch job was skipped and not scheduled for execution by the HPC system reaches a predetermined skip count threshold.