IP Library Granted Patent US 10,884,761
Granted Patent B2
US 10,884,761 · App. 15/077,691 · Granted Jan 5, 2021

Best performance delivery in heterogeneous computing unit environment

Inventors: Jianbang Zhang (Cary, NC); John W. Nicholson (Cary, NC); Michael T. Vanover (Raleigh, NC)
Assignee: LENOVO Enterprise Solutions (Singapore) PTE. LTD
G06F9/44505G06F9/4484G06F9/50G06F11/3024G06F11/3409
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,884,761
App. No.
15/077,691
Granted
Jan 5, 2021
Kind
B2
Abstract

An apparatus for selecting an efficient processor includes a comparison module that compares performance characteristics of a plurality of processors available for execution of a function, where each performance characteristic varies as a function of function size. The apparatus includes a selection module that selects, based on a size of the function, a processor from the plurality of processors with a best performance for execution of the function, and an execution module that executes the function on the selected processor.

Claims (34)

1. A method comprising:

determining a performance characteristic of each of a main processor and a plurality of alternate processors based on function execution data from a plurality of previously executed functions;

tracking a context for each previously executed function executed on the main processor and on a processor of the alternate plurality of processors;

comparing performance characteristics of the main processor and the plurality of the alternate processors available for execution of a function, wherein the compared performance characteristics are derived from the plurality of previously executed functions and comprise a similar context to the function, and wherein each performance characteristic varies as a function of function size, the performance characteristics comprising an amount of time to execute the function on a particular processor of the main processor and the plurality of alternate processors;

selecting, based on a size of the function; a processor from the main processor and the plurality of alternate processors with a best performance for execution of the function, wherein the selected processor has a lowest execution time for the function; and

executing the function on the selected processor.

2. The method of claim 1 , wherein determining the performance characteristic of the main processor and each of the plurality of alternate processors further comprises:

calculating performance of an executed function executed on a processor of the main processor or a processor of the plurality of alternate processors; and

correlating a size of each executed function to performance during execution of the function to determine a performance characteristic of the processor of the main processor or a processor of the plurality of alternate processors.

3. The method of claim 1 , wherein determining the performance characteristic of the main processor and each of the plurality of alternate processors is based on function execution data from previously executed functions and:

information supplied with the function; and/or

information from a vendor associated with the main processor or a processor of the plurality of alternate processors.

4. The method of claim 1 , wherein determining the performance characteristic of the main processor and each of the plurality of alternate processors further comprises updating an initial performance characteristic of a processor of the main processor or a processor of the plurality of alternate processors based on the function execution data from previously executed functions.

5. A program product comprising a non-transitory computer readable storage medium that stores code executable by a processor, the executable code comprising code to perform:

determining a performance characteristic of each of a main processor and a plurality of alternate processors based on function execution data from a plurality of previously executed functions;

tracking a context for each previously executed function executed on the main processor and on a processor of the plurality of alternate processors;

comparing performance characteristics of the main processor and the plurality of the alternate processors available for execution of a function, wherein the compared performance characteristics are derived from the plurality of previously executed functions and comprise a similar context to the function, and wherein each performance characteristic varies as a function of function size, the performance characteristics comprising an amount of time to execute the function on a particular processor of the main processor and the plurality of alternate processors;

selecting, based on a size of the function; a processor from the main processor and the plurality of alternate processors with a best performance for execution of the function, wherein the selected processor has a lowest execution time for the function; and

executing the function on the selected processor.

6. The program product of claim 5 , wherein determining the performance characteristic of each of the plurality of processors further comprises:

calculating performance of an executed function executed on a processor of the main processor or a processor of the plurality of alternate processors; and

correlating a size of each executed function to performance during execution of the function to determine a performance characteristic of the processor of the main processor or a processor of the plurality of alternate processors.

7. The program product of claim 5 , determining the performance characteristic of the main processor and each of the plurality of alternate processors is based on function execution data from previously executed functions and:

information supplied with the function; and/or

information from a vendor associated with the main processor or a processor of the plurality of alternate processors.

8. The program product of claim 5 , wherein determining the performance characteristic of the main processor and each of the plurality of alternate processors further comprises updating an initial performance characteristic of a processor of the main processor or a processor of the plurality of alternate processors based on the function execution data from previously executed functions.

9. The program product of claim 5 , further comprising selecting multiple processors from the main processor and the plurality of alternate processors with similar best performance characteristics, based on the size of the function, for execution of the function and executing the function on the multiple selected processors.

10. The program product of claim 5 , further comprising, in response to selecting a processor for execution of the function, formatting the function for execution on the selected processor, wherein the function is formatted for a central-processing unit (“CPU”) prior to formatting for the selected processor.

11. The program product of claim 5 , wherein the performance characteristics of the plurality of alternate processors comprise one or more of speed of execution, energy efficiency, and cost of execution of a functions of various sizes.

12. The program product of claim 5 , wherein each of the plurality of alternate processors comprises at least one field-programmable gate array (“FPGA”) and at least one graphics processing unit (“GPU”).

13. The method of claim 1 , further comprising selecting multiple processors from the main processor and the plurality of alternate processors with similar best performance characteristics, based on the size of the function, for execution of the function and executing the function on the multiple selected processors.

14. The method of claim 1 , further comprising, in response to selecting a processor for execution of the function, formatting the function for execution on the selected processor, wherein the function is formatted for a central-processing unit (“CPU”) prior to formatting for the selected processor.

15. The method of claim 1 , wherein the performance characteristics of the plurality of alternate processors comprise one or more of speed of execution, energy efficiency, and cost of execution of a functions of various sizes.

16. The method of claim 1 , wherein each of the plurality of alternate processors comprises at least one field-programmable gate array (“FPGA”) and at least one graphics processing unit (“GPU”).

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2025
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LTD.
Reel/Frame 070267/0082 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2025
From: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LIMITED
To: LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 070269/0207 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2016
From: ZHANG, JIANBANG; NICHOLSON, JOHN W.; VANOVER, MICHEAL T.
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 038072/0977 →