IP Library Granted Patent US 8,214,806
Granted Patent B2
US 8,214,806 · App. 11/746,171 · Granted Jul 3, 2012

Iterative, non-uniform profiling method for automatically refining performance bottleneck regions in scientific code

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,214,806
App. No.
11/746,171
Granted
Jul 3, 2012
Kind
B2
Abstract

A method for profiling performance of a system includes steps of: monitoring execution of the system at multiple points during the system's operation; analyzing results derived from the monitoring in order to provide analyzed results; reconfiguring the monitoring non-uniformly according to the analyzed results; and repeatedly performing iterations of the above steps until a particular event occurs. The iterations may be terminated upon: reaching a specified level of analysis precision, determining a source of one or more performance bottlenecks, determining a source of unexpectedly high output or low completion time, completing a predefined number of iterations, reaching an endpoint of an application, or having performed iterations for a specified period of time.

Claims (45)

1. A method for profiling performance of a target system, the method comprising steps of:

monitoring execution of the target system at multiple points during the target system's operation;

analyzing results derived from the monitoring in order to provide performance results;

reconfiguring the monitoring non-uniformly according to the performance results;

repeatedly performing iterations of the monitoring, analyzing, and reconfiguring steps until a particular event occurs; and

presenting the performance results to a user.

2. The method of claim 1 further comprising a step of:

terminating the iterations when the particular event occurs, wherein the event is selected from a group consisting of: reaching a specified level of analysis precision, determining a source of one or more performance bottlenecks, determining a source of unexpectedly high output or low completion time, completing a predefined number of iterations, reaching an endpoint of an application, and having performed iterations for a specified period of time.

3. The method of claim 1 wherein the monitoring step comprises a step of

inspecting a state of the target system, wherein the state comprises at least one selected from a group consisting of: variables, stacks, a program counter, an operating system state, and hardware.

4. The method of claim 1 wherein the monitoring step comprises a step of

inspecting a state of an operating environment associated with the target system, wherein the state comprises at least one selected from a group consisting of: variables, stacks, a program counter, an operating system state, and hardware.

5. The method of claim 1 wherein the monitoring step comprises a step of:

instrumenting the target system using probes.

6. The method of claim 1 wherein the monitoring step comprises a step of:

instrumenting an environment of the target system.

7. The method of claim 1 wherein the presenting step comprises

presenting the performance results to the user after each iteration.

8. The method of claim 1 wherein the monitoring step is predicated upon at least one dimension selected from a group consisting of: sampling frequency, level of detail, and performance metrics to be collected.

9. The method of claim 1 wherein the monitoring step can be performed in one of two modes: parasitic mode and big brother mode.

10. The method of claim 1 wherein the monitoring step comprises performing at least one of the following: sampling, call-chain chasing, hardware events gathering, and potential operating system events gathering.

11. The method of claim 1 wherein the monitoring step further comprises a step of:

utilizing different monitoring methods according to regions of the target system, wherein the different monitoring methods are selected from a group consisting of: types of instrumentation, levels of data collection, and numbers of monitoring points.

12. The method of claim 1 wherein the reconfiguring step comprises a step of increasing the monitoring of target regions.

13. The method of claim 12 wherein the reconfiguring step comprises a step of decreasing the monitoring of regions that are not target regions.

14. The method of claim 1 wherein the analyzing step comprises manual analysis.

15. The method of claim 1 wherein the analyzing step comprises automated analysis performed by a program instructed to discover target regions.

16. The method of claim 8 wherein the non-uniform reconfiguration comprises dimensions selected from a group consisting of: higher frequency and a finer granularity of detail being applied to target regions; and a lower frequency and coarser granularity of detail applied outside the target regions.

17. The method of claim 1 wherein the step of repeatedly performing iterations comprises commencing the iterations according to a predefined event.

18. The method of claim 17 wherein the predefined event is at least one selected from a group consisting of: termination of each execution of the target system, termination of each repetitive subtask, checkpoint of the target system, and restart of the target system.

19. The method of claim 18 wherein a first user performs the method for a second user according to a predetermined agreement.

20. An information processing system for profiling application performance of a target system, the system comprising:

an input/output interface configured for interacting with a user of the system;

a network interface;

a storage area;

a memory comprising logic, wherein the logic comprises:

an instrumentation handler for instrumenting the target system;

a monitoring handler for monitoring execution of the instrumented target system and collecting performance metrics;

an analysis handler for analyzing the performance metrics; and

a reconfiguration handler for reconfiguring the instrumentation and monitoring for a next iteration; and

a processor configured to:

monitor execution of the target system;

analyze results derived from the monitoring;

reconfigure the monitoring non-uniformly according to the analyzed results;

and repeatedly perform iterations of the above steps.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2017
From: INTERNATIONAL BUSINESS MACHINES
To: SERVICENOW, INC.
Reel/Frame 042269/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2007
From: CONG, GUOJING; MALKIN, PETER KENNETH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 019347/0340 →