IP Library Granted Patent US 11,513,841
Granted Patent B2
US 11,513,841 · App. 16/516,298 · Granted Nov 29, 2022

Method and system for scheduling tasks in a computing system

Inventor: Venkata L R Ippatapu (Westborough, MA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F9/4881G06F8/443G06F9/5038
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 11,513,841
App. No.
16/516,298
Granted
Nov 29, 2022
Kind
B2
Abstract

In general, embodiments of the invention relate to a method and computing system for scheduling tasks (functions or routines) dynamically from Input/Output (I/O) operations that may be received from a client. The scheduling or ordering of the tasks play an important role in the overall latency of the execution of IO operations, as each task may consume significant amount of computing resources.

Claims (56)

1. A method for scheduling tasks, the method comprising:

receiving, by a computing system, an Input/Output (I/O) operation from a client;

identifying a plurality of tasks associated with the I/O operation;

identifying dependencies for each of the plurality of tasks;

creating a directed graph of the tasks using the identified dependencies;

assigning a first set of edge weights to each task of the plurality of tasks based on the identified dependencies, wherein at least one edge weight of the first set of edge weights is non-zero;

ordering the tasks based on the first set of edge weights to obtain a task order;

selecting a highest order task based on the task order, wherein the highest ordered task does not have a zero-edge weight;

executing the highest ordered task;

updating, dynamically, based on an execution of the highest order task, the first set of edge weights for remaining tasks to obtain an updated task order;

selecting a highest order task from the updated task order;

executing the highest ordered task from the updated task order, wherein tasks with a zero-edge weight are not executed; and

updating, dynamically, based on an execution of the highest order task from the updated task order, a second set of edge weights for remaining tasks in updated task order to obtain a second updated task order, wherein at least one of the first set of edge weights is modified after the execution of the highest ordered task, and wherein the task dependencies are generated by a compiler during compile-time.

2. The method of claim 1 ,

wherein the task dependencies are specified using a directed graph comprising a plurality of edges; and

wherein each of a first set of edges in the directed graph is associated with one of the first set of edge weights.

3. The method of claim 1 , wherein each at least portion of the task dependencies are specified using a directed graph.

4. The method of claim 3 , wherein the task order is determined using a depth-first search, performed on the directed graph.

5. A non-transitory computer readable medium (CRM) storing instructions for scheduling tasks, the instructions comprising functionality for:

receiving, by a computing system, an Input/Output (I/O) operation from a client;

identifying a plurality of tasks associated with the I/O operation;

identifying dependencies for each of the plurality of tasks;

creating a directed graph of the tasks using the identified dependencies;

assigning a first set of edge weights to each task of the plurality of tasks based on the identified task dependencies, wherein at least one edge weight of the first set of edge weights is non-zero;

ordering the tasks based on the first set of edge weights to obtain a task order;

selecting a highest order task based on the task order, wherein the highest ordered task does not have a zero-edge weight;

executing the highest ordered task;

updating, dynamically, based on an execution of the highest order task, the first set of edge weights for remaining tasks to obtain an updated task order;

selecting a highest order task from the updated task order;

executing the highest ordered task from the updated task order, wherein tasks with a zero-edge weight are not executed; and

updating, dynamically, based on an execution of the highest order task from the updated task order, a second set of edge weights for remaining tasks in updated task order to obtain a second updated task order, wherein at least one of the first set of edge weights is modified after the execution of the highest ordered task, and wherein the task dependencies are generated by a compiler during compile-time.

6. The CRM of claim 5 , wherein the task dependencies are specified using a directed graph comprising a plurality of edges; and wherein each of a first set of edges in the directed graph is associated with one of the first set of edge weights.

7. The CRM of claim 5 , wherein each of the task dependencies are specified using a directed graph.

8. The CRM of claim 7 , wherein the task order is determined using a depth-first search, performed on the directed graph.

9. A computing system, comprising:

a processor;

a scheduler; and

wherein the scheduler, when executed by the processor, enables the scheduler to perform a method, the method comprising:

receiving, by a computing system, an Input/Output (I/O) operation from a client;

identifying a plurality of tasks associated with the I/O operation;

identifying dependencies for each of the plurality of tasks;

creating a directed graph of the tasks using the identified dependencies;

assigning a first set of edge weights to each task of the plurality of tasks based on the identified task dependencies, wherein at least one edge weight of the first set of edge weights is non-zero;

ordering the tasks based on the first set of edge weights to obtain a task order;

selecting a highest order task based on the task order, wherein the highest ordered task does not have a zero-edge weight;

executing the highest ordered task;

updating, dynamically, based on an execution of the highest order task, the first set of edge weights for remaining tasks to obtain an updated task order;

selecting a highest order task from the updated task order;

executing the highest ordered task from the updated task order, wherein tasks with a zero-edge weight are not executed; and

updating, dynamically, based on an execution of the highest order task from the updated task order, a second set of edge weights for remaining tasks in updated task order to obtain a second updated task order,

wherein at least one of the first set of edge weights is modified after the execution of the highest ordered task, and

wherein the task dependencies are generated by a compiler during compile-time.

10. The computing system of claim 9 ,

wherein the task dependencies are specified using a directed graph comprising a plurality of edges; and

wherein each of a first set of edges in the directed graph is associated with one of the first set of edge weights.

11. The computing system of claim 9 , wherein each of the task dependencies are specified using a directed graph.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2019
From: IPPATAPU, VENKATA L.R.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049866/0625 →
Continuity (1)
Related Publication 20210019178A1 · Jan 21, 2021