Adaptive and dynamic filtering of threaded programs
First Claim
Patent Images
1. A method comprising:
- analyzing by a performance analyzer the operation of a computer application, the computer application comprising a first program thread and a second program thread, the performance analyzer including an adaptive filter;
recording overhead for the first program thread and the second program thread in a computer memory;
observing an inter-thread event comprising the transfer of a signal from the second program thread to the first program thread; and
adjusting the overhead for the first program thread using the adaptive filter if the first program thread waits a time period before receiving the signal from the second program thread, wherein adjusting the overhead for the first program thread includes;
determining whether the overhead of the second program thread minus the overhead of the first program thread is greater than the wait time period, andupon determining that the overhead of the second program thread minus the overhead of the first program thread is greater than the wait time period, performing one of adding the wait time period to the overhead of the first program thread or ignoring the wait time period of the inter-thread event.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for adaptive and dynamic filtering of threaded programs. An embodiment of a method comprises analyzing the operation of a computer program, the computer program comprising a plurality of program threads; tracking overhead for the computer program; observing program events for the computer program; rationing overhead between program threads in inter-thread program events; and filtering program events based on a dynamic threshold.
17 Citations
14 Claims
-
1. A method comprising:
-
analyzing by a performance analyzer the operation of a computer application, the computer application comprising a first program thread and a second program thread, the performance analyzer including an adaptive filter; recording overhead for the first program thread and the second program thread in a computer memory; observing an inter-thread event comprising the transfer of a signal from the second program thread to the first program thread; and adjusting the overhead for the first program thread using the adaptive filter if the first program thread waits a time period before receiving the signal from the second program thread, wherein adjusting the overhead for the first program thread includes; determining whether the overhead of the second program thread minus the overhead of the first program thread is greater than the wait time period, and upon determining that the overhead of the second program thread minus the overhead of the first program thread is greater than the wait time period, performing one of adding the wait time period to the overhead of the first program thread or ignoring the wait time period of the inter-thread event. - View Dependent Claims (2, 3, 4)
-
-
5. A performance analyzer system comprising:
-
a dynamic memory to store a multithreaded program, the program comprising a first program thread and a second program threat a processor to run the multithreaded program; and a performance analyzer including; an adaptive filter for the multithreaded program, the adaptive filter to determine the rationing of overhead between a plurality of program threads in inter-thread events, wherein the adaptive filter is to determine whether an inter-thread event between a first program thread and a second program thread, the first program thread waiting a time period before receiving a signal from the second program thread, may have occurred without the operation of the performance analyzer by determining whether the overhead of the second program thread minus the overhead of the first program thread is greater than the wait time period; and a dynamic filter for the multithreaded program, the dynamic filter to modify a threshold for collection of data based on the performance of the program. - View Dependent Claims (6, 7)
-
-
8. A system comprising:
-
a dynamic memory to store a multithreaded program, the program comprising a first program thread and a second program thread; a processor to run the multithreaded program; and an analysis tool to analyze the performance of the multithreaded program as run by the processor, the analysis tool comprising a first component to track overhead for program threads and a second component to determine which cross-thread events are to be observed by the analysis tool; wherein the first component determines the rationing of overhead time between the first program thread and the second program thread in a cross-thread event comprising the second program thread sending a signal to the first program thread, the first component determining an overhead element to ration to the first program thread if the first program thread waits for a time period before receiving the signal from the second program thread, the overhead element rationed to the first program thread being equal to the waiting period if the difference between the overhead of the second thread and the overhead of the first thread is greater than the length of the waiting time period. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A machine-readable medium having stored thereon data representing sequences of instructions that, when executed by a processor, cause the processor to perform operations comprising:
-
analyzing the operation of a computer program, the computer program comprising a plurality of program threads; tracking overhead for the computer program; observing inter-thread events for the computer program; rationing overhead between program threads in inter-thread inter-thread events, wherein rationing overhead includes; observing a first inter-thread event comprising the transfer of a signal from a second program thread to a first program thread; and adjusting the overhead for the first program thread if the first program thread waits a time period before receiving the signal from the second program thread, wherein adjusting the overhead for the first program thread includes; determining whether the overhead of the second program thread minus the overhead of the first program thread is greater than the wait time period, and upon determining that the overhead of the second program thread minus the overhead of the first program thread is greater than the wait time period, performing one of adding the wait time period to the overhead of the first program thread or ignoring the wait time period of the inter-thread event; and filtering program events based on a dynamic threshold.
-
Specification