  Debugging parallel and distributed programs is a difficult activitiy due to
the multiplicity of sequential bugs, the existence of malign effects like race
conditions and deadlocks, and the huge amounts of data that have to be
processed. These problems are addressed by the Monitoring And Debugging
environment MAD, which offers debugging functionality based on a graphical
representation of a program's execution. The target applications of MAD are
parallel programs applying the standard Message-Passing Interface MPI, which is
used extensively in the high-performance computing domain. The highlights of
MAD are interactive inspection mechanisms including visualization of
distributed arrays, the possibility to graphically place breakpoints, a
mechanism for monitor overhead removal, and the evaluation of racing messages
occuring due to nondeterminism in the code.
