IP Library Granted Patent US 11,507,419
Granted Patent B2
US 11,507,419 · App. 16/845,682 · Granted Nov 22, 2022

Method,electronic device and computer program product for scheduling computer resources in a task processing environment

Inventors: Jin Li (Shanghai, CN); Jinpeng Liu (Shanghai, CN); Wuichak Wong (Xiamen, CN)
Assignee: EMC IP Holding Company LLC
G06F9/4881G06F9/5044
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,507,419
App. No.
16/845,682
Granted
Nov 22, 2022
Kind
B2
Abstract

A task scheduling method comprises the steps of: in response to the reception of a request for processing a plurality of task sets, creating a current to-be-scheduled task queue in a task processing system based on priorities of the plurality of task sets and tasks in the plurality of task sets, where a plurality of to-be-scheduled tasks in the current to-be-scheduled task queue are scheduled in the same round of scheduling; allocating computing resources used for scheduling the plurality of to-be-scheduled tasks; and enabling the plurality of to-be-scheduled tasks in the current to-be-scheduled task queue to be scheduled by using the computing resources. In this manner, a plurality of tasks with different priorities and quotas can be scheduled according to SLA levels of users, and the efficiency and flexibility of parallel services of cloud computing deep learning models are improved by using a run-time load-balancing scheduling solution.

Claims (79)

1. A task scheduling method, comprising the steps of:

in response to the reception of a request for processing a plurality of task sets, creating a current to-be-scheduled task queue in a task processing system based on priorities of the plurality of task sets and tasks in the plurality of task sets, wherein the plurality of task sets comprises a first task set having a first priority and a second task set having a second priority, the first priority being greater than the second priority, wherein a plurality of to-be-scheduled tasks in the current to-be-scheduled task queue are scheduled in the same round of scheduling; and

allocating computing resources used for scheduling the plurality of to-be-scheduled tasks in the same round of scheduling;

wherein creating the current to-be-scheduled task queue comprises:

performing multiple executions of a cyclic search of the first and second task sets;

identifying respective tasks of the first and second task sets independent of each other; and

adding the respective tasks of the first and second task sets to the current to-be-scheduled task queue;

wherein allocating computing resources enables the first and second tasks having respective first and second priorities to be scheduled for execution in the same round of scheduling using the computing resources; and

wherein the method is performed by at least one processing platform comprising at least one processing device comprising a processor coupled to a memory.

2. The method according to claim 1 , wherein creating the current to-be-scheduled task queue comprises the steps of:

determining whether an unscheduled historical task exists in the task processing system; and

creating the current to-be-scheduled task queue according to a determination that no to-be-scheduled historical task exists.

3. The method according to claim 2 , further comprising the step of:

scheduling, according to a determination that a to-be-scheduled historical task exists, the historical task before a given task in the plurality of task sets is scheduled.

4. The method according to claim 1 , further comprising the steps of:

determining service levels corresponding to users associated with the plurality of task sets; and

determining the priorities of the plurality of task sets based on the service levels.

5. The method according to claim 1 , wherein creating the current to-be-scheduled task queue further comprises the steps of:

determining a first quantity of tasks in the first task set and a second quantity of tasks in the second task set; and

creating the current to-be-scheduled task queue based on the first priority, the second priority, the first quantity, and the second quantity, to enable a third quantity of tasks in the first task set in the current to-be-scheduled task queue to exceed a fourth quantity of tasks in the second task set.

6. The method according to claim 1 , wherein the task processing system comprises a plurality of special-purpose processing units, and wherein allocating the computing resources comprises the steps of:

determining amounts of computing resources required for the plurality of to-be-scheduled tasks;

determining amounts of idle computing resources of the plurality of special-purpose processing units; and

allocating the computing resources based on the amounts of idle computing resources and the amounts of computing resources required for the plurality of to-be-scheduled tasks.

7. The method according to claim 6 , wherein the plurality of special-purpose processing units at least comprise a first special-purpose processing unit and a second special-purpose processing unit, and wherein allocating the computing resources based on the amounts of idle computing resources and the amounts of computing resources required for the plurality of to-be-scheduled tasks comprises the steps of:

comparing a first amount of idle computing resources of the first special-purpose processing unit with a second amount of idle computing resources of the second special-purpose processing unit;

determining a first to-be-scheduled task from the plurality of to-be-scheduled tasks based on a determination that the first amount of idle computing resources exceeds the second amount of idle computing resources, wherein an amount of computing resources required for the first to-be-scheduled task exceeds a resource amount threshold; and

allocating, from the first amount of idle computing resources, an amount of computing resources used for scheduling the first to-be-scheduled task.

8. The method according to claim 6 , further comprising the steps of:

determining whether the amount of idle computing resources satisfies an amount of computing resources required for a first to-be-scheduled task in the plurality of to-be-scheduled tasks; and

adding the first to-be-scheduled task to a to-be-scheduled task queue in a next round according to a determination that the amount of idle computing resources does not satisfy the amount of computing resources required for the first to-be-scheduled task.

9. An electronic device, comprising:

at least one processing unit; and

at least one memory, coupled to the at least one processing unit and storing an instruction configured to be executed by the at least one processing unit, wherein when executed by the at least one processing unit, the instruction causes the device to perform the following steps:

in response to the reception of a request for processing a plurality of task sets, creating a current to-be-scheduled task queue in a task processing system based on priorities of the plurality of task sets and tasks in the plurality of task sets, wherein the plurality of task sets comprises a first task set having a first priority and a second task set having a second priority, the first priority being greater than the second priority, wherein a plurality of to-be-scheduled tasks in the current to-be-scheduled task queue are scheduled in the same round of scheduling; and

allocating computing resources used for scheduling the plurality of to-be-scheduled tasks in the same round of scheduling;

wherein creating the current to-be-scheduled task queue comprises:

performing multiple executions of a cyclic search of the first and second task sets;

identifying respective tasks of the first and second task sets independent of each other; and

adding the respective tasks of the first and second task sets to the current to-be-scheduled task queue;

wherein allocating computing resources enables the first and second tasks having respective first and second priorities to be scheduled for execution in the same round of scheduling using the computing resources.

10. The device according to claim 9 , wherein creating the current to-be-scheduled task queue comprises:

determining whether an unscheduled historical task exists in the task processing system; and

creating the current to-be-scheduled task queue according to a determination that no to-be-scheduled historical task exists.

11. The device according to claim 10 , further comprising:

scheduling, according to a determination that a to-be-scheduled historical task exists, the historical task before a given task in the plurality of task sets is scheduled.

12. The device according to claim 9 , further comprising:

determining service levels corresponding to users associated with the plurality of task sets; and

determining the priorities of the plurality of task sets based on the service levels.

13. The device according to claim 9 , further comprising:

determining a first quantity of tasks in the first task set and a second quantity of tasks in the second task set; and

creating the current to-be-scheduled task queue based on the first priority, the second priority, the first quantity, and the second quantity, to enable a third quantity of tasks in the first task set in the current to-be-scheduled task queue to exceed a fourth quantity of tasks in the second task set.

14. The device according to claim 9 , wherein the task processing system comprises a plurality of special-purpose processing units, and wherein allocating the computing resources comprises:

determining amounts of computing resources required for the plurality of to-be-scheduled tasks;

determining amounts of idle computing resources of the plurality of special-purpose processing units; and

allocating the computing resources based on the amounts of idle computing resources and the amounts of computing resources required for the plurality of to-be-scheduled tasks.

15. The device according to claim 14 , wherein the plurality of special-purpose processing units at least comprise a first special-purpose processing unit and a second special-purpose processing unit, and the computing resources are allocated based on the amounts of idle computing resources and the amounts of computing resources required for the plurality of to-be-scheduled tasks in the following manner:

comparing a first amount of idle computing resources of the first special-purpose processing unit with a second amount of idle computing resources of the second special-purpose processing unit;

determining a first to-be-scheduled task from the plurality of to-be-scheduled tasks based on a determination that the first amount of idle computing resources exceeds the second amount of idle computing resources, wherein an amount of computing resources required for the first to-be-scheduled task exceeds a resource amount threshold; and

allocating, from the first amount of idle computing resources, an amount of computing resources used for scheduling the first to-be-scheduled task.

16. The device according to claim 14 , further comprising:

determining whether the amount of idle computing resources satisfies an amount of computing resources required for a first to-be-scheduled task in the plurality of to-be-scheduled tasks; and

adding the first to-be-scheduled task to a to-be-scheduled task queue in a next round according to a determination that the amount of idle computing resources does not satisfy the amount of computing resources required for the first to-be-scheduled task.

17. A computer-readable storage medium having a computer program stored thereon, wherein the computer program is executed by a machine to implement steps comprising:

in response to the reception of a request for processing a plurality of task sets, creating a current to-be-scheduled task queue in a task processing system based on priorities of the plurality of task sets and tasks in the plurality of task sets, wherein the plurality of task sets comprises a first task set having a first priority and a second task set having a second priority, the first priority being greater than the second priority, wherein a plurality of to-be-scheduled tasks in the current to-be-scheduled task queue are scheduled in the same round of scheduling; and

allocating computing resources used for scheduling the plurality of to-be-scheduled tasks in the same round of scheduling;

wherein creating the current to-be-scheduled task queue comprises:

performing multiple executions of a cyclic search of the first and second task sets;

identifying respective tasks of the first and second task sets independent of each other; and

adding the respective tasks of the first and second task sets to the current to-be-scheduled task queue;

wherein allocating computing resources enables the first and second tasks having respective first and second priorities to be scheduled for execution in the same round of scheduling using the computing resources.

18. The computer-readable storage medium according to claim 17 , wherein creating the current to-be-scheduled task queue comprises the steps of:

determining whether an unscheduled historical task exists in the task processing system; and

creating the current to-be-scheduled task queue according to a determination that no to-be-scheduled historical task exists.

19. The computer-readable storage medium according to claim 18 , further comprising the step of:

scheduling, according to a determination that a to-be-scheduled historical task exists, the historical task before a given task in the plurality of task sets is scheduled.

20. The computer-readable storage medium according to claim 17 , further comprising the steps of:

determining service levels corresponding to users associated with the plurality of task sets; and

determining the priorities of the plurality of task sets based on the service levels.

Assignments (9)
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 (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 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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2020
From: LI, JIN; LIU, JINPENG; WONG, WUICHAK
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052375/0919 →