IP Library Granted Patent US 10,089,140
Granted Patent B2
US 10,089,140 · App. 15/584,231 · Granted Oct 2, 2018

Dynamically adaptive, resource aware system and method for scheduling

Inventors: Shekhar Gupta (Mountain View, CA); Christian Fritz (Menlo Park, CA); Johan de Kleer (Los Altos, CA)
Assignee: PALO ALTO RESEARCH CENTER INCORPORATED
G06F9/48G06F9/46G06F9/4806G06F9/4843G06F9/4881G06F9/50G06F9/505G06F9/5005G06F9/5011G06F9/5016G06F9/5022G06F9/5027G06F9/5038G06F9/5044G06F9/5055G06F9/5061G06F9/5072
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 10,089,140
App. No.
15/584,231
Granted
Oct 2, 2018
Kind
B2
Abstract

The following relates generally to computer system efficiency improvements. Broadly, systems and methods are disclosed that improve efficiency in a cluster of nodes by efficient processing of tasks among nodes in the cluster of nodes. Assignment of tasks to compute nodes may be based on learned CPU capabilities and I/O bandwidth capabilities of the compute nodes in the cluster.

Claims (35)

1. A system for scheduling jobs, said system comprising:

a plurality of interconnected compute nodes defining a cluster of compute nodes, the cluster including a NameNode and a multitude of DataNodes;

the NameNode including at least one processor programmed to:

learn central processing unit (CPU) capabilities and disk input/output (I/O) bandwidth capabilities of compute nodes in the cluster;

determine an optimal number of containers for each application running on each DataNode of the multitude of DataNodes; and

schedule execution of a plurality of tasks on compute nodes of the cluster based on: (i) the learned CPU capabilities and I/O bandwidth capabilities of compute nodes of the cluster, and (ii) at least one of the determined optimal number of containers;

wherein the at least one processor is further programmed to schedule the execution of the plurality of tasks on compute nodes by:

computing a current under-allocation for an application;

and

comparing the current under-allocation to a determined optimal number of containers;

wherein the at least one processor is further programmed to:

determine the optimal number of containers so as to maximize throughput; and

calculate the throughout based on a normalized number of completed map tasks, wherein the normalization is done based on sizes of the map tasks.

2. The system of claim 1 , wherein the at least one processor is further programmed to schedule the execution of the plurality of tasks on compute nodes of the cluster further based on each of the determined optimal number of containers.

3. The system of claim 1 , wherein the at least one processor is further programmed to determine the optimal number of containers using an argmax equation.

4. The system of claim 1 , wherein the at least one processor is further programmed to schedule the execution of the plurality of tasks on compute nodes by:

not considering task combinations that would oversubscribe memory of a compute node of the cluster.

5. The system of claim 4 , wherein the at least one processor is further programmed to schedule the execution of the plurality of tasks on compute nodes by:

validating that the memory of the compute node of the cluster is not oversubscribed by monitoring memory used by each compute node.

6. A method for scheduling jobs in a cluster of compute nodes including a NameNode and a multitude of DataNodes, said method comprising:

learning central processing unit (CPU) capabilities and disk input/output (I/O) bandwidth capabilities of compute nodes in the cluster;

determining an optimal number of containers for each application running on each DataNode of the multitude of DataNodes; and

scheduling execution of a plurality of tasks on compute nodes of the cluster based on: (i) the learned CPU capabilities and I/O bandwidth capabilities of compute nodes of the cluster, and (ii) at least one of the determined optimal number of containers;

wherein the scheduling further comprises:

computing a current under-allocation for an application; and

comparing the current under-allocation to a determined optimal number of containers;

wherein the method further comprises:

determining the optimal number of containers so as to maximize throughput; and

calculating the throughput based on a normalized number of completed map tasks, wherein the normalization is done based on sizes of the map tasks.

7. The method of claim 6 , wherein the scheduling is further based on each of the determined optimal number of containers.

8. The method of claim 6 , wherein the determining further comprises determining the optimal number of containers using an argmax equation.

9. The method of claim 6 , wherein the scheduling further comprises:

not considering task combinations that would oversubscribe memory of a compute node of the cluster.

10. The method of claim 9 , wherein the scheduling further comprises:

validating that the memory of the compute node of the cluster is not oversubscribed by monitoring memory used by each compute node.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2025
From: XEROX CORPORATION
To: GENESEE VALLEY INNOVATIONS, LLC
Reel/Frame 073842/0479 →
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT RF 064760/0389 Recorded Feb 13, 2024
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: XEROX CORPORATION
Reel/Frame 068261/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064161/0001 →
SECURITY INTEREST Recorded Jun 22, 2023
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064760/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064038/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2017
From: GUPTA, SHEKHAR; FRITZ, CHRISTIAN; DE KLEER, JOHAN
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 042207/0982 →
Continuity (2)
Continuation 14797547 · Jul 13, 2015
Related Publication 20170235601A1 · Aug 17, 2017
Cited By (1)
US 12,693,900