IP Library Granted Patent US 8,205,209
Granted Patent B2
US 8,205,209 · App. 12/050,336 · Granted Jun 19, 2012

Selecting a number of processing resources to run an application effectively while saving power

Assignee: International Business Machines Corporation
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 8,205,209
App. No.
12/050,336
Granted
Jun 19, 2012
Kind
B2
Abstract

Selecting a number of processors to run an application in order to save power is performed. A number of code segments are selected from an application. Each of the code segments are executed using two or more of a plurality of processing resource combinations. Each of the code segments are scored with a performance value. The performance value indicates a performance of each code segment using each of the two or more processing resource combinations. A selection is made of one of the two or more processing resource combinations based on an associated performance value and a number of processing resources used to execute the code segment. The application is then executed using the selected processing resource combination.

Claims (34)

1. A method, in a data processing system, for selecting a number of processors to run an application in order to save power, the method comprising:

sampling a number of heavily used parallel code segments from the application;

executing each of the heavily used parallel code segments using two or more of a plurality of processing resource combinations;

scoring each of the heavily used parallel code segments with a performance value, wherein the performance value indicates a performance of each heavily used parallel code segment using each of the two or more processing resource combinations;

selecting one of the two or more processing resource combinations based on an associated performance value and a number of processing resources used to execute the heavily used parallel code segment; and

executing the application using the selected processing resource combination.

2. The method of claim 1 , wherein the performance of each heavily used parallel code segment is a benchmark measurement that rates the speed at which the processing resource combination executes the heavily used parallel code segment.

3. The method of claim 1 , wherein the associated performance value is within a predetermined performance level and wherein the predetermined performance level is within a predetermined percentage of a highest performance value of each heavily used parallel code segment.

4. The method of claim 1 , wherein the plurality of processing resource combinations comprises at least one of two or more physical processors, two or more logical processors, or a combination of physical processors and logical processors.

5. The method of claim 4 , wherein each processor in the two or more physical processors comprises a plurality of cores.

6. The method of claim 5 , wherein the plurality of cores are homogeneous.

7. The method of claim 5 , wherein the plurality of cores are heterogeneous.

8. The method of claim 1 , wherein sampling the number of heavily used parallel code segments from the application is performed prior to the application being executed by an operating system.

9. The method of claim 1 , wherein the plurality of processing resource combinations are predetermined by a user.

10. A computer program product comprising a computer recordable medium having a computer readable program recorded thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to:

sample a number of heavily used parallel code segments from the application;

execute each of the heavily used parallel code segments using two or more of a plurality of processing resource combinations;

score each of the heavily used parallel code segments with a performance value, wherein the performance value indicates a performance of each heavily used parallel code segment using each of the two or more processing resource combinations;

select one of the two or more processing resource combinations based on an associated performance value and a number of processing resources used to execute the heavily used parallel code segment; and

execute the application using the selected processing resource combination.

11. The computer program product of claim 10 , wherein the performance of each heavily used parallel code segment is a benchmark measurement that rates the speed at which the processing resource combination executes the heavily used parallel code segment.

12. The computer program product of claim 10 , wherein the associated performance value is within a predetermined performance level and wherein the predetermined performance level is within a predetermined percentage of a highest performance value of each heavily used parallel code segment.

13. The computer program product of claim 10 , wherein the computer readable program to sample the number of heavily used parallel code segments from the application is performed prior to the application being executed by an operating system.

14. An, apparatus, comprising:

a processor; and

a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to:

sample a number of heavily used parallel code segments from the application;

execute each of the heavily used parallel code segments using two or more of a plurality of processing resource combinations;

score each of the heavily used parallel code segments with a performance value, wherein the performance value indicates a performance of each heavily used parallel code segment using each of the two or more processing resource combinations;

select one of the two or more processing resource combinations based on an associated performance value and a number of processing resources used to execute the heavily used parallel code segment; and

execute the application using the selected processing resource combination.

15. The apparatus of claim 14 , wherein the performance of each heavily used parallel code segment is a benchmark measurement that rates the speed at which the processing resource combination executes the heavily used parallel code segment.

16. The apparatus of claim. 14 , wherein the associated performance value is within a predetermined performance level and wherein the predetermined performance level is within a predetermined percentage of a highest performance value of each heavily used parallel code segment.

17. The apparatus of claim 14 , wherein the instructions to sample the number of heavily used parallel code segments from the application are performed prior to the application being executed by an operating system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2012
From: WONG, PETER W. Y.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 027985/0494 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2008
From: WONG, PETER W
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020665/0309 →
Continuity (1)
Related Publication 20090241122A1 · Sep 24, 2009