|
DIViA
(Debugger with Integrated Visualizer and Analyzer) is
an advanced portable and flexible parallel debugging
environment. It consists of a coherent set of tools
that help programmers in both correctness and performance
debugging. Its constituent tools can also be used as
independent individual tools.
Besides conventional
logical debugging extended to parallel debugging, DIViA
correctness debugger also facilitates visual and message
debugging. DIViA performance debugger detects the communication
bottlenecks and quantifies the performance in terms
of both computation and communication to help the user
in fine tuning the parallel application.
DIViA is a complete
debugging environment for enterprises that need to develop
parallel applications using the message-passing paradigm.
Its software architecture provides a uniform interface
to message passing programs written using various standard
communication interfaces and makes it independent of
the underlying processor architecture. It works with
MPI and debugs parallel applications developed using
C or Fortran.
DESCRIPTION
DIViA debugging environment consists of:
Correctness Debuggers
- Multiprocess Debugger
- Message Debugger
- Parallel Visual Debugger
- Execution Monitor
Performance Debuggers
- Automatic Communication Bottleneck
Detector
- Profile Visualizer
KEY FEATURES
- Portability - Provides Communication
layer neutrality and processor architecture independence
- Collective Control - Allows control
of the execution of tasks as related groups
- Message Debugging - Allows inspecting,
modifying and blocking messages
- Execution Visualization - Provides
multiple views of the execution of the parallel application
- Performance Analysis - Allows quantification
of performance in terms of computation, communication
and synchronization overheads
- Communication Bottleneck Detection
- Supports analysis and detection of communication
bottlenecks
CORRECTNESS DEBUGGING
Correctness
debugging of any program involves detection and fixation
of causes (bugs), which result in incorrect behavior
of the program. In addition to the sequential program
related issues the message passing (MP) parallel programs
get affected by the synchronization between different
constituent tasks and correctness of communication -
in terms of both message data & order and contention
for shared resources if any.
Often the causes for
an incorrect MP program behavior are interrelated in
complex fashion, and detecting the root cause needs
filtering out all the secondary causes. DIViA correctness
debugger introduces Message Debugging and Visual Debugging.
It also facilitates a mechanism of Grouping Tasks using
which multiple tasks can be viewed as a single entity
and a sequential debugger command can be issued to all
the constituent tasks of the group. These aspects of
DIViA correctness debugger makes it well suited for
MP programs.
Multiprocess Debugger
- Ability to debug constituent tasks
of a parallel and distributed application from a single
control point
- Supports the dynamic generation
of task groups
- Parallel analog to frequently use
sequential debugger commands
- Communication and execution oriented
process status display
- Selective debugger control of dynamically
created tasks
- Symbolic, interactive source code
debugger for individual task
- Flexible usage through pushbuttons
and commands
Message Debugger
- Inspection of messages and their
contents from sender's and receiver's perspectives
- Modification of selected message
contents
- Halting user specified tasks when
an event like receipt of a message occurs
- Freezing and thawing of user specified
messages
- Multitude of usage through
variety of user interface objects
Execution Monitor
- Execution flow monitor of sequential
as well as parallel applications
- Visual and textual monitoring
Parallel
Visual Debugger
- Visual portray of various communication
events in an abstract manner
- Three different visual display windows:
Communication Animation, Space Time Diagram and Communication
Matrix
- Focus on order of interprocess communication
through Communication Animation
- Quick glance of communication volume
to help user locate communication hotspots
- Communication status display of
the constituent tasks
- Displays speed control with communication
events history
- Provision for pause, single step
and rewind of application
- On-line/off-line modes of operation
- Textual monitoring of message specifications
- Flexible usage through various
user interface objects
PERFORMANCE DEBUGGING
Performance tuning
of the message passing parallel applications is a challenging
task. DIViA helps users to tune their application by
identifying both computation and communication bottlenecks.
The Profile Visualizer
can easily detect the computational bottleneck region
by systematic hierarchical analysis of the heap of profile
data generated by parallel programs.
The other major cause
of performance degradation is the message communication
cost. Detecting the source of a communication bottleneck
conventionally requires browsing through all the communication
events in a parallel program, with the help of event
traces and visualization tools. Since this is not practical
in most real parallel programs, DIViA provides automatic
detection of communication bottlenecks. It adopts a
two-pass trace collection and filtering technique to
zero in on the bottleneck regions. It also provides
ways of visualizing the bottleneck regions graphically
and provides means to relate the causes of performance
degradation to their sources.
Profile Visualizer
- Hierarchical data representation
- Different performance analysis views
using Task Graph, Gantt chart and Source Code View
- User selectable filters to
mask irrelevant data
Automatic Communication
bottleneck Detector
Automatically
detects Communication Bottleneck
- Provision to hierarchically pinpoint
the actual region of bottleneck
- Minimum perturbation to the user
application because traces are generated only for
the selected task and selected regions
- Task Graph to know the details of
each task's communication
- Space Time Diagram to see the communication
events in the bottleneck region
- Source Code View corresponding to
the event in the bottleneck region
- Minimum analysis time because of
the bucket generation concepts
- No huge tracefiles even for large
user applications
- Static instrumentation method to
collect event traces
- Independent trace collection
and analysis
AVAILABILITY
| Supported
Hardware |
Workstation
Clusters |
| Supported
Operating System |
AIX, Solaris
and Linux |
| User
Interfaces |
GUI |
| Supported
Languages |
Fortran and
C |
| Prerequisite
Softwares |
Java, X/Motif,
MPI |
|

|