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