IP Library Granted Patent US 11,086,668
Granted Patent B2
US 11,086,668 · App. 16/441,459 · Granted Aug 10, 2021

Method, electronic device and computer program product for processing task

Inventors: Wei Cui (Beijing, CN); Kun Wang (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F9/4881G06F9/50
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,086,668
App. No.
16/441,459
Granted
Aug 10, 2021
Kind
B2
Abstract

Embodiments of the present disclosure provide a method, an electronic device and a computer program product for processing a task. The method comprises: obtaining a first group of processing results generated from processing, by a first group of processing resources of a first device, a first group of sub-tasks in the task; performing a first AllReduce operation on the first group of processing results to obtain a first AllReduce result; obtaining a second AllReduce result from a second device, the second AllReduce result being obtained by performing a second AllReduce operation on a second group of processing results generated from processing, by a second group of processing resources of the second device, a second group of sub-tasks in the task; and performing a third AllReduce operation on the first AllReduce result and the second AllReduce result to obtain a processing result of the task.

Claims (75)

1. A method of processing a task, comprising:

initiating, at an application of a user device, a task for processing, the task being divided into a plurality of sub-tasks;

responsive to each sub-task of the plurality of sub-tasks being assigned to a respective processing resource of a corresponding group of processing resources of the user device,

receiving, at a first group of processing resources of a first device from one or more respective processing resources of the corresponding group of processing resources of the user device, a first group of sub-tasks in the task;

receiving, at a second group of processing resources of a second device from one or more other respective processing resources of the corresponding group of processing resources of the user device, a second group of sub-tasks in the task; and

receiving, at a third group of processing resources of a third device from one or more remaining respective processing resources of the corresponding group of processing resources of the user device, a third group of sub-tasks in the task;

obtaining a first group of processing results generated from processing, by the first group of processing resources of the first device, the first group of sub-tasks in the task;

performing, by the first device, a first reduce operation to aggregate the first group of processing results to obtain a first reduce result;

obtaining a second reduce result from the second device, the second reduce result being obtained by performing a second reduce operation to aggregate a second group of processing results generated from processing, by the second group of processing resources of the second device, the second group of sub-tasks in the task;

obtaining at least one processing result generated from processing, by at least one processing resource of the third group of processing resources of the third device, the third group of sub-tasks in the task;

performing a third reduce operation on the first reduce result, the second reduce result, and the processing result of the at least one processing resource of the third group of processing resources of the third device, to obtain a processing result of the task; and

providing the processing result of the task to one or more processing resources of at least one of the first group of processing resources of the first device, the second group of processing resources of the second device and the third group of processing resources of the third device for further processing;

wherein each of the processing resources in the group of processing resources of the user device has a one-to-one correspondence with a respective processing resource in the processing resources of the first group of processing resources of the first device, the second group of processing resources of the second device and the third group of processing resources of the third device.

2. The method of claim 1 , wherein the first reduce operation, the second reduce operation and the third reduce operation comprise a first AllReduce operation, a second AllReduce operation and a third AllReduce operation, respectively, and are of a same type.

3. The method of claim 1 , wherein the first reduce operation, the second reduce operation and the third reduce operation comprise at least one of the following types of operations:

summation,

averaging,

taking a maximum value, and

taking a minimum value.

4. The method of claim 1 , wherein the processing resources comprise dedicated processing resources.

5. The method of claim 4 , wherein the dedicated processing resources comprise at least one of a graphics processing unit (GPU), a field programmable gate array (FPGA) and an artificial intelligence processor (AI processor).

6. The method of claim 1 , further comprising:

providing the processing result of the task to the first group of processing resources of the first device.

7. An electronic device, comprising:

a processor; and

a memory storing computer program instructions, the processor executing the computer program instructions in the memory to control the device to perform actions comprising:

initiating, at an application of a user device, a task for processing, the task being divided into a plurality of sub-tasks;

responsive to each sub-task of the plurality of sub-tasks being assigned to a respective processing resource of a corresponding group of processing resources of the user device,

receiving, at a first group of processing resources of a first device from one or more respective processing resources of the corresponding group of processing resources of the user device, a first group of sub-tasks in the task;

receiving, at a second group of processing resources of a second device from one or more other respective processing resources of the corresponding group of processing resources of the user device, a second group of sub-tasks in the task; and

receiving, at a third group of processing resources of a third device from one or more remaining respective processing resources of the corresponding group of processing resources of the user device, a third group of sub-tasks in the task;

obtaining a first group of processing results generated from processing, by the first group of processing resources of the first device, the first group of sub-tasks in the task;

performing, by the first device, a first reduce operation to aggregate the first group of processing results to obtain a first reduce result;

obtaining a second reduce result from the second device, the second reduce result being obtained by performing a second reduce operation to aggregate a second group of processing results generated from processing, by the second group of processing resources of the second device, the second group of sub-tasks in the task;

obtaining at least one processing result generated from processing, by at least one processing resource of the third group of processing resources of the third device, the third group of sub-tasks in the task;

performing a third reduce operation on the first reduce result, the second reduce result, and the processing result of the at least one processing resource of the third group of processing resources of the third device, to obtain a processing result of the task; and

providing the processing result of the task to one or more processing resources of at least one of the first group of processing resources of the first device, the second group of processing resources of the second device and the third group of processing resources of the third device for further processing;

wherein each of the processing resources in the group of processing resources of the user device has a one-to-one correspondence with a respective processing resource in the processing resources of the first group of processing resources of the first device, the second group of processing resources of the second device and the third group of processing resources of the third device.

8. The electronic device of claim 7 , wherein the first reduce operation, the second reduce operation and the third reduce operation comprise a first AllReduce operation, a second AllReduce operation and a third AllReduce operation, respectively, and are of a same type.

9. The electronic device of claim 7 , wherein the first reduce operation, the second reduce operation and the third reduce operation comprise at least one of the following types of operations:

summation,

averaging,

taking a maximum value, and

taking a minimum value.

10. The electronic device of claim 7 , wherein the processing resources comprise dedicated processing resources.

11. The electronic device of claim 10 , wherein the dedicated processing resources comprise at least one of a graphics processing unit (GPU), a field programmable gate array (FPGA) and an artificial intelligence processor (AI processor).

12. The electronic device of claim 7 , wherein the actions further comprise:

providing the processing result of the task to the first group of processing resources of the first device.

13. A computer program product being tangibly stored on a non-transitory computer storage medium and comprising machine-executable instructions which, when executed by a device, cause the device to perform actions comprising:

initiating, at an application of a user device, a task for processing, the task being divided into a plurality of sub-tasks;

responsive to each sub-task of the plurality of sub-tasks being assigned to a respective processing resource of a corresponding group of processing resources of the user device,

receiving, at a first group of processing resources of a first device from one or more respective processing resources of the corresponding group of processing resources of the user device, a first group of sub-tasks in the task;

receiving, at a second group of processing resources of a second device from one or more other respective processing resources of the corresponding group of processing resources of the user device, a second group of sub-tasks in the task; and

receiving, at a third group of processing resources of a third device from one or more remaining respective processing resources of the corresponding group of processing resources of the user device, a third group of sub-tasks in the task;

obtaining a first group of processing results generated from processing, by the first group of processing resources of the first device, the first group of sub-tasks in the task;

performing, by the first device, a first reduce operation to aggregate the first group of processing results to obtain a first reduce result;

obtaining a second reduce result from the second device, the second reduce result being obtained by performing a second reduce operation to aggregate a second group of processing results generated from processing, by the second group of processing resources of the second device, the second group of sub-tasks in the task;

obtaining at least one processing result generated from processing, by at least one processing resource of the third group of processing resources of the third device, the third group of sub-tasks in the task;

performing a third reduce operation on the first reduce result, the second reduce result, and the processing result of the at least one processing resource of the third group of processing resources of the third device, to obtain a processing result of the task; and

providing the processing result of the task to one or more processing resources of at least one of the first group of processing resources of the first device, the second group of processing resources of the second device and the third group of processing resources of the third device for further processing;

wherein each of the processing resources in the group of processing resources of the user device has a one-to-one correspondence with a respective processing resource in the processing resources of the first group of processing resources of the first device, the second group of processing resources of the second device and the third group of processing resources of the third device.

14. The computer program product of claim 13 , wherein the first reduce operation, the second reduce operation and the third reduce operation comprise a first AllReduce operation, a second AllReduce operation and a third AllReduce operation, respectively, and are of a same type.

15. The computer program product of claim 13 , wherein the first reduce operation, the second reduce operation and the third reduce operation comprise at least one of the following types of operations:

summation,

averaging,

taking a maximum value, and

taking a minimum value.

16. The computer program product of claim 13 , wherein the processing resources comprise dedicated processing resources.

17. The computer program product of claim 16 , wherein the dedicated processing resources comprise at least one of a graphics processing unit (GPU), a field programmable gate array (FPGA) and an artificial intelligence processor (AI processor).

18. The computer program product of claim 13 , wherein the machine-executable instructions which, when executed by the device, cause the device to further perform an action comprising:

providing the processing result of the task to the first group of processing resources of the first device.

19. The computer program product of claim 13 , wherein the machine-executable instructions which, when executed by the device, cause the device to further perform an action comprising:

providing the processing result of the task to the second group of processing resources of the second device.

20. The computer program product of claim 13 , wherein the machine-executable instructions which, when executed by the device, cause the device to further perform an action comprising:

providing the processing result of the task to the third group of processing resources of the third device.

Assignments (9)
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 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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2019
From: CUI, WEI; WANG, KUN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051129/0018 →
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 →