Nova Patents
US20030191795A1

Adaptive scheduling

Claim Score by NHIP

Read claim 31, the broadest

Abstract

The invention provides an off-the-shelf product solution to target the specific needs of commercial users with naturally parallel applications. A top-level, public API provides a simple "compute server" or "task farm" model that dramatically accelerates integration and deployment. A number of described and claimed adaptive scheduling and caching techniques provide for efficient resource and/or network utilization of intermittently-available and interruptible computing resource in distributed computing systems.

US20030191795A1, drawing sheet 1
Sheet 1 of 146

Term

Term ended

Projected expiry passed 8 February 2024, 2.6 years ago.

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

72 claims: 11 independent, 61 dependent

  1. 1
    In a distributed computing system, a method for operating a broker that manages the execution of jobs, each job having one or more associated tasks that can be executed in any order, the method comprising:using the broker to track jobs by maintaining, for each active job, a list of associated: (i) waiting tasks that have not yet been assigned to a processing resource;(ii) pending tasks that have been assigned to at least one processing resource, but have not yet been completed by any processing resource;and (iii) completed tasks that have been completed by at least one processing resource;using the broker to maintain a priority for each active job;in response to an indication from a processing resource that the resource is available to accept task(s), using the broker to (i) select a job and (ii) assign at least one task associated with the selected job to the processing resource;and, in response to an indication from processing resource that the resource a task has completed its execution, using the broker to (i) identify the job with which the completed task is associated and (ii) update the identified job's associated task list(s).
  2. 22
    A method for operating a task broker in a network-based distributed computing system, the method comprising:receiving, from a computational resource, an indication of availability and, in response thereto, either (i) assigning one or more task(s) to the computational resource or (ii) indicating, to the computational resource, a first wait time, after which the computational resource may again indicate its availability to the broker;and, receiving, from a job-submitting resource, an inquiry concerning the completion status of a job and, in response thereto, either (i) indicating, to the job-submitting resource, that the job is complete, or (ii) indicating, to the job-submitting resource, that the job is not yet complete and indicating a second wait time, after which the job-submitting resource may again inquire about the completion status of the job.
  3. 27
    A method for operating a broker that assigns tasks to available processing resources, the method comprising:determining, in response to an indication of availability received from a computing resource, whether the computing resource has an associated discriminator;if an associated discriminator is found, using the discriminator to eliminate from consideration task(s) that do not qualify for assignment to the computing resource;and, if any task(s) that qualify for assignment remain, employing a task assignment strategy to assign one of the qualified task(s) to the computing resource.
  4. 31
    Broadest claimClaim Score 74, broad(NHIP)In a distributed computing system, a method for assigning a task to an available processing resource, the method comprising:determining, for each task awaiting assignment to a processing resource, whether the task has an associated discriminator and, if an associated discriminator is found, using the discriminator to determine whether the task qualifies for assignment to the available processing resource;and, employing a task assignment strategy to select, from among the task(s) that qualify for assignment to the processing resource, a task for assignment to the processing resource.
  5. 35
    In a distributed computing system, a method for minimizing unnecessary data communication, comprising:allowing available processing resources to communicate their availability to a task broker;and, using the task broker to assign tasks to available computing resources;characterized in that at least some of the available processing resources, when communicating their availability to the broker, also communicate information concerning locally-cached data, which information is used by the broker to preferentially assign task(s) to processing resource(s) on which data needed by the task(s) is locally cached.
  6. 38
    In a distributed computing system, a method for assigning tasks to processing resources, comprising:(a) identifying a processing resource available to accept a task;(b) identifying task(s) that may be assigned to the processing resource;(c) determining which of the identified task(s) to assign to the processing resource based on consideration of at least two of: the operating system of the processing resource vs. the operating system requirements of the task;the available memory of the processing resource vs. the memory requirements of the task;the available disk space of the processing resource vs. the disk space requirements of the task;the security features of the processing resource vs. the security requirements of the task;the speed of the processing resource vs. the processing demands of the task;and, the availability of locally-cached data at the processing resource vs. the data set requirements of the task;and, (d) repeating (a)-(c), as needed, to complete assignment of all tasks to one or more processing resources.
  7. 42
    For use in a distributed computing system, a broker that manages the execution of jobs, each job having one or more associated tasks that can be executed in any order, the broker comprising:a tracking module that, for each active job, tracks associated: (i) waiting tasks that have not yet been assigned to a processing resource;(ii) pending tasks that have been assigned to at least one processing resource, but have not yet been completed by any processing resource;and (iii) completed tasks that have been completed by at least one processing resource;and, an adaptive scheduling module that maintains a priority for each active job and, in response to an indication of availability from a processing resource, selects a job and assigns at least one task associated with the selected job to the processing resource.
  8. 56
    For use in a distributed processing system, a broker that (i) receives jobs, comprised of one or more tasks, from customer entities and (ii) manages the execution of the jobs by assigning tasks to processing resources, the broker including:a communication management module that minimizes unnecessary network congestion by communicating pseudo-random wait times to polling customer entities and processing resources, thus preventing the customer entities and/or processing resources from again contacting the broker before expiration of the corresponding pseudo-random wait time.
  9. 58
    A broker, configured to assign tasks to available processing resources in a network-based distributed computing system, the broker comprising:a resource evaluator which, in response to an indication of availability received from a processing resource, determines at least two of the following attributes of the available processing resource: operating system of the processing resource;available memory of the processing resource;available disk space of the processing resource;security features of the processing resource;speed of the processing resource;availability of locally-cached data at the processing resource;typical frequency of local user activity at the processing resource;and, time of most recent local user activity at the processing resource;and, a resource assignor which, in response to an indication of availability received from a processing resource, determines which task to assign to the available processing resource based, at least in part, on at least two of the following attributes of the task: preferred or required operating system for executing the task;preferred or required memory for executing the task;preferred or required disk space for executing the task;preferred or required security features for executing the task;preferred or required processor speed for executing the task;preferred or required availability of locally-cached data at the processing resource;and, preferred or required duration of uninterrupted control of the processing resource while executing the task.
  10. 65
    A discriminator, configured for use by a broker in determining assignments of tasks to available resources, the discriminator embodied on a computer-readable medium, and comprising a numeric function, associated with either a task or a processing resource, which discriminator may be called to return a numeric value computed by combining information concerning at least two of the following:whether the operating system of a particular processing resource is compatible with the operating system requirements of a particular task;whether the memory available at a particular processing resource is sufficient to execute a particular task;whether the disk space available at a particular processing resource is sufficient to execute a particular task;whether the security infrastructure of a particular processing resource is sufficient to meet the security requirements of a particular task;whether the speed of a particular processing resource is sufficient to meet the processing demands of a particular task;whether particular data set or state information needed to execute a particular task is already locally cached at a particular processing resource;and, whether the level of local processing demand at a particular processing resource is sufficiently low to accommodate a particular task.
  11. 69
    A discriminator, configured for use by a broker in determining assignments of tasks to available resources, the discriminator embodied on a computer-readable medium, and comprising a binary function, associated with either a task or a processing resource, which discriminator may be called to return a binary value computed, at least in part, as a product of at least two binary values, each value indicative of one of the following conditions:whether the operating system of a particular processing resource is compatible with the operating system requirements of a particular task;whether the memory available at a particular processing resource is sufficient to execute a particular task;whether the disk space available at a particular processing resource is sufficient to execute a particular task;whether the security infrastructure of a particular processing resource is sufficient to meet the security requirements of a particular task;whether the speed of a particular processing resource is sufficient to meet the processing demands of a particular task;whether particular data set or state information needed to execute a particular task is already locally cached at a particular processing resource;and, whether the level of local processing demand at a particular processing resource is sufficiently low to accommodate a particular task.