Eden Trace Viewer (EdenTV)
The Eden Trace Viewer (or simply EdenTV) is a tool that can generate diagrams to visualize the behaviour of Eden programs. Here comes an example:
This is an Machine-view diagram generated by EdenTV. You can see how 8 machines have worked together in parallel to solve a problem.
Sometimes the parallel programs do not perform as good as we expect, and the reasons are unknown. The goal of EdenTV is to show the Eden programmers what really happens inside the parallel machines during a program execution, so they can discover reasons for the inefficiency. The motivation of this tool is to provide execution information in order to solve runtime problems, showing this information in an intuitive way.
EdenTV recognizes trace files created by the Eden Runtime System during the execution of the Eden programs. The creation of trace files happens automatically thanks to an extension of the compiler code, so the programmer must not care about it. After the execution of the program the trace file is ready to be analyzed by EdenTV, which creates several diagrams and displays related information.
The current version of EdenTV provides principally three different main views: Machines, Processes and Threads. The views show a horizontal bar for each logical unit (machine, process or thread) that has taken part in the execution. The execution time is projected on the X-axis. The colour of the bars changes depending on the state on which the logical unit is. In these diagrams, the logical units are arranged by the ID they have had during the execution: the smaller is the ID, the nearer to the X-axis is the corresponding bar. Supplemental reordering of the displayed logical units is possible via Drag'n'Drop or sort-buttons.
Besides of the three main views, EdenTV provides an additional view: Processes/Machines, which shows the same bars as the Processes view, but processes on the same machine are grouped together.
The bars in the diagrams are composed by segments which come in different colours. The colours say us the state in which the logical unit was during a time period. The next table explains the relationship between colours and logical unit states used by EdenTV:
* Theoretically, a process can never have no threads, but the Eden Runtime System allows this state in its implementation.
An Eden process, as a purely conceptual unit, consist of a number of threads which share a common graph heap. For the Eden Runtime System, the threads are the basic unit for the implementation, and they can be in four states:
The state of a process depends of the state of its threads. If a thread of the process is in state running, the process is in state running. If all threads of the process are in state blocked, the process is in state blocked. Otherwise the process must have any runnable thread (and no running thread), and so is it in state runnable.
A machine is in state idle when no process of the executed program runs in it. The meaning of the other states is the same as for a process.
EdenTV is also
capable to show the exchange of messages between machines and processes.
Messages are represented as black arrows which point from the sending unit to
the receiving unit. To show the communications, just click the "Messages"
button in the toolbar.
(click on a capture to see it better)
In the middle of the toolbar you will find an "Info" button
which displays a dialog with additional data in text format. The four tabs display statistical information in general and seperated for
each logical unit.
The process-tree from a karatsuba tracefile.
EdenTV reads trace files generated by the Eden Runtime System and builds the diagrams from them. Concretely, the trace files contain relevant events occurred during the execution of a program. EdenTV interpret these events to paint the bar segments with the right colour. To inquire what event has occurred in a certain time point of the execution, click the right mouse button. Here is a table with all events supported by EdenTV:
If your traces are displayed incorrectly, this is usually because the system clocks of the machines do not run synchronously.
To compensate for that, you have the ability to align the views on the machine-startup event. To do so click the "Startup Sync." button.
A last question: why all questions begin with "What"?
Yes, I did it on purpose. I thought it would be cooler.
Eden - Parallel Functional Programming. E-Mail
This page: http://www.mathematik.uni-marburg.de/~eden
|Last change: 14/06/12|