NASA
High Performance Computing
and Communications Program
Computational AeroSciences Project
The Portable Parallel/Distributed Debugger (p2d2)
Objective: The objective of the p2d2 project is to build a debugger for multiprocess programs that are distributed across a heterogeneous collection of machines. Later versions of the tool will be tailored to computational fluid dynamics (CFD) programming community. Achievement of this goal will put an effective program development tool in the hands of CFD programmers.
Approach: In the design of p2d2 we have employed a client-server architecture. This approach permits us to isolate the architecture- and operating system-dependent code in a server. Thus, the client-side code remains highly portable. We have designed scalable user interface elements in expectation that users will want to debug computations involving many (say 16-256) processes.
Accomplishments: demonstration at Supercomputing '95 - paper at ACM Symposium on Parallel and Distributed Tools (May 1996) - web-based reference manual (and help files) completed - beta-version made available for users on NAS SP-2
The accompanying graphic shows p2d2 being used to debug "mp_overflow". The main window is the primary location for user interaction with the running program and is divided into several components. The process grid (upper left corner of window) represents all processes in the computation. Each process in the computation is represented by an icon. The particular icon used depends on the process's characteristics and how the grid has been configured. For example, the default grid configuration represents running processes with green squares and stopped processes with red squares.
The process grid is also used to select a single process, called the focus process, for detailed examination. In the main window, the focus process area consists of a program source display and a stack trace display. The program source display shows the code being executed in the focus process. The stack trace display lists all the active calls to functions and subroutines in that process.
The program output area (bottom area of window) displays the output of the program that would normally appear on the terminal if run outside the debugger. In addition, it is used to display the results of certain debugger commands, such as expression evaluation.
Significance: In addition to providing benefits to the CFD programming community, p2d2 can be used as a general-purpose debugger for isolating problems in programs distributed across a heterogeneous collection of machines. As such, its potential user community is quite large.
Status/Plans:
Point of Contact:
Robert Hood
NASA Ames Research Center
rhood@nas.nasa.gov
415.604.0740