[concurrency-interest] tools for parallel performance debugging

Mohan Radhakrishnan mohanr at fss.co.in
Fri Aug 26 00:00:16 EDT 2011



       I came across http://hpctoolkit.org/ which seems to be for large
parallel systems also. 





From: concurrency-interest-bounces at cs.oswego.edu
[mailto:concurrency-interest-bounces at cs.oswego.edu] On Behalf Of Nathan
Sent: Thursday, August 25, 2011 9:32 PM
To: Danny Dig
Cc: Concurrency
Subject: Re: [concurrency-interest] tools for parallel performance


For identifying threading correctness issues, I recommend using Java
Path Finder (http://babelfish.arc.nasa.gov/trac/jpf).  It executes every
possible thread scheduling combination.  It does so by trying one thread
scheduling combination and then back tracking (i.e. revert the state of
the program) to simulate other combinations.  If there is a data race or
deadlock, it will find it and report it.  It doesn't just tell you that
a data race or deadlock exists but the steps that got to that state.
Because of the number of combinations, it is best to run it on a small
piece of the overall program.

As for synchronization contention, there are several tools available.
Looking through a dump of call stacks and seeing where the most threads
are blocked works for cases where the lock is dropping the throughput by
10% or more.  The call stacks are easy to obtain but can be time
consuming to sift through.  JRockit's Mission Control can tell you
exactly which locks are most contended and give you the call stacks of
where that lock is used.  I am pretty sure most of the profilers can
tell you which locks are most contended, but since JRockit's Mission
Control is free for me I haven't looked at the profilers for a while.  I
thought that JConsole or some tool in the JDK could tell you the most
contended lock... but I am really not sure of that.

As for false sharing, this is something that only the processor can tell
you.  For Intel, I *think* VTune can tell you about false sharing.  I
know that VTune can deal with Java optimized code.

Nathan Reynolds
<http://psr.us.oracle.com/wiki/index.php/User:Nathan_Reynolds>  |
Consulting Member of Technical Staff | 602.333.9091
Oracle PSR Engineering <http://psr.us.oracle.com/>  | Server Technology 

On 8/24/2011 8:07 PM, Danny Dig wrote: 

This community has been providing some great library features for
taming parallelism in Java.
When it comes to tools for parallel performance debugging, it looks to
me that Java is trailing behind C++/Intel's ParallelStudio, or
C#/Microsoft's Visual Studio. When working with Java programs, what
are the tools that you recommend for:
- identifying threading correctness issues (e.g., data-races,
- identifying performance issues (load imbalance, synchronization
contention, false sharing)

==========================================================================================================================================================The information contained in this e-mail message may be privileged and/or confidential and protected from disclosure under applicable law. It is intended only for the individual to whom or entity to which it is addressed as shown at the beginning of the message. If the reader of this message is not the intended recipient, or if the employee or agent responsible for delivering the message is not an employee or agent of the intended recipient, you are hereby notified that any review, dissemination,distribution, use, or copying of this message is strictly prohibited. If you have received this message in error, please notify us immediately by return e-mail and permanently delete this message and your reply to the extent it includes this message. Any views or opinions presented in this message or attachments are those of the author and do not necessarily represent those of the Company. All e-mails and attachments sent and received are subject to monitoring, reading, and archival by the Company.==========================================================================================================================================================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20110826/5ec61483/attachment.html>

More information about the Concurrency-interest mailing list