STAT - the Stack Trace Analysis Tool
C C++ Python M4 Shell Makefile Other
Failed to load latest commit information.
config removed cray-alps config option Jun 22, 2016
doc updated documentation Aug 24, 2016
etc build system cleanup May 16, 2016
examples cleaned run script Sep 20, 2016
man updated documentation Aug 24, 2016
scripts bumped version number Sep 20, 2016
.gitignore directory clean up May 16, 2016
AUTHORS final v2.2 commits Jun 1, 2015
ChangeLog reenabled + fixed struct member gathering Sep 6, 2016
Doxyfile doxygen fixes Apr 1, 2014
INSTALL updated documentation Aug 24, 2016
LICENSE documentation updates, minor bug fixes, minor additions Mar 10, 2014 Minor readme updates Feb 29, 2016
STATlogo.gif initial import. Nov 4, 2010
bootstrap Added libtoolize to bootstrap Apr 1, 2015 bumped version number Jul 25, 2016
script-stat-install fixes to DySectAPI filter Jul 10, 2015

STAT: the Stack Trace Analysis Tool

Please see LICENSE for usage terms.


The Stack Trace Analysis Tool (STAT) is a highly scalable, lightweight tool that gathers and merges stack traces from all of the processes of a parallel application to form call graph prefix trees. STAT generates two prefix trees termed 2D-trace-space and 3D-trace-space-time. The 2D-trace-space prefix tree is a merge of a single stack trace from each task in the parallel application. The 3D-trace-space-time prefix tree is a merge of several stack traces from each task gathered over time. The latter provides insight into whether tasks are making progress or are in a hang state (livelock, deadlock, infiite loop, etc.). The call graph prefix trees also identify processes equivalence classes, processes exhibitin similar behavior with respect to their call paths. A representative task from each equivalence class can then be fed into a full-featured debugger for root cause analysis at a manageable scale.

STAT's source code also includes STATBench, a tool to emulate STAT. STATBench enables the benchmarking of STAT on arbitrary machine architectures and applications by fully utilizing parallel resources and generating artificial stack traces.


STAT has several dependent libraries that must be installed:

In addition, the STAT GUI requires Python with PyGTK, both of which are commonly preinstalled with many Linux operating systems.

Please refer to INSTALL for instructions on building STAT.


STAT is able to run on any machine where all of the dependent libraries run. This currently includes:

  • IBM BlueGene/L
  • IBM BlueGene/P
  • IBM BlueGene/Q
  • x86-based architectures with SLURM
  • x86-based architectures with OpenMPI
  • Cray XT
  • Cray XE
  • Cray XK


Please direct any questions to Gregory Lee.