Title: HPD -- A High Performance Debugger Implementation
1HPD -- A High Performance Debugger Implementation
- A Parallel Tools Consortium project
- http//www.ptools.org/
2Work funded by the DoD High Performance
Computing Modernization Program, ARL, CEWES, and
NAVO Major Shared Resource Centers, through
Programming Environment and Training
(PET). Views, opinions, and/or findings
contained in this report are those of the
author(s) and should not be construed as an
official Department of Defense position, policy
or decision unless so designated by other
official documentation.
3What is HPD?
- HPD is an implementation following the standard
proposed by The High Performance Debugger Forum. - A debugger for parallel and multi-threaded
applications. - Is light weight, easy to use and presents
multiprocess/multithread information in a format
that is easy to understand.
4What is the High Performance Debugger Forum?
- The Forum was sponsored by The Ptools Consortium
- The goals were to define a useful and appropriate
set of standards relevant to debugging tools for
HPC systems and to accommodate needs of both
users and tool developers. - http//www.ptools.org/hpdf/
5The High Performance Debugger Standard
- The standard was written to address the following
types of programs - high performance in nature (i.e., performance
is an important consideration) and typically
parallel - written in one or more high-level languages
- intended to run on possibly many different
computer systems - The standard assumes explicit parallelism as the
basic programming model. - The standard is applicable to both shared-memory
programming (multiple threads of execution in an
address space) and distributed-memory programming
(multiple processes co-operating via
message-passing libraries, such as PVM or MPI)
6The High Performance Debugger Standard
- The standard distinguishes the functionality
needed for threads-only, process-only and
multilevel (multi-process and multi-thread)
models of parallelism - The overall objective of the standard is to make
it possible for debuggers of all three types to
provide support that is consistent as possible,
given the constraints imposed by the underlying
model. - The major languages considered were Fortran (F77
and F90), C, and C.
7Who is doing what
- Oregon State University developed the parser for
the command line debugger - University of Tennessee is working on
implementing the rest of the debugger and writing
the DBX client - University of Tennessee and Robert Hood from NASA
are working on making the p2d2 internal code
modular so it can be used in this project as a
basis for HPD.
8Implementation Details
- There are several layers to make the
implementation modular - Front-end (e.g. command line, GUI )
- Data Management Layer
- Debugger Server Layer
- Client Layer (e.g. GDB, DBX, etc)
- The Data Management Layer contains all the group
and process information.
9Implementation Details (cont.)
- The client layer parses output, sends the
commands to the various debuggers. - Each process will have one debugger attached to
it. The control of these debuggers will be
through the front-end
10p2d2/HPDs Client-server Architecture
remote server
a.out
user interface
distribution manager
debugger server
remote server
a.out
client
remote server
a.out
11What will the beta release contain (est. Feb 99)?
- A subset version of the command line debugger
implementing the following - run, continue, break, print, where
- Due to memory issues run will only work the first
time you use it, then you must exit out and
restart the debugger - GDB will be the only debugger supported initially.
12Future Work
- DBX as the per-process debugger
- Add functionality to implement as much of the
standard as possible - Memory clean-up routines
- Make the code more modular
13For More Information
- http//icl.cs.utk.edu/projects/hpd/
- http//www.ptools.org/
- http//www.ptools.org/hpdf/
- http//www.ptools.org/hpdf/draft/