IP Library Granted Patent US 10,891,156
Granted Patent B1
US 10,891,156 · App. 15/498,055 · Granted Jan 12, 2021

Intelligent data coordination for accelerated computing in cloud environment

Inventors: Junping Zhao (Beijing, CN); Yifan Sun (Abington, MA); Layne Peng (Shanghai, CN); Jie Bao (Shanghai, CN); Kun Wang (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F9/4881G06F9/5005
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 10,891,156
App. No.
15/498,055
Granted
Jan 12, 2021
Kind
B1
Abstract

Systems and methods are provided to implement intelligent data coordination for accelerated computing in a distributed computing environment. For example, a method includes executing a task on a computing node, monitoring requests issued by the executing task, intercepting requests issued by the executing task which correspond to data flow operations to be performed as part of the task execution, and asynchronously executing the intercepted requests at scheduled times to coordinate data flow between resources on the computing node.

Claims (61)

1. A method, comprising:

performing an offline process which comprises:

executing a task;

determining data flow patterns which occur between resources as a result of data flow operations that are performed during the execution of the task; and

storing the determined data flow patterns in a knowledge base;

executing the task on a first computing node;

monitoring requests issued by the executing task;

intercepting requests issued by the executing task which correspond to data flow operations to be performed as part of the task execution, wherein the intercepted requests comprise at least one of requests for prefetching data from a memory, requests for loading data into a memory, requests for copying data from a first memory to a second memory, and requests for communicating data to a second computing node; and

asynchronously executing the intercepted requests at scheduled times to coordinate intra-node data flow between resources on the first computing node and inter-node data flow between resources on the first computing node and the second computing node, wherein asynchronously executing the intercepted requests at scheduled times comprises:

enqueuing the intercepted requests;

utilizing the determined data flow patterns in the knowledge base to schedule times for executing the enqueued requests in a manner which coordinates intra-node data flow between resources on the first computing node and inter-node data flow between resources on the first computing node and the second computing node; and

dispatching a given enqueued request for execution by an asynchronous background thread according to a scheduled time for the given enqueued request.

2. The method of claim 1 , wherein monitoring requests issued by the executing task comprises monitoring requests issued by the executing task to a software library and an application programming interface.

3. The method of claim 1 , wherein the intercepted requests comprise memory allocation requests.

4. The method of claim 1 , wherein asynchronously executing the intercepted requests at scheduled times further comprises:

scheduling the times to execute the intercepted requests based on contextual information associated with the intercepted requests and resource usage on at least one of the first computing node and the second computing node.

5. The method of claim 1 , wherein asynchronously executing the intercepted requests at scheduled times further comprises:

scheduling the times to execute the intercepted requests based on data flow patterns associated with the task, which are determined by performing a pilot run of the task.

6. The method of claim 1 , wherein the executing task comprises a machine learning task for training a machine learning model of a given type, and wherein the offline process is configured to (i) profile at least one of data locality and model parameters locality associated with the training of the machine learning model of the given type, and (ii) utilize at least one of the profiled data locality and the profiled model parameters locality to determine data flow patterns associated with the training of the machine learning model of the given type.

7. The method of claim 1 , wherein the intercepted requests comprise requests for copying data from a first memory of a first processor device to a second memory of a second processor device.

8. An article of manufacture comprising a processor-readable storage medium having stored program code of one or more software programs, wherein the program code is executable by one or more processors to implement method steps comprising:

performing an offline process which comprises:

executing a task;

determining data flow patterns which occur between resources as a result of data flow operations that are performed during the execution of the task; and

storing the determined data flow patterns in a knowledge base;

executing the task on a first computing node;

monitoring requests issued by the executing task;

intercepting requests issued by the executing task which correspond to data flow operations to be performed as part of the task execution, wherein the intercepted requests comprise at least one of requests for prefetching data from a memory, requests for loading data into a memory, requests for copying data from a first memory to a second memory, and requests for communicating data to a second computing node; and

asynchronously executing the intercepted requests at scheduled times to coordinate intra-node data flow between resources on the first computing node and inter-node data flow between resources on the first computing node and the second computing node, wherein asynchronously executing the intercepted requests at scheduled times comprises:

enqueuing the intercepted requests;

utilizing the determined data flow patterns in the knowledge base to schedule times for executing the enqueued requests in a manner which coordinates intra-node data flow between resources on the first computing node and inter-node data flow between resources on the first computing node and the second computing node; and

dispatching a given enqueued request for execution by an asynchronous background thread according to a scheduled time for the given enqueued request.

9. The article of manufacture of claim 8 , wherein monitoring requests issued by the executing task comprises monitoring requests issued by the executing task to a software library and an application programming interface.

10. The article of manufacture of claim 8 , wherein the intercepted requests comprise memory allocation requests.

11. The article of manufacture of claim 8 , wherein asynchronously executing the intercepted requests at scheduled times further comprises:

scheduling the times to execute the intercepted requests based on contextual information associated with the intercepted requests and resource usage on at least one of the first computing node and the second computing node.

12. The article of manufacture of claim 8 , wherein asynchronously executing the intercepted requests at scheduled times further comprises:

scheduling the times to execute the intercepted requests based on data flow patterns associated with the task, which are determined by performing a pilot run of the task.

13. The article of manufacture of claim 8 , wherein the executing task comprises a machine learning task for training a machine learning model of a given type, and wherein the offline process is configured to (i) profile at least one of data locality and model parameters locality associated with the training of the machine learning model of the given type, and (ii) utilize at least one of the profiled data locality and the profiled model parameters locality to determine data flow patterns associated with the training of the machine learning model of the given type.

14. The article of manufacture of claim 8 , wherein the intercepted requests comprise requests for copying data from a first memory of a first processor device to a second memory of a second processor device.

15. A system, comprising:

a memory configured to store program instruction; and

at least one processor configured to execute the stored program instructions to perform a method comprising:

performing an offline process which comprises:

executing a task;

determining data flow patterns which occur between resources as a result of data flow operations that are performed during the execution of the task; and

storing the determined data flow patterns in a knowledge base;

executing the task on a first computing node;

monitoring requests issued by the executing task;

intercepting requests issued by the executing task which correspond to data flow operations to be performed as part of the task execution, wherein the intercepted requests comprise at least one of requests for prefetching data from a memory, requests for loading data into a memory, requests for copying data from a first memory to a second memory, and requests for communicating data to a second computing node; and

asynchronously executing the intercepted requests at scheduled times to coordinate intra-node data flow between resources on the first computing node and inter-node data flow between resources on the first computing node and the second computing node, wherein asynchronously executing the intercepted requests at scheduled times comprises:

enqueuing the intercepted requests;

utilizing the determined data flow patterns in the knowledge base to schedule times for executing the enqueued requests in a manner which coordinates intra-node data flow between resources on the first computing node and inter-node data flow between resources on the first computing node and the second computing node; and

dispatching a given enqueued request for execution by an asynchronous background thread according to a scheduled time for the given enqueued request.

16. The system of claim 15 , wherein monitoring requests issued by the executing task comprises monitoring requests issued by the executing task to a software library and an application programming interface.

17. The system of claim 15 , wherein the intercepted requests comprise memory allocation requests.

18. The system of claim 15 , wherein asynchronously executing the intercepted requests at scheduled times further comprises:

scheduling the times to execute the intercepted requests based on contextual information associated with the intercepted requests and resource usage on at least one of the first computing node and the second computing node.

19. The system of claim 15 , wherein asynchronously executing the intercepted requests at scheduled times further comprises:

scheduling the times to execute the intercepted requests based on data flow patterns associated with the task, which are determined by performing a pilot run of the task.

20. The system of claim 15 , wherein the executing task comprises a machine learning task for training a machine learning model of a given type, and wherein the offline process is configured to (i) profile at least one of data locality and model parameters locality associated with the training of the machine learning model of the given type, and (ii) utilize at least one of the profiled data locality and the profiled model parameters locality to determine data flow patterns associated with the training of the machine learning model of the given type.

Assignments (8)
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 (042769/0001) Recorded Apr 26, 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 (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
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 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2017
From: ZHAO, JUNPING; SUN, YIFAN; PENG, LAYNE; BAO, JIE; WANG, KUN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044137/0210 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
Cited By (10)
US 12,218,941 US 12,231,429 US 12,373,912 US 12,430,178 US 12,450,683 US 12,645,455 US 12,657,024 US 12,669,996 US 12,688,545 US 12,700,056