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.

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.

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

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.

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:

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.

Numerous compilers are available to provide a rich programming environment for scientific and technical computing. A detailed list of single CPU, distributed memory, and shared memory compilers and their machine availability is provided. Note this page is deprecated in favor of