From fb9b4711ee0213301381ef0b7c0a7a446ae9a9e7 Mon Sep 17 00:00:00 2001 From: schnorr Date: Thu, 8 Apr 2010 12:32:16 +0000 Subject: [PATCH] documentation about triva - installation, execution and time-slice description git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7475 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- buildtools/Cmake/src/CMakeDocs.txt | 1 + doc/FAQ.doc | 85 +++++ doc/triva-time_interval.png | Bin 0 -> 58634 bytes doc/triva-time_interval.svg | 552 +++++++++++++++++++++++++++++ 4 files changed, 638 insertions(+) create mode 100644 doc/triva-time_interval.png create mode 100644 doc/triva-time_interval.svg diff --git a/buildtools/Cmake/src/CMakeDocs.txt b/buildtools/Cmake/src/CMakeDocs.txt index 1dbde2dc01..8d725a041e 100644 --- a/buildtools/Cmake/src/CMakeDocs.txt +++ b/buildtools/Cmake/src/CMakeDocs.txt @@ -94,6 +94,7 @@ if(MAKE_DOC) endforeach(file ${PNGS}) exec_program("cp ${PROJECT_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot_thn.jpg ${PROJECT_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot.jpg ${PROJECT_DIRECTORY}/doc/html/" "${PROJECT_DIRECTORY}/doc/") + exec_program("cp ${PROJECT_DIRECTORY}/doc/triva-time_interval.png ${PROJECT_DIRECTORY}/doc/html/" "${PROJECT_DIRECTORY}/doc/") exec_program("cp ${PROJECT_DIRECTORY}/doc/simgrid.css ${PROJECT_DIRECTORY}/doc/html/" "${PROJECT_DIRECTORY}/doc/") set(top_srcdir "..") diff --git a/doc/FAQ.doc b/doc/FAQ.doc index 66f2f863e2..1e10e5f282 100644 --- a/doc/FAQ.doc +++ b/doc/FAQ.doc @@ -1808,6 +1808,91 @@ int main (int argc, char **argv) } \endverbatim +\subsubsection faq_tracing_analyzing Analyzing the SimGrid Traces + +The SimGrid library, during an instrumented simulation, creates a trace file in +the Paje file format that contains the platform utilization for the simulation +that was executed. The visualization analysis of this file is performed with the +visualization tool Triva, with +special configurations tunned to SimGrid needs. This part of the documentation +explains how to configure and use Triva to analyse a SimGrid trace file. + +- Installing Triva: the tool is available in the INRIAGforge, +at http://triva.gforge.inria.fr. +Use the following command to get the sources, and then check the file +INSTALL.simplified. This file contains instructions to install +the tool's dependencies in a Ubuntu/Debian Linux. +\verbatim +$ svn checkout svn://scm.gforge.inria.fr/svn/triva +$ cd triva +$ cat INSTALL.simplified +\endverbatim + +- Executing Triva: a binary called Triva is available after the + installation (you can execute it passing --help to check its +options). If the triva binary is not available after following the +installation instructions, you may want to execute the following command to +initialize the GNUstep environment variables (note that the location of the +GNUstep.sh file may vary depending on your GNUstep installation - the +command is known to work in Ubuntu and Debian Linux): +\verbatim +$ source /usr/share/GNUstep/Makefiles/GNUstep.sh +\endverbatim +You should be able to see this output after the installation of triva: +\verbatim +$ ./Triva.app/Triva --help +Usage: Triva [OPTION...] TRACEFILE +Trace Analysis through Visualization + + You need to use one of the following options: + -g, --graph Graph Analysis + -t, --treemap Treemap Analysis + + Other auxiliary options to check the trace file: + -c, --check Check the integrity of trace file + -h, --hierarchy Export the trace type hierarchy + + -?, --help Give this help list + --usage Give a short usage message +\endverbatim +Triva expects that the user choose one of the available options +(currently --graph or --treemap for a visualization analysis) +and the trace file from the simulation. + +- Understanding Triva - time-slice: the analysis of a trace file using + the tool always takes into account the concept of the time-slice. +This concept means that what is being visualized in the screen is always +calculated considering a specific time frame, with its beggining and end +timestamp. The time-slice is configured by the user and can be changed +dynamically through the window called Time Interval that is opened +whenever a trace file is being analyzed. The next figure depicts the time-slice +configuration window. +In the top of the window, in the space named Trace Time, +the two fields show the beggining of the trace (which usually starts in 0) and +the end (that depends on the time simulated by SimGrid). The middle of the +window, in the square named Time Slice Configuration, contains the +aspects related to the time-slice, including its start and its +size. The gray rectangle in the bottom of this part indicates the +current time-slice that is considered for the drawings. If the checkbox +Update Drawings on Sliders Change is not selected, the button +Apply must be clicked in order to inform triva that the +new time-slice must be considered. The bottom part of the window, in the space +indicated by the square Time Slice Animation can be used to advance +the time-frame automatically. The user configures the amount of time that the +time-frame will forward and how frequent this update will happen. Once this is +configured, the user clicks the Play button in order to see the dynamic +changes on the drawings. +
+\htmlonly + +\endhtmlonly +
+Remarks: when the trace has too many hosts or links, the computation to +take into account a new time-slice can be expensive. When this happens, the +Frequency parameter, but also updates caused by change on configurations +when the checkbox Update Drawings on Sliders +Change is selected will not be followed. + \section faq_troubleshooting Troubleshooting \subsection faq_trouble_lib_compil SimGrid compilation and installation problems diff --git a/doc/triva-time_interval.png b/doc/triva-time_interval.png new file mode 100644 index 0000000000000000000000000000000000000000..b321914d78165023ad1a520e4b4f737c6e191e89 GIT binary patch literal 58634 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 literal 0 HcmV?d00001 diff --git a/doc/triva-time_interval.svg b/doc/triva-time_interval.svg new file mode 100644 index 0000000000..ba1475e72c --- /dev/null +++ b/doc/triva-time_interval.svg @@ -0,0 +1,552 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + Trace Start Time + + + Trace End Time + + Time-Slice Start + + Time-Slice Size + + + CurrentTime-Slice + + Time-Slicegoes forward ofthis amount + + Screen is updateevery thisamount of time + + -- 2.20.1