PTLIB:
Evaluation Properties for Parallel Debuggers
and Performance Analyzers
- Examination of program state
-
BDE-2b
- Stack traceback(s) for processes
- Content of variables, aggregrates, and blocks of memory
- Mechanism for examining the final
state of a failed application in terms of source-level constructs,
but access to source-level information may be limited if the code
was not compiled for debugging
(BDE-2e)
- Event tracing
- Event tracing mechanism for generating event records including
timestamp and event type designator and formatted in SDDF with
- API for dynamically activating and deactivating event monitoring
during execution
- visual display of event data
(BDE-2g)
- Execution replay
- Re-executing a message-passing program with the same event ordering
as in a previous execution (helpful in debugging nondeterministic
programs).
- Handles optimized code
- In presence of code optimization, mechanism for reporting minimal
information on program state (stack traceback, access to variables
that have not been eliminated) and some degree of control over
program execution (breakpoints where possible, single-stepping at
some level, stepping over subroutines)
(BDE-2d)
- Input/output characterization
- Providing data on I/O performance characteristics such as queue lengths,
delays, service times, and request throughputs, so that the programmer
can adjust placement of data across multiple storage devices,
and select appropriate caching and prefetch policies.
- Message tracing/display
- For all supported message-passing libraries, mechanism for
tracing message sends, receives, and synchronizations, at least to
the level supported interactively by the Ptool Consortium's
message queue manager.
(BDE-2h)
- Modification of program state
- Change contents of variables, aggregates, and blocks of memory
(BDE-2b)
- Profiling
- Capability of profiling CPU time distribution from all
processes/threads at the levels of subprocedures and coarse blocks
(e.g., large loops) with
- capability for statically restricting amount of profiling data
collected to certain portions of the source code through use
of compiler directives or command-line switches
- textual and visual display of profiler output
(BDE-2f)
- Race detection
- In a message passing program, a race condition exists when two or
more messages are in transit to the same receive operation.
Some races, such as when a master process collects results from slaves
and message order is irrelevant, are benign. Others are unintended
and are the result of a race-causing bug.
- Remote data access pattern analysis
- Analysis of communication costs with respect
to distributed data structures, to assist the programmer in tuning
data alignments and distributions -- e.g., in HPF.
- Single point of control for parallel debugging
- Multiple debugger invocations to control individual processes
not acceptable.
- Control includes:
- Start/stop processes
- Set/list/remove breakpoints and data watchpoints
- Single-step into/over subprocedure invocations
(BDE-2b)
- Source code level reporting
- Reports debugging information at level of application source code
(before preprocessing) for baseline languages (C, Fortran 77), including
support for mixed language applications
(BDE-2b)
- Statistical analysis
- Performance statistics analysis whereby performance measures
obtained for individual PEs/processes are reported and summarized
for the entire application, including
- mechanism for capturing the statistics and storing them for
later analysis/viewing
- summary of memory usage
(BDE-2i)
- Thread support
- Support for multiple threads per node, including ability to
- set breakpoints for individual threads
- monitor dynamically created or loaded threads
- support applications that create and delete threads automatically or
are composed of multiple executables due to dynamically loaded codes
Last updated on August 14, 1996
ptlib_maintainers@netlib.org