Debugging real-world data-parallel programs with SPiDER

  • Authors:
  • T. Fahringer;K. Sowa-Pieklo

  • Affiliations:
  • Institute for Software Science, University of Vienna, Liechtensteinstr. 22, A-1090 Vienna, Austria;ABB Corporate Research, ul. Starowislna 13A, 31-038 Kraków, Poland

  • Venue:
  • Future Generation Computer Systems - Parallel computing technologies (PaCT-2001)
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Debuggers are crucial to understand the global execution behavior and intricate details of a program, to control the state of many processes, to present distributed information in a concise and clear way, to observe the execution behavior, and to detect and locate programming errors. In this paper we describe the design and implementation of SPiDER which is an interactive source-level debugging system for both regular and irregular High Performance Fortran programs. SPiDER combines a base debugging system for message-passing programs with a high-level debugger that interfaces with an HPF compiler. SPiDER, in addition to conventional debugging functionality, allows a single process of a parallel program to be expected or the entire program to be examined from a global point of view. A sophisticated visualization system has been developed and included in SPiDER to visualize data distributions, data to processor mapping relationships, and array values. SPiDER enables a programmer to dynamically change data distributions as well as array values. For arrays whose distribution can change during program execution, an animated replay displays the distribution sequence together with the associated source code location. Array values can be stored at individual execution points and compared against each other to examine execution behavior (e.g. convergence behavior of a numerical algorithm). Finally, SPiDER also offers limited support to evaluate the performance of parallel programs through a graphical load diagram. SPiDER has been fully implemented and is currently being used for the development of various real-world applications. Several experiments are presented that demonstrate the usefulness of SPiDER.