IP Library Granted Patent US 11,416,289
Granted Patent B2
US 11,416,289 · App. 16/823,445 · Granted Aug 16, 2022

Task scheduling method, electronic device, and computer storage medium

Inventors: Jinpeng Liu (Shanghai, CN); Jin Li (Shanghai, CN); Pengfei Wu (Shanghai, CN); Zhen Jia (Shanghai, CN)
Assignee: EMC IP Holding Company LLC
G06F9/4881G06F9/48G06F9/485G06F9/4806G06F9/4843G06F9/50G06F9/5005G06F9/5027G06F9/52G06N3/08
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,416,289
App. No.
16/823,445
Granted
Aug 16, 2022
Kind
B2
Abstract

A method includes: if it is determined that a currently available resource of a task processing system cannot satisfy a resource requirement of a to-be-executed current task set of a plurality of task sets, scheduling, for execution, one or more tasks in the current task set that can be supported by the currently available resource; creating, based on one or more tasks that have not been scheduled in the current task set, a to-be-scheduled task set for a next round of scheduling; determining, in a next task set of the plurality of task sets that follows the current task set, a subset of tasks that are independent of the one or more tasks in the to-be-scheduled task set, where the next task set is dependent at least in part on the current task set; and moving the subset from the next task set into the to-be-scheduled task set.

Claims (56)

1. A task scheduling method, comprising:

in response to determining that a currently available resource of a task processing system cannot satisfy a resource requirement of a to-be-executed current task set of a plurality of task sets, scheduling, for execution, one or more tasks in the current task set that can be supported by the currently available resource, wherein tasks in each task set are independent of each other;

executing the one or more tasks in the current task set that can be supported by the one or more currently available resources in a first round of execution;

creating, based on one or more tasks that have not been scheduled in the current task set, a to-be-scheduled task set for a next round of scheduling;

determining, in a next task set of the plurality of task sets that follows the current task set, a subset of tasks comprising one or more tasks that are independent of the one or more tasks in the to-be-scheduled task set, wherein the next task set is dependent at least in part on the current task set;

moving the subset from the next task set into the to-be-scheduled task set; and

executing the one or more tasks of the to-be scheduled task set and the one or more tasks of the moved subset in the next task set in a second round of execution;

wherein moving the subset from the next task set into the to-be-scheduled task set comprises:

adding the subset to the to-be-scheduled task set; and

deleting the subset from the next task set.

2. The method according to claim 1 , wherein each task set comprises parallel tasks of a neural network model.

3. The method according to claim 2 , wherein the plurality of task sets are generated based on a computation graph, and the computation graph is generated by compiling the neural network model.

4. The method according to claim 3 , wherein a resource required for executing the parallel tasks is obtained by virtually compiling the computation graph.

5. The method according to claim 1 , further comprising:

determining, based on a resource required for executing tasks in the current task set, whether the currently available resource can satisfy the resource requirement of the current task set.

6. The method according to claim 1 , further comprising:

determining the currently available resource based on at least one of a computing resource and a storage resource that are currently available to the task processing system.

7. The method according to claim 1 , wherein the task processing system comprises a plurality of dedicated resources, wherein the one or more tasks in the to-be scheduled task set and the one or more tasks of the moved subset in the next task set are executed by another available resource of the task processing system.

8. An electronic device, comprising:

at least one processing unit; and

at least one memory, wherein the at least one memory is coupled to the at least one processing unit and stores instructions to be executed by the at least one processing unit, and when the instructions are executed by the at least one processing unit, the device is caused to execute the following steps:

in response to determining that a currently available resource of a task processing system cannot satisfy a resource requirement of a to-be-executed current task set of a plurality of task sets, scheduling, for execution, one or more tasks in the current task set that can be supported by the currently available resource, wherein tasks in each task set are independent of each other;

executing the one or more tasks in the current task set that can be supported by the one or more currently available resources in a first round of execution;

creating, based on one or more tasks that have not been scheduled in the current task set, a to-be-scheduled task set for a next round of scheduling;

determining, in a next task set of the plurality of task sets that follows the current task set, a subset of tasks comprising one or more tasks that are independent of the one or more tasks in the to-be-scheduled task set, wherein the next task set is dependent at least in part on the current task set;

moving the subset from the next task set into the to-be-scheduled task set; and

executing the one or more tasks of the to-be scheduled task set and the one or more tasks of the moved subset in the next task set in a second round of execution;

wherein moving the subset from the next task set into the to-be-scheduled task set comprises:

adding the subset to the to-be-scheduled task set; and

deleting the subset from the next task set.

9. The electronic device according to claim 8 , wherein each task set comprises parallel tasks of a neural network model.

10. The electronic device according to claim 9 , wherein the plurality of task sets are generated based on a computation graph, and the computation graph is generated by compiling the neural network model.

11. The electronic device according to claim 10 , wherein a resource required for executing the parallel tasks is obtained by virtually compiling the computation graph.

12. The electronic device according to claim 8 , wherein the device is further caused to execute the following steps:

determining, based on a resource required for executing tasks in the current task set, whether the currently available resource can satisfy the resource requirement of the current task set.

13. The electronic device according to claim 8 , wherein the device is further caused to execute the following steps:

determining the currently available resource based on at least one of a computing resource and a storage resource that are currently available to the task processing system.

14. The electronic device according to claim 8 , wherein the device is further caused to execute the following step:

execute, with another available resource of a plurality of dedicated resources of the task processing system, the one or more tasks in the to-be scheduled task set and the one or more tasks of the moved subset in the next task set.

15. A computer program product which is tangibly stored on a non-volatile computer readable medium and comprises machine-executable instructions which, when executed, causing a device to:

in response to determining that a currently available resource of a task processing system cannot satisfy a resource requirement of a to-be-executed current task set of a plurality of task sets, scheduling, for execution, one or more tasks in the current task set that can be supported by the currently available resource, wherein tasks in each task set are independent of each other;

execute the one or more tasks in the current task set that can be supported by the one or more currently available resources in a first round of execution;

create, based on one or more tasks that have not been scheduled in the current task set, a to-be-scheduled task set for a next round of scheduling;

determine, in a next task set of the plurality of task sets that follows the current task set, a subset of tasks comprising one or more tasks that are independent of the one or more tasks in the to-be-scheduled task set, wherein the next task set is dependent at least in part on the current task set;

move the subset from the next task set into the to-be-scheduled task set; and

execute the one or more tasks of the to-be scheduled task set and the one or more tasks of the moved subset in the next task set in a second round of execution;

wherein moving the subset from the next task set into the to-be-scheduled task set comprises:

adding the subset to the to-be-scheduled task set; and

deleting the subset from the next task set.

16. The computer program product according to claim 15 , wherein each task set comprises parallel tasks of a neural network model.

17. The computer program product according to claim 16 , wherein the plurality of task sets are generated based on a computation graph, and the computation graph is generated by compiling the neural network model.

18. The computer program product according to claim 17 , wherein a resource required for executing the parallel tasks is obtained by virtually compiling the computation graph.

19. The computer program product according to claim 15 , wherein the device is further caused to execute the following step:

determining, based on a resource required for executing tasks in the current task set, whether the currently available resource can satisfy the resource requirement of the current task set.

20. The computer program product according to claim 15 , wherein the device is further caused to execute the following step:

determining the currently available resource based on at least one of a computing resource and a storage resource that are currently available to the task processing system.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
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 (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 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
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 May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2020
From: LIU, JINPENG; LI, JIN; WU, PENGFEI; JIA, ZHEN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052261/0588 →
Priority Claims (1)
CN 202010077759.5 · Jan 31, 2020 · national
Continuity (1)
Related Publication 20210240525A1 · Aug 5, 2021
Cited By (1)
US 12,493,785