![]() |
||||||||||||||||||||||||||||||||||||
Main |
|
|||||||||||||||||||||||||||||||||||
|
Eden Trace Viewer (EdenTV)Documentation
What is 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. After starting the program, you are presented with the main EdenTV window, from
which you can open *.parevents tracefiles by clicking the "Open" button.
The first version of EdenTV is the
result of a Master Thesis written at the
Fachbereich Mathematik und
Informatik of the Philipps
Universität Marburg.
What views does EdenTV provide?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. To switch between the views,
just select the desired view in the "View Drop-Down-Box". What do the colours of the diagram bars mean?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.
What do the states of the logical units mean?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. What about process communication?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)
Tip:
What other information does EdenTV display?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. What are EdenTV events?![]() 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:
What to do with misaligned traces?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.
What other features do exist?
![]() ![]() ![]() 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 | ||||||||||||||||||||||||||||||||||