This document describes how to use and interpret the results of Valgrind's Memcheck tool on LLNL's Linux-based supercomputers. The goal is to avoid many of the common gotchas other users have encountered and to help interpret Memcheck's results as efficiently as possible.

mpiP is a lightweight profiling library for MPI applications. Because it only collects statistical information about MPI functions, mpiP generates considerably less overhead and much less data than tracing tools. All the information captured by mpiP is task-local. It only uses communication during report generation, typically at the end of the experiment, to merge results from all of the tasks into one output file.

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. All C++ language features are supported including templates and namespaces.

Useful introductory information on LC's software environment is presented in the Software and Development Environment section of the Introduction to Livermore Computing Resources, or the Linux Clusters Overview for system-specific information.

This page lists available online tutorials related to parallel programming and using LC's HPC systems.

Since 1998, Software Carpentry has been teaching researchers the computing skills they need to get more done in less time and with less pain. The lessons teach basic lab skills for research computing and lessons are developed collaboratively in GitHub.

Our Development Environment Software consists of compilers and preprocessors, debugging software, memory-related software, profiling tools, tracing tools, and performance analysis tools.

UPDATE: This page is largely deprecated.
In conjunction with our Python user community, Livermore Computing (LC) maintains Python and a set of site-specific packages (modules) on all production CHAOS systems. The information herein, which includes the supported versions of Python and site-packages, the description of each site-package, and Python development techniques, will be useful in using Python under LC environments.

PapiEx is a PAPI-based program for measuring hardware performance events of an application using the command-line. It supports both PAPI preset events and native events. It supports multiple threads of execution as well, including pthreads and OpenMP threads. For MPI programs, PapiEx can gather statistics across tasks. PapiEx also measures the total time spent in I/O and MPI calls.

Allinea DDT is a powerful, easy-to-use graphical debugger capable of debugging: