Third party tools
 
 
 

Threading Analysis tools

Intel ThreadChecker

This is a very useful tool that catches actual and potential race conditions in traversed code paths. It requires instrumentation and slows down runtimes significantly. It is available on both Windows and Linux.

Intel ThreadProfiler

This tool presents a view of thread usage during runtime, showing starts and ends of threaded regions, regions of oversubscription and undersubscription. It works with both native threads and OpenMP, on Windows and Linux.

Helgrind

A Linux open source threading analysis tool that checks for race conditions in code.

Intel compiler

Although this might not seem like a threading analysis tool, the Intel compiler does support two very useful compiler warning flags to detect writes or potential writes to static variables, which are a common threading problem:

warning #1711: assignment to statically allocated variable
warning #1712: address taken of statically allocated variable

These warnings are enabled as -ww1711 on OSX and Linux, and /Qww1711 on Windows.

Profiling tools

Shark

Profiler on OSX. Shark is supplied with CHUD tools as a free optional install.

Zoom

Statistical call graph profiler that runs on Linux. See http://rotateright.com/

Intel PTU

Prototype statistical call graph tool, somewhat similar to Shark, available from http://whatif.intel.com .Requires an existing VTune license. Runs on Windows and Linux.

VTune

Heavyweight profiler from Intel. Call-graphing adds significant overhead in instrumentation and runtime. Available on Windows and Linux.