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:

Note: the accompanying graphic shows p2d2 being used to debug the NAS parallel benchmark "mg". The program is running on the front-end and 16 of the computational nodes of the IBM SP2. The left-hand-side of the graphic has the main window of the debugger which shows the status of all of the processes and the location in the source for one of them. The windows on the right-hand-side are giving a variety of more detailed information about the debugging session.

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(s) of Contact:

Robert Hood
NASA Ames Research Center
rhood@nas.nasa.gov
URL: http://www.nas.nasa.gov/NAS/Tools/Projects/P2D2/