DEG Supported Software and Computing Tools

The Development Environment Group (DEG) supports software products and computing tools in these categories. For assistance with any of these tools, please contact the LC Hotline via e-mail to lc-hotline@llnl.gov or phone (925) 422-4531.

Compilers and Preprocessors:
C/C++ and Fortran from Intel, PGI, GNU and IBM for LC's Linux and BG/Q clusters. Multiple versions of most compilers are installed. See the Compilers Installed on LC Platforms page for details.

Debugging:
Ranging from simple, serial command line debuggers to full featured GUI-based debuggers for parallel codes. See the sortable Software Tools Table below.

Memory:
For detecting, profiling and debugging a range of memory related issues, such as memory leaks, corruption, errors, heap usage, etc. Several tools are available, which vary in functionality. See the sortable Software Tools Table below.

Profiling:
There are several tools, varying in complexity and features, that provide a wide range of profiling functionality, such as HPM or hardware counter data, Wall-clock time, Time based on PC-sampling (PCS), MPI data, OpenMP data, Pthread data, I/O data, Floating point exception (FPE) data, and more. See the sortable Software Tools Table below.

      Tracing:
When the specific order of events is of interest, tracing can provide a view of application events, including MPI communication, OpenMP parallel regions, application function calls, and HPM data. Several tools are available, most of which are part of a full featured performance analysis toolkit. See the sortable Software Tools Table below.

Performance Analysis:
These tools typically provide more than simple profiling and tracing capabilities. They can include functionality such as multiple methods of data visualization, the calculation of derived metrics, integration of performance data with a database, network performance modeling, etc. See the sortable Software Tools Table below.

Other:
Several tools and APIs are available for the following purposes:

  • Correctness - to help developers identify issues relating to the appropriate use of MPI or OpenMP.
  • Tool Development Infrastructure - libraries that provide APIs to tool developers.
  • Utilities - locally developed
See the sortable Software Tools Table below.

Software Tools Table

How to use this table:

  • Click on any column heading to sort by that column.
  • Mouse-over tool's name to get a fuller description.
  • Click on tool's name to obtain detailed usage information.
  • Click your browser's reload button to reset the entire table.

Tool Name
Mouse-over for description
Click for full usage info
D
E
B
U
G
M
E
M
O
R
Y
T
R
A
C
E
P
R
O
F
I
L
E
P
E
R
F
T
O
O
L
O
T
H
E
R
Platforms __________ Location __________
Dotkit Package Brief Description / Notes
DDT DDT
The Distributed Debugging Tool from Allinea is a full featured, comprehensive graphical debugger for scalar, multi-threaded, and large-scale parallel applications that are written in C, C++, and Fortran. DDT supports all known MPI distributions.
* - - - - - BGQ,Linux /usr/global/tools/ddt ddt

Full featured graphical, parallel debugger
gprof gprof
Gprof is a performance analysis tool used to profile applications to determine where time is spent during program execution. Gprof is included with most Unix/Linux implementations, is simple to use, and can quickly show which parts of an application take the most time (hotspots). Gprof works by automatically instrumenting your code during compilation, and then sampling the application's program counter during execution. Sampling data is saved in a file, typically named gmon.out, which can then be read by the gprof command. Gprof was developed as an extension of the prof command, by providing a call graph of the program's execution.
- - - * - - BGQ,Linux /usr/bin/gprof n/a

Standard unix/linux profiling utility.
HPCToolkit HPCToolkit
HPCToolkit is an integrated suite of tools for measurement and analysis of program performance on computers ranging from multicore desktop systems to the largest supercomputers. Uses low overhead statistical sampling of timers and hardware performance counters. Works with C/C++ and Fortran applications and supports measurement and analysis of serial codes, threaded codes (pthreads, OpenMP), MPI, and hybrid (MPI + threads) parallel codes.
- - * * * - BGQ,Linux /usr/global/tools/hpctoolkit multiple - to view:
"use -l hpctoolkit"
Integrated suite of tools for parallel program performance analysis.
Intel Advisor Intel Advisor
The Intel Advisor tool is a prototyping tool that allows users to analyze their code and determine the costs and benefits of adding various threading models. It works on code written in C, C++, and Fortran, and can model parallelism using OpenMP, Intel Thread Building Blocks, and Intel Cilk Plus.
- - - * * - Linux /usr/local/tools/advisor* multiple - to view:
"use -l advisor"
Performance analysis tool for threaded codes (no-MPI).
Intel Inspector Intel Inspector
The Intel thread checking and memory debugging tool. Inspector replaces the old Thread Checker tool and can find common threading errors such as data races and deadlocks. The Inspector tool also adds memory debugging capabilities such as detecting memory corruption or memory leaks.
* * - - - - Linux /usr/local/tools/inspector* multiple - to view:
"use -l inspector"
Thread correctness tool with memory debugging features included.
Intel Profiler Intel Profiler
The Intel version 12 compilers include options to gather profiles of loops and functions, which may be useful in identifying where your application is spending its time.
- - - * - - Linux Included with Intel compilers n/a

Compiler based loop and function performance profiler.
Intel Static Security Analysis Intel Static Security Analysis
The Intel compiler includes a tool called Static Security Analysis (SSA), which is a static, source code analyzer. It can identify security vulnerabilities in source code, including buffer overflows, use of uninitialized variables, and misuse of pointers, and it can also identify general coding errors, including memory leaks and incorrect usage of programming models and languages. It supports C, C++, and Fortran.
- - - - - * Linux Included with Intel compilers n/a

Identifies coding errors that pose security risks.
Intel VTune Amplifier Intel VTune Amplifier
The Intel VTune Amplifier tool is a full featured performance analysis tool for finding hotspots in serial and multithreaded codes. For threaded applications it can also determine the amount of concurrency and identify bottlenecks created by synchronization primitives. Note the installation on LC machines does not include the advanced hardware analysis capabilities.
- - * * * - Linux /usr/local/tools/vtune* multiple - to view:
"use -l vtune"
Full featured parallel performance analysis tool.
memcheck memcheck
Valgrind's Memcheck tool detects a comprehensive set of memory errors, including reads and writes of unallocated or freed memory and memory leaks.
(Valgrind)
* * - - - - BGQ,Linux /usr/local/bin/memcheck* n/a Memory errors debugging tool.
memP memP
memP is a parallel heap profiling library based on the mpiP MPI profiling tool. memP is able to identify the heap allocation that causes a task to reach its memory in use high water mark (HWM) for each task in a parallel job.
- * - * - - BGQ,Linux /usr/local/tools/memp* multiple - to view:
"use -l memp"
Lightweight memory profiling tool.
mpiP mpiP
mpiP is a lightweight MPI profiling library that provides time spent in MPI functions by callsite and stacktrace.
- - - * - - BGQ,Linux /usr/local/tools/mpip* multiple - to view:
"use -l mpip"
Lightweight MPI profiling tool.
MUST MUST
MUST detects usage errors of the Message Passing Interface (MPI) and reports them to the user. As MPI calls are complex and usage errors common, this functionality is extremely helpful for application developers that want to develop correct MPI applications. This includes errors that already manifest - segmentation faults or incorrect results - as well as many errors that are not visible to the application developer or do not manifest on a certain system or MPI implementation.
- - - - - * n/a

MPI runtime error detection tool.
Open|SpeedShop Open|SpeedShop
Open|SpeedShop is a comprehensive performance analysis tool set with a unified look and feel that covers most important performance analysis steps. Interfaces include a flexible GUI, a scripting interface, and a Python class. All analysis is applied on unmodified binaries and can be used on codes with MPI and/or thread parallelism.
- - * * * - BGQ,Linux /usr/global/tools/openspeedshop multiple - to view:
"use -l openss"
Full featured parallel program performance analysis tool set.
PAPIPAPI
A standardized and portable API for accessing performance counter hardware found in most of contemporary microprocessors.
- - - * - - BGQ,Linux /usr/local/tools/papi multiple - to view:
"use -l papi"
A standardized and portable API for accessing performance counter hardware.
PapiExPapiEx
A PAPI-based performance profiler that measures hardware performance events of an application without having to instrument the application.
- - - * - - Linux /usr/local/tools/papiex multiple - to view:
"use -l papiex"
A PAPI-based performance profiler
STATSTAT
The Stack Trace Analysis Tool is a lightweight tool used to gather, merge, and display stack traces from a running parallel job. This tool can be used to analyze and debug live and deadlock situations.
* - - - - - BGQ,Linux /usr/local/tools/stat multiple - to view:
"use -l stat"
Lightweight stack trace based parallel debugger.
TAUTAU
TAU (Tuning and Analysis Utilities) is a comprehensive profiling and tracing toolkit for performance analysis of parallel programs written in Fortran, C, C++, Java, and Python. It is capable of gathering performance information through instrumentation of functions, methods, basic blocks, and statements. TAU supports most commonly used parallel hardware and programming models.
- - * * * - BGQ,Linux /usr/global/tools/tau* tau

Full featured parallel program performance analyses toolkit.
TotalViewTotalView
TotalView from Rogue Wave Software is a full featured source and machine level debugger for serial, threaded, multiprocess and hybrid codes with an easy-to-use X11 interface. Includes powerful memory debugging tools.
* * - - - - BGQ,Linux /usr/global/tools/totalview/ multiple - to view:
"use -l tv"
Full featured graphical, parallel debugger.
Vampir / VampireServer Vampir / VampireServer
The Vampir trace visualizer provides a variety of means of examining OTF trace data, as generated through VampirTrace, Score-P, OpenSpeedShop, or TAU. VampirServer is a client/server version of Vampir that can quickly extract and analyze data from large trace files by using a parallel backend.
- - * - - - Linux /collab/usr/global/tools/vampir multiple - to view:
"use -l vampir"
Full featured trace visualizer for parallel program OTF trace files.
Vampirtrace Vampirtrace
The VampirTrace library allows MPI communication events of a parallel program to be recorded as a trace file. Additionally, certain program-specific events can also be included. The resulting trace files can be viewed with the Vampir or VampirServer trace visualizers.
- - * - - - BGQ,Linux /collab/usr/global/tools/vampirtrace
/usr/local/tools/vampir (Linux)
multiple - to view:
"use -l vampir"
Library for generating trace files for parallel programs.

Return to top