IP Library Granted Patent US 11,288,046
Granted Patent B2
US 11,288,046 · App. 16/669,316 · Granted Mar 29, 2022

Methods and systems for program optimization utilizing intelligent space exploration

Inventors: Tong Chen (Yorktown Heights, NY); Li Zhang (Yorktown Heights, NY); Hyojin Sung (Ossining, NY); Tian Jin (White Plains, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F8/4434G06F8/4442G06F11/302G06F11/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 11,288,046
App. No.
16/669,316
Granted
Mar 29, 2022
Kind
B2
Abstract

Embodiments for program optimization are provided. A program is compiled with respect to a performance result utilizing a set of parameters. Information associated with the compiling of the program is collected. The collected information is external to the performance result. The set of parameters is changed based on the collected information.

Claims (40)

1. A method for program optimization, by a processor, comprising:

compiling a program with respect to a performance result utilizing a set of parameters, wherein the set of parameters is an initial set of parameters used to compile the program to achieve a desired target output associated with the performance result, and wherein the performance result comprises the desired target output as specifically defined by a user;

collecting information associated with the compiling of the program, wherein the collected information is program characteristic or program behavior information external to the performance result;

generating a first functional model correlating the set of parameters to the collected information, wherein generating the first model includes correlating only data points of the program characteristic or program behavior information to the initial set of parameters;

generating a second functional model correlating the performance result to the collected information, wherein generating the second model includes correlating only data points of the program characteristic or program behavior information to the desired target output specifically defined by the user;

performing a space exploration process on a search space of the first functional model using the second functional model to identify an optimal runtime target point with respect to the program characteristic or program behavior information, wherein, a parameter optimization process is performed using the first functional model to identify optimal parameters for the optimal runtime target point to achieve the performance result; and

changing the set of parameters based on parameter optimization process.

2. The method of claim 1 , wherein the collected information includes at least one of compiler information and runtime information.

3. The method of claim 2 , wherein the collected information includes compiler information, and wherein the compiler information is associated with at least one of program size, category of instruction, and instruction count.

4. The method of claim 2 , wherein the collected information includes runtime information, and wherein the runtime information is associated with at least one of cache misses and I/O throughput.

5. The method of claim 1 , wherein the changing of the set of parameters is based on the collected information and the performance result.

6. The method of claim 5 , further comprising performing a space exploration in the collected information domain utilizing the first model and the second model, wherein the changing of the set of parameters is based on the space exploration.

7. The method of claim 1 , further comprising compiling the program utilizing said changed set of parameters.

8. A system for program optimization comprising:

a processor executing instructions stored in a memory device, wherein the processor:

compiles a program with respect to a performance result utilizing a set of parameters, wherein the set of parameters is an initial set of parameters used to compile the program to achieve a desired target output associated with the performance result, and wherein the performance result comprises the desired target output as specifically defined by a user;

collects information associated with the compiling of the program, wherein the collected information is program characteristic or program behavior information external to the performance result;

generates a first functional model correlating the set of parameters to the collected information, wherein generating the first model includes correlating only data points of the program characteristic or program behavior information to the initial set of parameters;

generates a second functional model correlating the performance result to the collected information, wherein generating the second model includes correlating only data points of the program characteristic or program behavior information to the desired target output specifically defined by the user;

performing a space exploration process on a search space of the first functional model using the second functional model to identify an optimal runtime target point with respect to the program characteristic or program behavior information, wherein, a parameter optimization process is performed using the first functional model to identify optimal parameters for the optimal runtime target point to achieve the performance result; and

changes the set of parameters based on the parameter optimization process.

9. The system of claim 8 , wherein the collected information includes at least one of compiler information and runtime information.

10. The system of claim 9 , wherein the collected information includes compiler information, and wherein the compiler information is associated with at least one of program size, category of instruction, and instruction count.

11. The system of claim 9 , wherein the collected information includes runtime information, and wherein the runtime information is associated with at least one of cache misses and I/O throughput.

12. The system of claim 8 , wherein the changing of the set of parameters is based on the collected information and the performance result.

13. The system of claim 12 , wherein the processor further performs a space exploration in the collected information domain utilizing the first model and the second model, wherein the changing of the set of parameters is based on the space exploration.

14. The system of claim 8 , wherein the processor further compiles the program utilizing said changed set of parameters.

15. A computer program product for program optimization, by a processor, the computer program product embodied on a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:

an executable portion that compiles a program with respect to a performance result utilizing a set of parameters, wherein the set of parameters is an initial set of parameters used to compile the program to achieve a desired target output associated with the performance result, and wherein the performance result comprises the desired target output as specifically defined by a user;

an executable portion that collects information associated with the compiling of the program, wherein the collected information is program characteristic or program behavior information external to the performance result;

an executable portion that generates a first functional model correlating the set of parameters to the collected information, wherein generating the first model includes correlating only data points of the program characteristic or program behavior information to the initial set of parameters;

an executable portion that generates a second functional model correlating the performance result to the collected information, wherein generating the second model includes correlating only data points of the program characteristic or program behavior information to the desired target output specifically defined by the user;

an executable portion that performs a space exploration process on a search space of the first functional model using the second functional model to identify an optimal runtime target point with respect to the program characteristic or program behavior information, wherein, a parameter optimization process is performed using the first functional model to identify optimal parameters for the optimal runtime target point to achieve the performance result; and

an executable portion that changes the set of parameters based on the parameter optimization process.

16. The computer program product of claim 15 , wherein the collected information includes at least one of compiler information and runtime information.

17. The computer program product of claim 16 , wherein the collected information includes compiler information, and wherein the compiler information is associated with at least one of program size, category of instruction, and instruction count.

18. The computer program product of claim 16 , wherein the collected information includes runtime information, and wherein the runtime information is associated with at least one of cache misses and I/O throughput.

19. The computer program product of claim 15 , wherein the changing of the set of parameters is based on the collected information and the performance result.

20. The computer program product of claim 19 , wherein the computer-readable program code portions further include an executable portion that performs a space exploration in the collected information domain utilizing the first model and the second model, wherein the changing of the set of parameters is based on the space exploration.

21. The computer program product of claim 15 , wherein the computer-readable program code portions further include an executable portion that compiles the program utilizing said changed set of parameters.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2019
From: CHEN, TONG; ZHANG, LI; SUNG, HYOJIN; JIN, TIAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 050869/0677 →
Continuity (1)
Related Publication 20210132922A1 · May 6, 2021