×

Method and apparatus for multi-dimensional priority determination for job scheduling

  • US 7,743,378 B1
  • Filed: 05/13/2005
  • Issued: 06/22/2010
  • Est. Priority Date: 05/13/2005
  • Status: Active Grant
First Claim
Patent Images

1. A method for scheduling a plurality of computing jobs during a scheduling event on a computing system comprising a plurality of heterogeneous computing nodes, wherein the plurality of computing jobs comprise a plurality of resource requirements, the method comprising:

  • receiving, by a scheduler of the computing system, the plurality of computing jobs comprising an active job and a pending job, wherein the active job is executing prior to the scheduling event on a first node of the plurality of heterogeneous computing nodes in accordance with an existing schedule, and wherein the pending job has not yet begun execution;

    obtaining a plurality of initial priority values for the plurality of computing jobs;

    identifying a maximum initial priority value and a minimum initial priority value from the plurality of initial priority values;

    calculating a priority component for a first computing job by dividing an initial priority value for the first computing job by a difference between the maximum initial priority value and the minimum initial priority value;

    calculating, based on the plurality of resource requirements, a plurality of urgency values for the plurality of computing jobs;

    identifying a maximum urgency value and a minimum urgency value of the plurality of urgency values;

    calculating an urgency component for the first computing job by dividing an urgency value for the first computing job by a difference between the maximum urgency value and the minimum urgency value;

    calculating a static priority for the first computing job by adding the priority component and the urgency component;

    selecting, after calculating the static priority for the first computing job, the active job from the plurality of computing jobs and scheduling the active job on the first node according to the existing schedule;

    selecting, after placing the active job on the first node according to the existing schedule, the first computing job from the plurality of computing jobs, wherein the static priority of the first computing job exceeds a static priority of a second computing job in the plurality of computing jobs;

    identifying a subset of the plurality of resource requirements corresponding to the first computing job;

    identifying a second node of the plurality of heterogeneous computing nodes having a plurality of resources to satisfy the subset of the plurality of resource requirements corresponding to the first computing job;

    predicting, for the second node, an earliest completion time for the first computing job, taking into account already scheduled jobs on the second node; and

    scheduling execution of the first computing job on the second node based on the earliest completion time.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×