Adaptive scheduling
AssigneeDataSynapse, Inc.
InventorsJames Bernardin, Peter Lee, James Lewis
Life of this patent
Estimating the term…
Loading patent…
AssigneeDataSynapse, Inc.
InventorsJames Bernardin, Peter Lee, James Lewis
Estimating the term…
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.
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:
A method for operating a task broker in a network-based distributed computing system, the method comprising:
A method for operating a broker that assigns tasks to available processing resources, the method comprising:
In a distributed computing system, a method for assigning a task to an available processing resource, the method comprising:
In a distributed computing system, a method for minimizing unnecessary data communication, comprising:
In a distributed computing system, a method for assigning tasks to processing resources, comprising:
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:
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 broker, configured to assign tasks to available processing resources in a network-based distributed computing system, the broker comprising:
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:
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:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Backward citations are indexed for grants only.
The present invention relates generally to the field of high-performance computing (“HPC”); more specifically, to systems and techniques for distributed and/or parallel processing; and still more specifically, to novel adaptive scheduling techniques for use in distributed computing systems.
HPC has long been a focus of both academic research and commercial development, and the field presents a bewildering array of standards, products, tools, and consortia. Any attempt at comparative analysis is complicated by the fact that many of these interrelate not as mutually exclusive alternatives, but as complementary component or overlapping standards.
Probably the most familiar, and certainly the oldest, approach is based on dedicated supercomputing hardware. The earliest supercomputers included vector-based array processors, whose defining feature was the capability to perform numerical operations on very large data arrays, and other SIMD (Single-Instruction, Multiple-Data) architectures, which essentially performed an identical sequence of instructions on multiple datasets simultaneously. More recently, multiple-instruction architectures, and especially SMPs (Symmetric Multi-Processors), have tended to predominate, although the most powerful supercomputers generally combine features of both.
The present invention will be best appreciated by reference to the following set of figures (to be considered in combination with the associated detailed description) in which:
FIGS. 1-2 depict data flows in the preferred LiveCluster embodiment of the invention;
FIGS. 3-12 are code samples from the preferred LiveCluster embodiment of the invention;
What follows is a rough glossary of terms used in describing the preferred LiveCluster implementation of the invention. 1 Broker A subcomponent of a Server that is responsible for maintaining a “job space,” for managing Jobs and Tasks and the associated interactions with Drivers and Engines. Daemon A process in Unix that runs in the background and performs specific actions or runs a server with little or no direct interaction. In Windows NT or Windows 2000, these are also called Services. Director A subcomponent of a Server that is responsible for routing Drivers and Engines to Brokers, Driver The component used to maintain a connection between the LiveCluster Server and the client application. Engine The component that actually handles the work of computation, accepting work from and returning results to a Broker. Failover Broker A Broker configured to take on work when another Broker fails. The Failover Broker will continue to accept Jobs until another Broker is functioning again, and then it will wait for any remaining Jobs to finish before returning to a wait state. Job A unit of work submitted from a Driver to a Server. Servers break apart Jobs into Tasks for further computation. LiveCluster LiveCluster provides a flexible platform for distributing large computations to idle, underutilized and/or dedicated processors on any network. The LiveCluster architecture includes a Driver, one or more Servers, and several Engines. Server The component of the LiveCluster tm system that takes work from Drivers, coordinates it with Engines, and supports Web-based administrative tools. A Server typically contains a Driver and a Broker. Task An atomic unit of work. Jobs are broken into Tasks and then distributed to Engines for computation. Standalone A Server that has been configured with a Broker, Broker but no Director; its configured primary and secondary Directors are both in other Servers. Service A program in Windows NT or Windows 2000 that performs specific functions to support other programs. In Unix, these are also called daemons. How LiveCluster Works
LiveCluster supports a simple but powerful model for distributed parallel processing. The basic configuration incorporates three major components—Drivers, Servers, and Engines. Generally speaking, the LiveCluster model works as follows:
A. Client applications (via Drivers) submit messages with work requests to a central Server.
The resource being a machine, e.g. CPUs, Servers, Terminals: considering the load
Indexing scheme relating to G06F9/50: resource availability
Computing and data processing
Term end not estimated