IP Library Granted Patent US 11,048,550
Granted Patent B2
US 11,048,550 · App. 16/443,181 · Granted Jun 29, 2021

Methods, devices and computer program products for processing task

Inventors: Hu Chenxi (Beijing, CN); Kun Wang (Beijing, CN); Sanping Li (Beijing, CN); Junping Zhao (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F9/4843
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,048,550
App. No.
16/443,181
Granted
Jun 29, 2021
Kind
B2
Abstract

Embodiments of the present disclosure provide methods, devices, and computer program products for processing a task. A method of processing a task comprises: receiving, at a network device and from a set of computing devices, a set of processing results derived from processing the task by the set of computing devices; in response to receiving the set of processing results, executing a reduction operation on the set of processing results; and transmitting a result of the reduction operation to the set of computing devices. In this way, embodiments of the present disclosure can significantly reduce an amount of data exchanged among a plurality of devices processing a task in parallel, and thus reduce network latency caused by data exchange.

Claims (73)

1. A method of processing a task, comprising:

receiving, at a network device from a set of computing devices, a set of initialization requests, the network device being separate from the set of computing devices, operatively coupled to each of the computing devices, and configured for broadcasting of network data packets to the set of computing devices;

in response to receiving the set of initialization requests from the set of computing devices at the network device, initializing, at the network device, a first flag set associated with the set of computing devices to indicate that no processing results have been received from the set of computing devices;

receiving, at the network device from the set of computing devices, a set of processing results derived from processing the task by the set of computing devices, the set of computing devices processing at least portions of the task in parallel with one another;

updating, at the network device in conjunction with the receiving of the set of processing results, the first flag set to indicate whether or not the set of processing results has been received from the set of computing devices at the network device;

in response to the set of processing results having been received from the set of computing devices at the network device, as determined based at least in part on the first flag set, executing a reduction operation on the set of processing results in the network device;

maintaining, at the network device in conjunction with the executing, a second flag set indicating whether or not the reduction operation has been completed on the set of processing results in the network device; and

transmitting a result of the reduction operation, as determined based at least in part on the second flag set, from the network device to the set of computing devices via a network data packet broadcasting mechanism of the network device.

2. The method of claim 1 , wherein the network device comprises at least one of a programmable switch and a router.

3. The method of claim 1 , wherein the set of computing devices comprises a first computing device, the set of processing results comprises a first processing result transmitted from the first computing device, and wherein the method further comprises:

after transmitting the result of the reduction operation to the set of computing devices,

in response to receiving the first processing result from the first computing device again, retransmitting the result of the reduction operation to the set of computing devices.

4. The method of claim 1 , further comprising:

before receiving the set of processing results,

receiving, from the set of computing devices, a set of requests for executing the reduction operation; and

in response to receiving the set of requests, transmitting, to each of the set of computing devices, a response to the set of requests.

5. The method of claim 4 , wherein receiving the set of processing results comprises:

determining, based on the received set of requests, respective network information of the set of computing devices; and

receiving, based on the respective network information of the set of computing devices, the set of processing results from the set of computing devices.

6. The method of claim 4 , wherein the set of computing devices comprises a second computing device, the set of requests comprises a second request transmitted from the second computing device, and wherein the method further comprises:

after transmitting the response to each of the set of computing devices,

in response to receiving the second request from the second computing device again, retransmitting the response to the second computing device.

7. The method of claim 1 further comprising:

deriving, at a first computing device in the set of computing devices, a processing result from processing the task;

transmitting, to the network device from the first computing device, the processing result to enable the network device to execute a reduction operation on the set of processing results; and

receiving, at the first computing device from the network device, via the network data packet broadcasting mechanism of the network device, a result of the reduction operation.

8. The method of claim 7 , wherein the network device comprises at least one of a programmable switch and a router.

9. The method of claim 7 , wherein transmitting the processing result to the network device comprises:

pre-processing the processing result such that the pre-processed processing result is adapted for the reduction operation to be executed by the network device; and

transmitting, to the network device, the pre-processed processing result.

10. The method of claim 9 , wherein pre-processing the processing result comprises at least one of the following:

converting the processing result into a predetermined value range;

converting the processing result from a negative value into a positive value; and

converting the processing result from a floating point number into an integer.

11. The method of claim 9 , further comprising:

in response to receiving the result of the reduction operation, performing post-processing opposite to the pre-processing on the result of the reduction operation.

12. The method of claim 7 , further comprising:

in response to failing to receive the result of the reduction operation within a first threshold period after transmitting the processing result, retransmitting the processing result to the network device.

13. The method of claim 7 , wherein transmitting the processing result to the network device comprises:

before transmitting the processing result, transmitting a request for executing the reduction operation to the network device; and

in response to receiving a response to the request from the network device, transmitting the processing result to the network device.

14. The method of claim 13 , further comprising:

in response to failing to receive the response to the request within a second threshold period after transmitting the request, retransmitting the request to the network device.

15. A network device, comprising:

a processor; and

a memory storing computer program instructions, the processor executing the computer program instructions stored in the memory to cause the network device to perform acts comprising:

receiving, at a network device from a set of computing devices, a set of initialization requests, the network device being separate from the set of computing devices, operatively coupled to each of the computing devices, and configured for broadcasting of network data packets to the set of computing devices;

in response to receiving the set of initialization requests from the set of computing devices at the network device, initializing, at the network device, a first flag set associated with the set of computing devices to indicate that no processing results have been received from the set of computing devices;

receiving, at the network device from the set of computing devices, a set of processing results derived from processing the task by the set of computing devices, the set of computing devices processing at least portions of the task in parallel with one another;

updating, at the network device in conjunction with the receiving of the set of processing results, the first flag set to indicate whether or not the set of processing results has been received from the set of computing devices at the network device;

in response to the set of processing results having been received from the set of computing devices at the network device, as determined based at least in part on the first flag set, executing a reduction operation on the set of processing results in the network device;

maintaining, at the network device in conjunction with the executing, a second flag set indicating whether or not the reduction operation has been completed on the set of processing results in the network device; and

transmitting a result of the reduction operation, as determined based at least in part on the second flag set, from the network device to the set of computing devices via a network data packet broadcasting mechanism of the network device.

16. The network device of claim 15 , wherein the network device comprises at least one of a programmable switch and a router.

17. The network device of claim 15 , wherein the set of computing devices comprises a first computing device, the set of processing results comprises a first processing result transmitted from the first computing device, and wherein the acts further comprise:

after transmitting the result of the reduction operation to the set of computing devices,

in response to receiving the first processing result from the first computing device again, retransmitting the result of the reduction operation to the set of computing devices.

18. A computer program product tangibly stored on a non-transient computer storage medium and comprising machine-executable instructions, the machine-executable instructions, when executed by at least one device, causing the at least one device to perform a method of processing a task, the method comprising:

receiving, at a network device from a set of computing devices, a set of initialization requests, the network device being separate from the set of computing devices, operatively coupled to each of the computing devices, and configured for broadcasting of network data packets to the set of computing devices;

in response to receiving the set of initialization requests from the set of computing devices at the network device, initializing, at the network device, a first flag set associated with the set of computing devices to indicate that no processing results have been received from the set of computing devices;

receiving, at the network device from the set of computing devices, a set of processing results derived from processing the task by the set of computing devices, the set of computing devices processing at least portions of the task in parallel with one another;

updating, at the network device in conjunction with the receiving of the set of processing results, the first flag set to indicate whether or not the set of processing results has been received from the set of computing devices at the network device;

in response to the set of processing results having been received from the set of computing devices at the network device, as determined based at least in part on the first flag set, executing a reduction operation on the set of processing results in the network device;

maintaining, at the network device in conjunction with the executing, a second flag set indicating whether or not the reduction operation has been completed on the set of processing results in the network device; and

transmitting a result of the reduction operation, as determined based at least in part on the second flag set, from the network device to the set of computing devices via a network data packet broadcasting mechanism of the network device.

19. The computer program product of claim 18 , wherein the method further comprises:

deriving, at a first computing device in the set of computing devices, a processing result from processing the task;

transmitting, to the network device from the first computing device, the processing result to enable the network device to execute a reduction operation on the set of processing results; and

receiving, at the first computing device from the network device, via the network data packet broadcasting mechanism of the network device, a result of the reduction operation.

20. The computer program product of claim 18 , wherein the method further comprises:

before receiving the set of processing results,

receiving, from the set of computing devices, a set of requests for executing the reduction operation; and

in response to receiving the set of requests, transmitting, to each of the set of computing devices, a response to the set of requests.

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 →
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 Jun 17, 2019
From: CHENXI, HU; WANG, KUN; LI, SANPING; ZHAO, JUNPING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049491/0404 →