HPCBIOS_06-05: Baseline Set of DebuggersΒΆ

Note

This policy defines a baseline set of debuggers which can assist HPC users in handling parallel codes.

  • BC Policy: HPCBIOS_06-05
  • Date of Policy: 2012-12-15

The lack of a baseline set of debuggers can compound what is arguably one of the most difficult tasks in scientific code development - debugging new algorithms. The process of tracking down bugs in large scientific codes is frustrating and time consuming. Having to learn a new tool to do so limits efficiency and productivity of valuable HPC programmers.

Somebody can argue that code should be written without bugs yet, until that day arrives, there is a dire need for using debuggers and building expertise upon them.

For these reasons a baseline set of debuggers, preferred to be installed at all systems, has been identified by examining what is in use at different sites and what can be used across a variety of platforms. At this time, these packages are included in the RECOMMENDED baseline set:

Debugger Name Description Compliance Level References
GDB A freeware debugger provided by the GNU project, covered by the GNU public license Supported architectures: any MUST http://www.gnu.org/software/gdb/gdb.html
Valgrind Memory management analysis and profiling MUST http://valgrind.org/
Allinea DDT A popular suite for debugging in the HPC realm, provided by Allinea Supported architectures: x86_64, GPUs, ARM SHOULD (commercial) http://www.allinea.com/products/ddt/
Allinea MAP An MPI profiler built on simplicity Supported architectures: x86_64 SHOULD (commercial) http://www.allinea.com/products/map/
Totalview A long standing de-facto standard for debugging in the HPC realm provided by TotalView Technologies Supported architectures: x86_64, GPUs SHOULD (commercial) http://www.roguewave.com/products/totalview.aspx
IDB Intel Debugger provides support for debugging programs written in C, C++ & Fortran It provides a choice of command-line and graphical user interface (GUI) on Linux. Supported architectures: x86_64, SHOULD (commercial) https://software.intel.com/en-us/articles/idb-linux
MemoryScape Dynamic memory debugging for monitoring heap allocations, memory leaks memory overruns, and memory usage; by Rogue Wave software Supported architectures: x86_64, MAY (commercial) http://www.roguewave.com/products/memoryscape.aspx
Eclipse PTP Parallel Tools Platform supports MPI, OpenMP & UPC; as well as OpenSHMEM & OpenACC Supported architectures: any SHOULD http://www.eclipse.org/ptp/

In order to be compliant, a site is expected have at least the “MUST” class of these debuggers installed (ie. GDB & Valgrind) and in the standard login path across all nodes or, available via modules mechanism; the latter is very suitable for the latest version.

In addition, the GUI interface for TotalView/DDT, when available, MUST be operational and accessible from the compute nodes of the allocated system.

Potential sources of information for further future upgrades of this list include:

Kindly notify -if this policy is inadequate for your work- both your local site technical representative & HPCBIOS maintainers.