Allinea DDT is a commercial debugger for parallel MPI or multithreaded C, C++ and Fortran 90 programs. It is used to find bugs on both small and large clusters, from 1 to 1,000s of processors. It is used by developers using many of the world's largest machines -- with production quality scalability beyond Petascale since 2010. The debugger has logarithmic performance for most collective debugging operations, due to using a tree architecture across the machine network to control the many single-process debuggers. This architecture enables operations to be measured in milliseconds at full scale. It features a complete memory debugging tool which can be used to detect memory leaks, or reading and writing beyond the bounds of arrays. DDT includes support for Intel Xeon Phi coprocessors and is also able to debug GPU software written for CUDA applications.
Illustration: DDT Parallel Debugger Main Screen
Temanejo started as a graphical debugger for the task-parallel, data-dependency-driven programming model SMPSs. The foremost goal was to display the task-dependency graph of SMPSs applications, and to allow simple interaction with the SMPSs runtime system in order to control some aspects of the parallel execution of an application. Today, Temanejo is able to assist debugging (to varying extent) for the programming models SMPSs, OmpSs, StarPU, and OpenMP. Temanejo actually is only the graphical frontend. Most of the real work is done by a library called Ayudame which is used to receive information, so called events, from supporting runtime systems, and to exert control over a runtime system by issuing request to it.
Illustration: Temanejo Task-based Debugger