P
US9087150B2ActiveUtilityPatentIndex 64

Performance analysis system for analyzing inter-thread communications to enhance performance in multithreaded system

Assignee: BIBERSTEIN MARINAPriority: Dec 5, 2011Filed: Dec 5, 2011Granted: Jul 21, 2015
Est. expiryDec 5, 2031(~5.4 yrs left)· nominal 20-yr term from priority
Inventors:BIBERSTEIN MARINAHEILPER ANDREMERINO JAVIER
G06F 11/3409G06F 11/3466
64
PatentIndex Score
4
Cited by
15
References
15
Claims

Abstract

Systems and methods for enhancing performance in a multithreaded computing system are provided. The method comprises receiving a plurality of values associated with a performance characteristic common to a plurality of threads; clusterizing the plurality of threads based on the performance characteristic; analyzing an inter-thread communication between the plurality of threads for identifying a plurality of threads adversely affecting the performance of different parts of the multithreaded program; calculating a performance factor corresponding to the performance characteristic to determine a type of performance improvement activity to be performed on the plurality of threads.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer implemented method for enhancing performance in a multithreaded computing system, the method comprising:
 receiving a plurality of values associated with a performance characteristic common to a plurality of threads in a multithreaded computing system, wherein the performance characteristic of the plurality of threads is based, at least in part, on number of instructions per cycle, and wherein the performance characteristic is determined utilizing a profiling tool; 
 clusterizing the plurality of threads based on the performance characteristic to group the plurality of threads, wherein the performance characteristic indicates that the plurality of threads represent an address space access behavior; 
 analyzing inter-thread communication between the plurality of threads to identify threads that are adversely affecting performance in the multithreaded computing system; 
 providing one or more dependency graphs for analyzing inter-thread communication; 
 calculating a performance factor corresponding to the performance characteristic to determine a type of performance improvement activity to be performed on the plurality of threads; and 
 performing the type of performance improvement activity to enhance performance of the multithreaded computing system. 
 
     
     
       2. The method of  claim 1  further comprising combining a plurality of similarity measures obtained from a pair of threads among the plurality of threads. 
     
     
       3. The method of  claim 1  further comprising estimating the plurality of threads constituting an application bottleneck. 
     
     
       4. The method of  claim 3  further comprising:
 monitoring an interaction between the plurality of threads; 
 recording number of the plurality of threads waiting on a type of resource; and 
 recording number of the plurality of threads enabled to free up the type of resource. 
 
     
     
       5. The method of  claim 1  further comprising quantifying a plurality of dependencies among the plurality of threads by way of the one or more dependency graphs. 
     
     
       6. The method of  claim 5  further comprising collapsing a plurality of dependencies in to a single node in the one or more dependency graphs. 
     
     
       7. The method of  claim 1 , wherein calculating a performance factor comprises identifying a number of threads running in an individual cluster. 
     
     
       8. The method of  claim 1 , wherein calculating a performance factor further comprises identifying a number of threads contributing to a root cause. 
     
     
       9. The method of  claim 1 , wherein calculating a performance factor comprises aggregating the number of threads running in an individual cluster and the number of threads contributing to a root cause. 
     
     
       10. A system to enhance performance of a multithreaded program, the system comprising:
 one or more computer processors; 
 a receiver configured to receive one or more values associated with a performance characteristic for a plurality of threads in a multithreaded program, wherein the performance characteristic for the plurality of threads is based, at least in part, on number of instructions per cycle, and wherein the performance characteristic is determined utilizing a profiling tool; 
 a component configured to clusterize the plurality of threads into a group based on the performance characteristic to group the plurality of threads, wherein the performance characteristic indicates that the plurality of threads represent an address space access behavior; 
 a performance factor calculator configured to analyze inter-thread communication between the plurality of threads to identify threads that are adversely affecting performance in the multithreaded program; 
 a performance factor generating graph module configured to provide one or more dependency graphs for analyzing inter-thread communication; 
 the performance factor calculator further configured to calculate a performance factor corresponding to the performance characteristic common to the plurality of threads and to determine, based on the performance factor, a type of performance improvement activity to be performed on the plurality of threads; 
 an output module configured to provide an indication of the performance factor; and 
 the one or more processors configured to perform the type of performance improvement activity to enhance performance of the multithreaded program. 
 
     
     
       11. The system of  claim 10 , wherein the receiver is enabled to utilize the profiling tool. 
     
     
       12. The system of  claim 11 , wherein the profiling tool is configured to determine a value corresponding to the performance characteristic. 
     
     
       13. The system of  claim 10 , wherein the performance factor calculator further comprises the performance factor generating graph module. 
     
     
       14. The system of  claim 13 , wherein the performance factor generating graph module is enabled to quantify a plurality of dependencies among the plurality of threads. 
     
     
       15. A computer program product comprising logic code embedded in a non-transitory data storage medium, wherein execution of the logic code on a computing system causes the computing system to:
 receive a plurality of values associated with a performance characteristic common to a plurality of threads in a multithreaded computing system, wherein the performance characteristic of the plurality of threads is based, at least in part, on number of instructions per cycle, and wherein the performance characteristic is determined utilizing a profiling tool; 
 clusterize the plurality of threads based on the performance characteristic to group the plurality of threads, wherein the performance characteristics indicates that the plurality of threads represent an address space access behavior; 
 analyze inter-thread communication between the plurality of threads to identify threads that are adversely affecting performance in the multithreaded computing system; 
 provide one or more dependency graphs for analyzing inter-thread communication; 
 calculate a performance factor corresponding to the performance characteristic to determine a type of performance improvement activity to be performed on the plurality of threads; and 
 perform the type of performance improvement activity to enhance performance of the multithreaded computing system.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.