Streamline Distributed Debugging Tool
Encyclopedia
The Distributed Debugging Tool, Allinea DDT, is a commercial debugger
produced by Allinea Software of Warwick
, United Kingdom
, primarily for debugging parallel
MPI
or OpenMP
programs, including those running on clusters of Linux
machines, but also used by many for scalar code in C
, C++
and Fortran 90
. According to Allinea's CEO Mike Fish, as of June 2011 it is used on 36 of the top 100 supercomputers on the TOP500 list.
It is used to find bugs on both small and large clusters, from 1 to 1,000s of processors. It is the first debugger to be able to debug a Petascale
system - having debugged 220,000 processes, over 2 Petaflops, on a Cray XT5
at Oak Ridge National Laboratories.
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 is unique in interactive debugging and 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.
The debugger is also able to debug GPU software written for CUDA
applications.
Debugger
A debugger or debugging tool is a computer program that is used to test and debug other programs . The code to be examined might alternatively be running on an instruction set simulator , a technique that allows great power in its ability to halt when specific conditions are encountered but which...
produced by Allinea Software of Warwick
Warwick
Warwick is the county town of Warwickshire, England. The town lies upon the River Avon, south of Coventry and just west of Leamington Spa and Whitnash with which it is conjoined. As of the 2001 United Kingdom census, it had a population of 23,350...
, United Kingdom
United Kingdom
The United Kingdom of Great Britain and Northern IrelandIn the United Kingdom and Dependencies, other languages have been officially recognised as legitimate autochthonous languages under the European Charter for Regional or Minority Languages...
, primarily for debugging parallel
Parallel computing
Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...
MPI
Message Passing Interface
Message Passing Interface is a standardized and portable message-passing system designed by a group of researchers from academia and industry to function on a wide variety of parallel computers...
or OpenMP
OpenMP
OpenMP is an API that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortran, on most processor architectures and operating systems, including Linux, Unix, AIX, Solaris, Mac OS X, and Microsoft Windows platforms...
programs, including those running on clusters of Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
machines, but also used by many for scalar code in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
and Fortran 90
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
. According to Allinea's CEO Mike Fish, as of June 2011 it is used on 36 of the top 100 supercomputers on the TOP500 list.
It is used to find bugs on both small and large clusters, from 1 to 1,000s of processors. It is the first debugger to be able to debug a Petascale
Petascale
In computing, petascale refers to a computer system capable of reaching performance in excess of one petaflop, i.e. one quadrillion floating point operations per second. The standard benchmark tool is LINPACK and Top500.org is the organisation which tracks the fastest supercomputers...
system - having debugged 220,000 processes, over 2 Petaflops, on a Cray XT5
Cray XT5
The Cray XT5 is an updated version of the Cray XT4 supercomputer, launched on November 6, 2007. It includes a faster version of the XT4's SeaStar2 interconnect router called SeaStar2+, and can be configured either with XT4 compute blades, which have four dual-core AMD Opteron processor sockets, or...
at Oak Ridge National Laboratories.
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 is unique in interactive debugging and 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.
The debugger is also able to debug GPU software written for CUDA
CUDA
CUDA or Compute Unified Device Architecture is a parallel computing architecture developed by Nvidia. CUDA is the computing engine in Nvidia graphics processing units that is accessible to software developers through variants of industry standard programming languages...
applications.