IP Library › Granted Patent US 11,663,050
Granted Patent B2
US 11,663,050 · App. 16/384,209 · Granted May 30, 2023

Method, device and computer program product for managing dedicated processing resources

Inventors: Layne Lin Peng (Shanghai, CN); Junping Zhao (Beijing, CN); Wei Cui (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F9/5077G06F9/505G06F9/5044G06T1/60H04L67/01
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,663,050
App. No.
16/384,209
Granted
May 30, 2023
Kind
B2
Abstract

A resource management method comprises: in response to receiving, from an application operating on a client, a resource allocation request indicating an amount of dedicated processing resources required by the application, acquiring a mapping between a group of physical dedicated processing resources provided by a group of servers and a group of logical dedicated processing resources, the group of physical dedicated processing resources being divided into the group of logical dedicated processing resources; determining allocation statuses of the group of logical dedicated processing resources; determining, based at least on the mapping and the allocation statuses, a first amount of logical dedicated processing resources to be allocated to the application from the group of logical dedicated processing resources; and indicating the first amount of logical dedicated processing resources to the application, to allow the application to utilize physical dedicated processing resources provided by at least one of the group of servers.

Claims (72)

1. A method, comprising:

logically partitioning, by a controller, a group of physical dedicated processing resources, which reside on a group of servers, into a group of logical dedicated processing resources, wherein at least one physical dedicated processing resource is logically partitioned into multiple logical dedicated processing resources to enable concurrent use of the at least one physical dedicated processing resource by a plurality of applications, and wherein at least one physical dedicated processing resource of the group of physical dedicated processing resources comprises a graphics processing unit (GPU) device comprising GPU compute and storage resources that are logically partitioned into a plurality of logical GPU compute and storage resources;

receiving, by the controller, a resource allocation request from a client driver operating on a client device, the resource allocation request indicating an amount of dedicated processing resources for allocating to an application executing on the client device;

in response to the resource allocation request, the controller performing a process comprising:

acquiring a mapping between the group of physical dedicated processing resources and the group of logical dedicated processing resources, wherein the mapping comprises at least one entry which maps at least one logical dedicated processing resource to at least one physical dedicated processing resource and which identifies a server of the group of servers on which the at least one physical dedicated processing resource resides;

determining allocation statuses of the group of logical dedicated processing resources;

determining, based at least on the mapping and the allocation statuses, a first amount of logical dedicated processing resources to be allocated to the application from the group of logical dedicated processing resources, the first amount of logical dedicated processing resources meeting the requested amount of dedicated processing resources;

indicating the first amount of logical dedicated processing resources to the client driver, to allow the client driver to communicate with at least one server of the group of servers to establish at least one data path between the client device and the at least one server of the group of servers and enable the application to utilize physical dedicated processing resources provided by the at least one server of the group of servers, the physical dedicated processing resources corresponding to the first amount of logical dedicated processing resources; and

in response to receiving, by the controller, notification of completion of execution of the application and release of the first amount of logical dedicated processing resources, the controller updating the allocation statuses of the group of logical dedicated processing resources to indicate availability of the first amount of logical dedicated processing resources;

wherein the controller comprises at least one processing device comprising a processor coupled to a memory.

2. The method according to claim 1 , wherein the allocation statuses indicate a second amount of logical dedicated processing resources available for allocation in the group of logical dedicated processing resources, and determining the first amount of logical dedicated processing resources comprises:

determining, from the second amount of logical dedicated processing resources, the first amount of logical dedicated processing resources meeting the amount of dedicated processing resources.

3. The method according to claim 1 , wherein determining the first amount of logical dedicated processing resources comprises:

determining the first amount of logical dedicated processing resources, such that the first amount of logical dedicated processing resources include a plurality of logical dedicated processing resources mapped to a same physical dedicated processing resource in the group of physical dedicated processing resources.

4. The method of claim 1 , wherein determining the first amount of logical dedicated processing resources comprises:

determining the first amount of logical dedicated processing resources, such that the first amount of logical dedicated processing resources include a plurality of logical dedicated processing resources provided by a same server in the group of servers.

5. The method of claim 1 , wherein determining the first amount of logical dedicated processing resources comprises:

determining the first amount of logical dedicated processing resources, such that the first amount of logical dedicated processing resources is uniformly mapped to the group of physical dedicated processing resources.

6. The method of claim 1 , wherein determining the first amount of logical dedicated processing resources comprises:

determining an estimate about execution efficiencies of the application over different physical dedicated processing resources; and

determining, based on the estimate, the first amount of logical dedicated processing resources to be allocated to the application.

7. The method of claim 1 , wherein indicating the first amount of logical dedicated processing resources to the application comprises:

determining whether the first amount of logical dedicated processing resources include a plurality of logical dedicated processing resources mapped to a same physical dedicated processing resource;

in response to determining that the first amount of logical dedicated processing resources include a plurality of logical dedicated processing resources mapped to a same physical dedicated processing resource, aggregating the plurality of logical dedicated processing resources into a single logical dedicated processing resource;

indicating the first amount of logical dedicated processing resources by indicating the single logical dedicated processing resource to the application.

8. The method of claim 1 , further comprising:

in response to the first amount of logical dedicated processing resources being indicated to the application, updating respective allocation statuses of the first amount of logical dedicated processing resources.

9. The method of claim 1 , further comprising the controller generating the mapping and storing the mapping in a storage device that is accessible by the controller.

10. A device, comprising:

at least one processing unit;

at least one memory coupled to the at least one processing unit and storing instructions executed by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform actions for managing resources, the actions comprising:

logically partitioning a group of physical dedicated processing resources, which reside on a group of servers, into a group of logical dedicated processing resources, wherein at least one physical dedicated processing resource is logically partitioned into multiple logical dedicated processing resources to enable concurrent use of the at least one physical dedicated processing resource by a plurality of applications, and wherein at least one physical dedicated processing resource of the group of physical dedicated processing resources comprises a graphics processing unit (GPU) device comprising GPU compute and storage resources that are logically partitioned into a plurality of logical GPU compute and storage resources;

receiving a resource allocation request from a client driver operating on a client device, the resource allocation request indicating an amount of dedicated processing resources for allocating to an application executing on the client device;

in response to the resource allocation request, performing a process which comprises:

acquiring a mapping between the group of physical dedicated processing resources and the group of logical dedicated processing resources, wherein the mapping comprises at least one entry which maps at least one logical dedicated processing resource to at least one physical dedicated processing resource and which identifies a server of the group of servers on which the at least one physical dedicated processing resource resides;

determining allocation statuses of the group of logical dedicated processing resources;

determining, based at least on the mapping and the allocation statuses, a first amount of logical dedicated processing resources to be allocated to the application from the group of logical dedicated processing resources, the first amount of logical dedicated processing resources meeting the requested amount of dedicated processing resources;

indicating the first amount of logical dedicated processing resources to the client driver, to allow the client driver to communicate with at least one server of the group of servers to establish at least one data path between the client device and the at least one server of the group of servers and enable the application to utilize physical dedicated processing resources provided by the at least one server of the group of servers, the physical dedicated processing resources corresponding to the first amount of logical dedicated processing resources; and

in response to receiving notification of completion of execution of the application and release of the first amount of logical dedicated processing resources, updating the allocation statuses of the group of logical dedicated processing resources to indicate availability of the first amount of logical dedicated processing resources.

11. The device of claim 10 , wherein the allocation statuses indicate a second amount of logical dedicated processing resources available for allocation in the group of logical dedicated processing resources, and determining the first amount of logical dedicated processing resources comprises:

determining, from the second amount of logical dedicated processing resources, the first amount of logical dedicated processing resources meeting the amount of dedicated processing resources.

12. The device of claim 10 , wherein determining the first amount of logical dedicated processing resources comprises:

determining the first amount of logical dedicated processing resources, such that the first amount of logical dedicated processing resources include a plurality of logical dedicated processing resources mapped to a same physical dedicated processing resource in the group of physical dedicated processing resources.

13. The device of claim 10 , wherein determining the first amount of logical dedicated processing resources comprises:

determining the first amount of logical dedicated processing resources, such that the first amount of logical dedicated processing resources include a plurality of logical dedicated processing resources provided by a same server in the group of servers.

14. The device of claim 10 , wherein determining the first amount of logical dedicated processing resources comprises:

determining the first amount of logical dedicated processing resources, such that the first amount of logical dedicated processing resources is uniformly mapped to the group of physical dedicated processing resources.

15. The device of claim 10 , wherein determining the first amount of logical dedicated processing resources comprises:

determining an estimate about execution efficiencies of the application over different physical dedicated processing resources; and

determining, based on the estimate, the first amount of logical dedicated processing resources to be allocated to the application.

16. The device of claim 10 , wherein indicating the first amount of logical dedicated processing resources to the application comprises:

determining whether the first amount of logical dedicated processing resources include a plurality of logical dedicated processing resources mapped to a same physical dedicated processing resource;

in response to determining that the first amount of logical dedicated processing resources include a plurality of logical dedicated processing resources mapped to a same physical dedicated processing resource, aggregating the plurality of logical dedicated processing resources into a single logical dedicated processing resource; and

indicating the first amount of logical dedicated processing resources by indicating the single logical dedicated processing resource to the application.

17. The device of claim 10 , wherein the actions further comprise:

in response to the first amount of logical dedicated processing resources being indicated to the application, updating respective allocation statuses of the first amount of logical dedicated processing resources.

18. A computer program product tangibly stored on a non-transitory computer storage medium and including machine-executable instructions, the machine-executable instructions, when executed by a device, causing the device to perform a method for managing resources, comprising:

logically partitioning a group of physical dedicated processing resources, which reside on a group of servers, into a group of logical dedicated processing resources, wherein at least one physical dedicated processing resource is logically partitioned into multiple logical dedicated processing resources to enable concurrent use of the at least one physical dedicated processing resource by a plurality of applications, and wherein at least one physical dedicated processing resource of the group of physical dedicated processing resources comprises a graphics processing unit (GPU) device comprising GPU compute and storage resources that are logically partitioned into a plurality of logical GPU compute and storage resources;

receiving a resource allocation request from a client driver operating on a client device, the resource allocation request indicating an amount of dedicated processing resources for allocating to an application executing on the client device;

in response to the resource allocation request, performing a process which comprises:

acquiring a mapping between the group of physical dedicated processing resources and the group of logical dedicated processing resources, wherein the mapping comprises at least one entry which maps at least one logical dedicated processing resource to at least one physical dedicated processing resource and which identifies a server of the group of servers on which the at least one physical dedicated processing resource resides;

determining allocation statuses of the group of logical dedicated processing resources;

determining, based at least on the mapping and the allocation statuses, a first amount of logical dedicated processing resources to be allocated to the application from the group of logical dedicated processing resources, the first amount of logical dedicated processing resources meeting the requested amount of dedicated processing resources;

indicating the first amount of logical dedicated processing resources to the client driver, to allow the client driver to communicate with at least one server of the group of servers to establish at least one data path between the client device and the at least one server of the group of servers and enable the application to utilize physical dedicated processing resources provided by the at least one server of the group of servers, the physical dedicated processing resources corresponding to the first amount of logical dedicated processing resources; and

in response to receiving notification of completion of execution of the application and release of the first amount of logical dedicated processing resources, updating the allocation statuses of the group of logical dedicated processing resources to indicate availability of the first amount of logical dedicated processing resources.

19. The computer program product according to claim 18 , wherein the allocation statuses indicate a second amount of logical dedicated processing resources available for allocation in the group of logical dedicated processing resources, and determining the first amount of logical dedicated processing resources comprises:

determining, from the second amount of logical dedicated processing resources, the first amount of logical dedicated processing resources meeting the amount of dedicated processing resources.

20. The computer program product according to claim 18 , wherein determining the first amount of logical dedicated processing resources comprises at least one of:

determining the first amount of logical dedicated processing resources, such that the first amount of logical dedicated processing resources include a plurality of logical dedicated processing resources mapped to a same physical dedicated processing resource in the group of physical dedicated processing resources;

determining the first amount of logical dedicated processing resources, such that the first amount of logical dedicated processing resources include a plurality of logical dedicated processing resources provided by a same server in the group of servers;

determining the first amount of logical dedicated processing resources, such that the first amount of logical dedicated processing resources is uniformly mapped to the group of physical dedicated processing resources; and

determining an estimate about execution efficiencies of the application over different physical dedicated processing resources, and determining, based on the estimate, the first amount of logical dedicated processing resources to be allocated to the application.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
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 AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
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; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2019
From: PENG, LAYNE LIN; ZHAO, JUNPING; CUI, WEI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 048886/0216 →
Priority Claims (1)
CN 201810359545.X · Apr 20, 2018 · national
Continuity (2)
Related Publication 20190324821A1 · Oct 24, 2019
Related Publication 20190324821A1 · Oct 24, 2019
Cited By (1)
US 12,554,545