IP Library Granted Patent US 8,869,164
Granted Patent B2
US 8,869,164 · App. 12/874,558 · Granted Oct 21, 2014

Scheduling a parallel job in a system of virtual containers

Inventors: Norman Bobroff (Katonah, NY); Liana Liyow Fong (Irvington, NY); Yanbin Liu (New Haven, CT); Seetharami R. Seelam (Yorktown Heights, NY)
Assignee: International Business Machines Corporation
G06F9/505G06F2209/504G06F9/5077
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,869,164
App. No.
12/874,558
Granted
Oct 21, 2014
Kind
B2
Abstract

Methods and apparatus are provided for scheduling parallel jobs in a system of virtual containers. At least one parallel job is assigned to a plurality of containers competing for a total capacity of a larger container, wherein the at least one parallel job comprises a plurality of tasks. The assignment method comprises determining a current utilization and a potential free capacity for each of the plurality of competing containers; and assigning the tasks to one of the plurality of containers based on the potential free capacities and at least one predefined scheduling policy. The predefined scheduling policy may comprise, for example, one or more of load balancing, server consolidation, maximizing the current utilizations, minimizing a response time of the parallel job and satisfying quality of service requirements. The load balancing can be achieved, for example, by assigning a task to a container having a highest potential free capacity.

Claims (24)

1. An apparatus for assigning at least one parallel job to a plurality of virtual containers competing for a total capacity of resources for executing one or more tasks of a larger container comprising the plurality of competing virtual containers, wherein the at least one parallel job comprises a plurality of tasks, the apparatus comprising:

a memory; and

at least one processor, coupled to the memory, operative to carry out the following steps:

determine (i) a current utilization of resources for executing the one or more tasks and (ii) a potential free capacity of resources for executing the one or more tasks for each of the plurality of competing virtual containers, wherein:

the potential free capacity of resources for executing the one or more tasks is based on total capacity of resources of the larger container for executing the one or more tasks and a comparison of the current utilization of resources for executing the one or more tasks to a corresponding equilibrium capacity of resources for executing the one or more tasks, wherein said equilibrium capacity comprises:

a computed container-specific capacity of resources for executing the one or more tasks to which the corresponding competing virtual container is entitled within a limit of full contention for resources from all of the plurality of competing virtual containers, wherein said computed container-specific capacity of resources is based on a relative resource weight assigned to each of the plurality of competing virtual containers;

assign a first task of the plurality of tasks of the at least one parallel job to one of the plurality of competing virtual containers based on (i) a ranking of the potential free capacities, (ii) a relationship between (a) the parallelism of the at least one parallel job and one or more underlying physical cores and (b), the mapping of the plurality of competing virtual containers to the one or more underlying physical cores, and (iii) at least one predefined scheduling policy; and

re-determine the potential free capacity of resources for executing, in parallel, one or more tasks of the plurality of tasks of the at least one parallel job for each of the plurality of competing virtual containers, excluding the virtual container to which the first task was assigned, subsequent to said assigning the first task, and repeating said step of assigning for the one or more tasks of the plurality of tasks of the at least one parallel job.

2. The apparatus of claim 1 , wherein the assignment evaluates resource demands of the tasks.

3. The apparatus of claim 1 , wherein the at least one predefined scheduling policy comprises one or more of load balancing, server consolidation, maximizing the current utilizations, minimizing a response time of the parallel job and satisfying quality of service requirements.

4. The apparatus of claim 3 , wherein the assignment performs the load balancing by assigning a task to a container having a highest potential free capacity.

5. The apparatus of claim 1 , wherein the assignment evaluates an impact of a new parallel job on existing one or more existing jobs.

6. The apparatus of claim 1 , wherein the processor is further configured to evaluate concurrent execution requirements of the tasks.

7. An article of manufacture for assigning at least one parallel job to a plurality of virtual containers competing for a total capacity of resources for executing one or more tasks of a larger container comprising the plurality of competing virtual containers, wherein the at least one parallel job comprises a plurality of tasks, the article of manufacture comprising a memory containing one or more programs which when executed implement the steps of:

determining (i) a current utilization of resources for executing the one or more tasks and (ii) a potential free capacity of resources for executing the one or more tasks for each of the plurality of competing virtual containers, wherein:

the potential free capacity of resources for executing the one or more tasks is based on total capacity of resources of the larger container for executing the one or more tasks and a comparison of the current utilization of resources for executing the one or more tasks to a corresponding equilibrium capacity of resources for executing the one or more tasks, wherein said equilibrium capacity comprises:

a computed container-specific capacity of resources for executing the one or more tasks to which the corresponding competing virtual container is entitled within a limit of full contention for resources from all of the plurality of competing virtual containers, wherein said computed container-specific capacity of resources is based on a relative resource weight assigned to each of the plurality of competing virtual containers;

assigning a first task of the plurality of tasks of the at least one parallel job to one of the plurality of competing virtual containers based on (i) a ranking of the potential free capacities, (ii) a relationship between (a) the parallelism of the at least one parallel job and one or more underlying physical cores and (b), the mapping of the plurality of competing virtual containers to the one or more underlying physical cores, and (iii) at least one predefined scheduling policy; and

re-determining the potential free capacity of resources for executing, in parallel, one or more tasks of the plurality of tasks of the at least one parallel job for each of the plurality of competing virtual containers, excluding the virtual container to which the first task was assigned, subsequent to said assigning the first task, and repeating said step of assigning for the one or more tasks of the plurality of tasks of the at least one parallel job.

8. The article of manufacture of claim 7 , wherein the assignment evaluates resource demands of the tasks.

9. The article of manufacture of claim 7 , wherein the at least one predefined scheduling policy comprises one or more of load balancing, server consolidation, maximizing the current utilizations, minimizing a response time of the parallel job and satisfying quality of service requirements.

10. The article of manufacture of claim 9 , wherein the assignment performs the load balancing by assigning a task to a container having a highest potential free capacity.

11. The article of manufacture of claim 7 , wherein the assignment evaluates an impact of a new parallel job on existing one or more existing jobs.

12. The article of manufacture of claim 7 , further comprising the step of evaluating concurrent execution requirements of the tasks.

Assignments (2)
CONFIRMATORY LICENSE Recorded Dec 15, 2010
From: LOS ALAMOS NATIONAL SECURITY
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 025498/0018 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2010
From: BOBROFF, NORMAN; FONG, LIANA LIYOW; LIU, YANBIN; SEELAM, SEETHARAMI R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024931/0606 →
Continuity (1)
Related Publication 20120060171A1 · Mar 8, 2012