Next: The latex_vis backend, Previous: The picl backend, Up: Supplied backends [Contents][Index]
paraver
backendThe Paraver
trace visualizer accepts a trace file format that records an
execution trace of a message-passing (or other) application and
uses that to display application timelines and statistical data.
Normally, one uses an application-instrumentation tool such as
Extrae to generate
Paraver traces,
and Extrae is, in
fact, compatible with programs generated using the coNCePTuaL
c_mpi
backend (see The c_mpi
backend). However, the
paraver
backend produces Paraver files directly. The intention is to
use the Paraver
format to represent an idealized view of a communication pattern
rather than to store a time-sensitive execution trace. For example,
timing events recorded by
paraver
occur at logical times instead of physical
times and statements such as COMPUTES
/ SLEEPS
(see
Delaying
execution) and TOUCHES
(see Touching memory) take
either zero time or unit time, depending upon a command-line
option. By providing an idealized view of a communication pattern,
paraver
abstracts away timing artifacts so events that
one would expect to occur simultaneously are written to the trace
file as being exactly simultaneous.
As an example, the following is the Paraver output produced by passing the
paraver
backend the coNCePTuaL program, ‘TASK 0
SENDS A 32 KILOBYTE MESSAGE TO TASK 1 THEN TASK 1 SENDS A 256 BYTE
MESSAGE TO TASK 0.’:
#Paraver (06/01/2011 at 11:22):2001_ns:2(1,1):1:2(1:1,1:2),0 3:1:1:1:1:0:0:2:1:2:1:1000:1000:32768:0 2:1:1:1:1:0:1000000:6 2:1:1:1:1:0:1000000:13 2:2:1:2:1:0:1000000:6 2:2:1:2:1:0:1000000:9 1:1:1:1:1:0:1000:4 1:2:1:2:1:0:1000:3 3:2:1:2:1:1000:1000:1:1:1:1:2000:2000:256:0 2:1:1:1:1:1000:1000000:9 2:2:1:2:1:1000:1000000:13 1:1:1:1:1:1000:2000:3 1:2:1:2:1:1000:2000:4
The
paraver
backend also generates an associated
configuration file that maps program state and event numbers to
names and colors. For example, state 4 represents
“blocking send” and is colored a neon fuchsia in Paraver’s graphical
interface; event 1000000 represents “coNCePTuaL,”
and event 1000000, value 13
represents a coNCePTuaL ‘SEND’ event. See the manual,
Paraver Parallel Program Visualization and Analysis Tool:
Tracefile Description, for a detailed description of the
various fields used in the preceding trace file.
paraver
is derived from
interpret
(see The interpret
backend) and therefore supports the
interpret
backend’s --tasks and
--mcastsync options as well
as the standard options described in Running
coNCePTuaL programs. However, because
paraver
does not produce log files, the
--logfile option is absent.
paraver
additionally supports the following two
command-line options:
-D, --dimemas-events=<number> 0=no Dimemas events; 1=extra events for Dimemas simulator [default: 0] -E, --conc-events=<number> 0=exclude names of coNCePTuaL event types; 1=include them [default: 0] -O, --comp-time=<number> Time spent in each non-communication event (ns) [default: 0] -P, --event-time=<number> Paraver event time (ns) [default: 1000] -R, --conc-source=<number> 0=exclude references to coNCePTuaL source lines; 1=include them [default: 1] |
By default, only coNCePTuaL communication events are written to
the trace file. If --comp-time is set to a
positive integer then all events are written to the trace file, and
all non-communication events take the specified amount of time.
Because Paraver
events are marked with physical time (a integral number of
nanoseconds) but
paraver
uses exclusively logical time,
paraver
needs to associate a (fabricated) physical
time with each logical time. The --event-time option specifies
that mapping. By default,
paraver
pretends that each unit of logical time
corresponds to 1 microsecond
(i.e, 1000 nanoseconds) of physical time. In
addition to coNCePTuaL, Paraver also has a notion of an “event.” The
--conc-source and --conc-events
options tell the
paraver
backend which Paraver events to include in the
trace file. If --conc-source is
‘1’ (the default), Paraver will display text like the
following in its Info panel:
User Event at 529,000 ns myfile.ncptl source line Unknown value 203
which indicates that the most recently clicked time in the Paraver timeline represents logical time 529 and corresponds to line 203 of myfile.ncptl. If --conc-events is ‘1’, Paraver will display text like the following in its Info panel:
User Event at 529,000 ns coNCePTuaL event RECEIVE
which indicates that the most recently clicked time in the
Paraver
timeline represents logical time 529 and
represents a coNCePTuaL interpreter ‘RECEIVE’ event
(see The
interpret backend). The Dimemas network simulator accepts the same
traces as the
Paraver visualizer but expects to see a number of additional events
in the trace file. If --dimemas-events is
‘1’, the
paraver
backend will generate those extra events.
One of the goals of coNCePTuaL is to facilitate the explanation
of network performance tests. The
paraver
backend aids in the explanation by making it
easy to show graphically how tasks communicate with each other in
an arbitrary coNCePTuaL program.
Next: The latex_vis backend, Previous: The picl backend, Up: Supplied backends [Contents][Index]