Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
now that mmalloc doesn't break tesh anymore nor nothing visible, enable the legacy...
[simgrid.git] / doc / FAQ.doc
index 1e10e5f..5f82438 100644 (file)
@@ -72,29 +72,7 @@ filter (e.g. with bash):
 ./msg_test small_platform.xml small_deployment.xml 2>&1 | ../../tools/MSG_visualization/colorize.pl
 \endverbatim
 
-We also have a more graphical output. Have a look at MSG_paje_output(). It 
-generates an input to <a href="http://www-id.imag.fr/Logiciels/paje/">Paje</a>.
-<center>
-\htmlonly
- <a href="Paje_MSG_screenshot.jpg"><img src="Paje_MSG_screenshot_thn.jpg"></a>
-\endhtmlonly
-</center>
-
-Visualization with Paje can be seen as a kind of postmortem
-analysis. However, as soon as you start playing with big simulations,
-you'll realize that processing such output is kind of tricky. There is
-so much generic information that it is hard to find the information
-you are looking for.
-
-As a matter of fact, logging really depends on simulations (e.g. what
-kind of events is important...). That is why we do not propose a big
-dump of your whole simulation (it would slow everything down) but give
-you neat tools to structure you logs. Have a look at \ref XBT_log. In
-fact, rather than a post-mortem analysis, you may want to do it on the
-fly. The process you are running can do whatever you want. Have you
-thought about adding a global structure where you directly compute the
-information that are really important rather than writing everything
-down and then processing huge files?
+We also have a more graphical output. Have a look at section \ref faq_tracing.
 
 \subsection faq_C Argh! Do I really have to code in C?
 
@@ -397,13 +375,13 @@ TODO
 \verbatim
 "cmake -D[name]=[value] ... ./"
  
-[name]                 disable_gtnets                  [value] ON/OFF or TRUE/FALSE or 1/0
-               disable_java                            ON/OFF or TRUE/FALSE or 1/0
-               disable_lua                             ON/OFF or TRUE/FALSE or 1/0
-               disable_ruby                            ON/OFF or TRUE/FALSE or 1/0
-
+[name]                 enable_gtnets                   [value] ON/OFF or TRUE/FALSE or 1/0
+               enable_java                             ON/OFF or TRUE/FALSE or 1/0
+               enable_lua                              ON/OFF or TRUE/FALSE or 1/0
+               enable_ruby                             ON/OFF or TRUE/FALSE or 1/0
                enable_compile_optimizations            ON/OFF or TRUE/FALSE or 1/0
                enable_compile_warnings                 ON/OFF or TRUE/FALSE or 1/0
+               enable_smpi                             ON/OFF or TRUE/FALSE or 1/0
                enable_maintainer_mode                  ON/OFF or TRUE/FALSE or 1/0
                enable_supernovae                       ON/OFF or TRUE/FALSE or 1/0
                enable_tracing                          ON/OFF or TRUE/FALSE or 1/0
@@ -419,18 +397,20 @@ TODO
                                                                                                                                                           
 \subsubsection faq_cmakeoption2 Options explaination
 
-  \li disable_gtnets : set to true implie that user doesn't want to use gtnets.
+  \li enable_gtnets : set to true implie that user wants to use gtnets.
 
-  \li disable_java : set to true implie that user doesn't want to add java langage into simgrid compilation.
+  \li enable_java : set to true implie that user wants to add java langage into simgrid compilation.
 
-  \li disable_lua : set to true implie that user doesn't want to add lua langage into simgrid compilation.
+  \li enable_lua : set to true implie that user wants to add lua langage into simgrid compilation.
 
-  \li disable_ruby : set to true implie that user doesn't want to add ruby langage into simgrid compilation.
+  \li enable_ruby : set to true implie that user wants to add ruby langage into simgrid compilation.
 
   \li enable_compile_optimizations : add flags "-O3 -finline-functions -funroll-loops -fno-strict-aliasing"
 
   \li enable_compile_warnings : add flags "-Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror"
 
+  \li enable_smpi : Set to true if you want to use smpi lib. Actually on simgrid v3.4.1 Mac doesn't support lib smpi.
+
   \li enable_maintainer_mode : set to true it remakes some files.
 \verbatim
 include/surf/simgrid_dtd.h
@@ -489,13 +469,13 @@ src/gras/DataDesc/ddt_parse.yy.c
 Those options are initialized the first time you launch \"cmake ./\" whithout specified option.
 
 \verbatim
-disable_gtnets                 off
-disable_java                   off
-disable_lua                    off
-disable_ruby                   off
-
+enable_gtnets                  on
+enable_lua                     on
+enable_ruby                    on
+enable_java                    off
 enable_compile_optimizations   off
 enable_compile_warnings                off
+enable_smpi                    on
 enable_maintainer_mode         off
 enable_supernovae              off
 enable_tracing                 off
@@ -537,6 +517,7 @@ Then follow instructions.
 cmake ./               configure the project
 make                   build all targets
 make VERBOSE=1         build all targets and print build command lines
+make check             execute command make test
 make test              test all targets and summarize
 make dist              make the distrib
 make distcheck         check the dist (make + make dist + make test) 
@@ -576,142 +557,144 @@ If you want to test before make a commit you can simply make "ctest -D Experimen
 \li Mode maintainer
 
 cmake -Denable_maintainer_mode=on ./
-\verbatim GTnetS doesn't works : set -Ddisable_gtnets=on
+\verbatim 
+-- lookign for config.h
 with_context auto change to ucontext
-(skaddr)
-(sksize)
-Make : src/simgrid.jar with : /usr/bin/javac
-Make examples/java with : /usr/bin/javac
+GIT_DATE       : 2010-05-04~09-59-15
+GIT_VERSION    : 53ec816
+GIT_SVN_VERSION : 7669
 
-Configuration of package `simgrid' (revision 7228M) on arch (=4):
-       BUILDNAME :             UCONTEXT
-            SITE :             Linux_Ubuntu 9.10_x86_64
+Configuration of package `simgrid' (revision 7669) on arch (=4):
+            BUILDNAME :        UCONTEXT
+            SITE      :        Linux_2.6.31-21-generic_x86_64
+            Release   :        simgrid-3.4~rev7669
 
-       Compiler: c++ :         /usr/bin/c++
-              version:         c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-                 c   :         /usr/bin/gcc
-              version:         gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
+        Compiler: c++ :        /usr/bin/c++
+               version:        c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
+        Compiler: c   :        /usr/bin/gcc
+               version:        gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
 
-       CFlags:                 -g3
-       CPPFlags:               
-       LDFlags:                
+              CFlags  :        -I/usr/lib/ruby/1.8/x86_64-linux -I/usr/include/lua5.1 -g3
+              CPPFlags:        
+              LDFlags :        -L/usr/lib/
 
        Context backend:        ucontext
-       Compile Gtnets:         0
-                 path:         
-       Compile Java:           1
-       Compile Lua:            1
-       Compile Ruby:           0
-
-       Maintainer mode:        on
-       Supernovae mode:        off
+       Compile Gtnets :        0
+       Gtnets path    :        
+       Compile Java   :        0
+       Compile Lua    :        1
+       Compile Ruby   :        1
+
+       Compile Smpi   :        ON
+       Maintainer mode:        ON
+       Supernovae mode:        OFF
+       Tracing mode   :        OFF
 
-       Simgrid dependencies:   dl -llua5.1
-       Gras dependencies:      pthread
-       Ruby dependencies:      
-       Smpi dependencies:      
+       Simgrid dependencies:   -lm -lruby1.8 -module -ldl -llua5.1 -lrt
+       Gras dependencies   :   -lm -lpthread -lrt
+       Smpi dependencies   :   
 
-       USER_PREFIX:            /usr/local
        INSTALL_PREFIX:         /usr/local
 
 -- Configuring done
 -- Generating done
--- Build files have been written to: /home/navarrop/Bureau/simgrid-trunk
+-- Build files have been written to: /home/navarrop/Developments/simgrid
 \endverbatim
 
 \li Mode supernovae
 
 cmake -Dsupernovae=on ./
-\verbatim GTnetS doesn't works : set -Ddisable_gtnets=on
+\verbatim 
+-- lookign for config.h
 with_context auto change to ucontext
-(skaddr)
-(sksize)
-Make : src/simgrid.jar with : /usr/bin/javac
-Make examples/java with : /usr/bin/javac
+GIT_DATE       : 2010-05-04~09-59-15
+GIT_VERSION    : 53ec816
+GIT_SVN_VERSION : 7669
 
-Configuration of package `simgrid' (revision 7228M) on arch (=4):
-       BUILDNAME :             SUPERNOVAE
-            SITE :             Linux_Ubuntu 9.10_x86_64
+Configuration of package `simgrid' (revision 7669) on arch (=4):
+            BUILDNAME :        SUPERNOVAE
+            SITE      :        Linux_2.6.31-21-generic_x86_64
+            Release   :        simgrid-3.4~rev7669
 
-       Compiler: c++ :         /usr/bin/c++
-              version:         c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-                 c   :         /usr/bin/gcc
-              version:         gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
+        Compiler: c++ :        /usr/bin/c++
+               version:        c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
+        Compiler: c   :        /usr/bin/gcc
+               version:        gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
 
-       CFlags:                 -O3 -finline-functions -funroll-loops -fno-strict-aliasing -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror -g3
-       CPPFlags:               
-       LDFlags:                
+              CFlags  :        -O3 -finline-functions -funroll-loops -fno-strict-aliasing -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror -I/usr/lib/ruby/1.8/x86_64-linux -I/usr/include/lua5.1 -g3
+              CPPFlags:        
+              LDFlags :        -L/usr/lib/
 
        Context backend:        ucontext
-       Compile Gtnets        0
-                 path:         
-       Compile Java:           1
-       Compile Lua:            1
-       Compile Ruby:           0
+       Compile Gtnets :        0
+       Gtnets path    :        
+       Compile Java   :        0
+       Compile Lua    :        1
+       Compile Ruby   :        1
 
-       Maintainer mode:        off
-       Supernovae mode:        on
+       Compile Smpi   :        ON
+       Maintainer mode:        OFF
+       Supernovae mode:        OFF
+       Tracing mode   :        OFF
 
-       Simgrid dependencies:   dl -llua5.1
-       Gras dependencies:      pthread
-       Ruby dependencies:      
-       Smpi dependencies:      
+       Simgrid dependencies:   -lm -lruby1.8 -module -ldl -llua5.1 -lrt
+       Gras dependencies   :   -lm -lpthread -lrt
+       Smpi dependencies   :   
 
-       USER_PREFIX:            /usr/local
        INSTALL_PREFIX:         /usr/local
 
 -- Configuring done
 -- Generating done
--- Build files have been written to: /home/navarrop/Bureau/simgrid-trunk
+-- Build files have been written to: /home/navarrop/Developments/simgrid
+
 \endverbatim
 
 \li Mode GTnetS
 
 cmake -Dgtnets_path=/home/navarrop/Bureau/usr/ ./
-\verbatim with_context auto change to ucontext
-(skaddr)
-(sksize)
-Make : src/simgrid.jar with : /usr/bin/javac
-Make examples/java with : /usr/bin/javac
+\verbatim 
+-- lookign for config.h
+with_context auto change to ucontext
+GIT_DATE       : 2010-05-04~09-59-15
+GIT_VERSION    : 53ec816
+GIT_SVN_VERSION : 7669
 
-Configuration of package `simgrid' (revision 7228M) on arch (=4):
-       BUILDNAME :             GTNETS
-            SITE :             Linux_Ubuntu 9.10_x86_64
+Configuration of package `simgrid' (revision 7669) on arch (=4):
+            BUILDNAME :        GTNETS
+            SITE      :        Linux_2.6.31-21-generic_x86_64
+            Release   :        simgrid-3.4~rev7669
 
-       Compiler: c++ :         /usr/bin/c++
-              version:         c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-                 c   :         /usr/bin/gcc
-              version:         gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
+        Compiler: c++ :        /usr/bin/c++
+               version:        c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
+        Compiler: c   :        /usr/bin/gcc
+               version:        gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
 
-       CFlags:                  -L/home/navarrop/Bureau/usr/lib -I/home/navarrop/Bureau/usr/include/gtnets -g3
-       CPPFlags:                -L/home/navarrop/Bureau/usr/lib -I/home/navarrop/Bureau/usr/include/gtnets 
-       LDFlags:                
+              CFlags  :        -O3 -finline-functions -funroll-loops -fno-strict-aliasing -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror -I/usr/lib/ruby/1.8/x86_64-linux -L/usr/lib -I/usr/include/gtnets -I/usr/include/lua5.1 -g3
+              CPPFlags:        -L/usr/lib -I/usr/include/gtnets 
+              LDFlags :        -L/usr/lib/
 
        Context backend:        ucontext
-       Compile Gtnets        1
-                 path:         /home/navarrop/Bureau/usr
-       Compile Java:           1
-       Compile Lua:            1
-       Compile Ruby:           0
+       Compile Gtnets :        1
+       Gtnets path    :        /usr
+       Compile Java   :        0
+       Compile Lua    :        1
+       Compile Ruby   :        1
 
-       Maintainer mode:        off
-       Supernovae mode:        off
+       Compile Smpi   :        ON
+       Maintainer mode:        OFF
+       Supernovae mode:        OFF
+       Tracing mode   :        OFF
 
-       Simgrid dependencies:   dl -llua5.1 -lgtnets
-       Gras dependencies:      pthread
-       Ruby dependencies:      
-       Smpi dependencies:      
+       Simgrid dependencies:   -lm -lruby1.8 -module -ldl -llua5.1 -lgtnets -lrt
+       Gras dependencies   :   -lm -lpthread -lrt
+       Smpi dependencies   :   
 
-       USER_PREFIX:            /usr/local
        INSTALL_PREFIX:         /usr/local
 
-INFO -->> Take care to have export LD_LIBRARY_PATH before run make command for make examples with gtnets
-copy and paste : export LD_LIBRARY_PATH=/home/navarrop/Bureau/usr/lib/:$LD_LIBRARY_PATH
-
-
 -- Configuring done
 -- Generating done
--- Build files have been written to: /home/navarrop/Bureau/simgrid-trunk
+-- Build files have been written to: /home/navarrop/Developments/simgrid
+
 \endverbatim
 
 \subsection faq_cmakeinstall How to install with cmake?
@@ -732,57 +715,6 @@ make
 make install-simgrid
 \endverbatim
 
-\subsection faq_screenshot Screenshot
-
-\verbatim
-navarrop@caraja:~$ cd Bureau/simgrid-trunk/
-navarrop@caraja:~/Bureau/simgrid-trunk$ cmake ./
-
-GTnetS doesn't works : set -Ddisable_gtnets=on                  <-|some warnings are printed 
-with_context auto change to ucontext                           <-|
-(skaddr)                                                       <--info (needed)
-(sksize)                                                       <--info (needed)
-Make : src/simgrid.jar with : /usr/bin/javac                   <--info (if java)
-Make examples/java with : /usr/bin/javac                       <--info (if java)
-
-Configuration of package `simgrid' (revision 7209M) on arch (=4):
-       BUILDNAME :             UCONTEXT                                <-- name of the compilation regarding to cdash
-            SITE :             Linux_Ubuntu 9.10_x86_64                <-- distribution of the local machine regarding to cdash
-
-       Compiler: c++ :         /usr/bin/c++
-              version:         c++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-                 c   :         /usr/bin/gcc
-              version:         gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
-
-       CFlags:                 -g3
-       CPPFlags:               
-       LDFlags:                
-
-       Context backend:        ucontext
-       Compile Gtnets:         0
-                 path:         
-       Compile Java:           1
-       Compile Lua:            1
-       Compile Ruby:           0
-
-       Maintainer mode:        OFF
-       Supernovae mode:        OFF
-
-       Simgrid dependencies:   -ldl -llua5.1
-       Gras dependencies:      pthread
-       Ruby dependencies:      
-       Smpi dependencies:      
-
-       USER_PREFIX:            /usr/local
-       INSTALL_PREFIX:         /usr/local
-
--- Configuring done
--- Generating done
--- Build files have been written to: /home/navarrop/Bureau/simgrid-trunk
-\endverbatim
-Here all options are checked and printed. If it doesn't match with your configuration 
-it is probably due to a wrong configuration.
-
 \subsection faq_cmakehowto How to modified sources files for developers
 
 \subsubsection faq_cmakehowto1 Add an executable or examples.
@@ -1673,13 +1605,34 @@ Other models have been proposed and implemented since then (see for example
 <a href="http://mescal.imag.fr/membres/arnaud.legrand/articles/simutools09.pdf">Accuracy Study and Improvement of Network Simulation in the SimGrid Framework</a>)
 and can be activated at runtime. For example:
 \verbatim
-./mycode platform.xml deployment.xml --cfg=workstation_model:compound --cfg=network_model:LV08 -cfg=cpu_model:Cas01
+./mycode platform.xml deployment.xml --cfg=workstation/model:compound --cfg=network/model:LV08 -cfg=cpu/model:Cas01
 \endverbatim
 
 Possible models for the network are currently "Constant", "CM02",
 "LegrandVelho", "GTNets", Reno", "Reno2", "Vegas". Others will
 probably be added in the future and many of the previous ones are
-experimental and are likely to disappear without notice...
+experimental and are likely to disappear without notice... To know the
+list of the currently  implemented models, you should use the
+--help-models command line option.
+
+\verbatim
+./masterslave_forwarder ../small_platform.xml deployment_masterslave.xml  --help-models
+Long description of the workstation models accepted by this simulator:
+  CLM03: Default workstation model, using LV08 and CM02 as network and CPU
+  compound: Workstation model allowing you to use other network and CPU models
+  ptask_L07: Workstation model with better parallel task modeling
+Long description of the CPU models accepted by this simulator:
+  Cas01_fullupdate: CPU classical model time=size/power
+  Cas01: Variation of Cas01_fullupdate with partial invalidation optimization of lmm system. Should produce the same values, only faster
+  CpuTI: Variation of Cas01 with also trace integration. Should produce the same values, only faster if you use availability traces
+Long description of the network models accepted by this simulator:
+  Constant: Simplistic network model where all communication take a constant time (one second)
+  CM02: Realistic network model with lmm_solve and no correction factors
+  LV08: Realistic network model with lmm_solve and these correction factors: latency*=10.4, bandwidth*=.92, S=8775
+  Reno: Model using lagrange_solve instead of lmm_solve (experts only)
+  Reno2: Model using lagrange_solve instead of lmm_solve (experts only)
+  Vegas: Model using lagrange_solve instead of lmm_solve (experts only)
+\endverbatim
 
 \subsection faq_tracing Tracing Simulations for Visualization
 
@@ -1851,6 +1804,7 @@ Trace Analysis through Visualization
  Other auxiliary options to check the trace file:
   -c, --check                Check the integrity of trace file
   -h, --hierarchy            Export the trace type hierarchy
+  -l, --list                 List entity types
 
   -?, --help                 Give this help list
       --usage                Give a short usage message
@@ -1893,6 +1847,232 @@ take into account a new time-slice can be expensive. When this happens, the
 when the checkbox <i>Update Drawings on Sliders
 Change</i> is selected will not be followed.
 
+- <b>Understanding Triva - graph</b>: this part of the documention explains how
+  to analyze the traces using the graph view of Triva, when the user executes
+the tool passing <em>--graph</em> as parameter. Triva opens three windows when
+this parameter is used: the <i>Time Interval</i> window (previously described),
+the <i>Graph Representation</i> window, and the <em>Graph Configuration</em>
+window. The Graph Representation is the window where drawings take place.
+Initially, it is completely white waiting for a proper graph configuration input
+by the user. We start the description of this type of analysis by describing the
+<i>Graph Configuration</i> window (depicted below). By using a particular
+configuration, triva
+can be used to customize the graph drawing according to
+the SimGrid trace that was created with user-specific categories. Before delving
+into the details of this customization, let us first explain the major parts of
+the graph configuration window. The buttons located in the top-right corner can
+be used to delete, copy and create a new configuration. The checkbox in the
+top-middle part of the window indicates if the configuration typed in the
+textfield is syntactically correct (we are using the non-XML 
+<a href="http://en.wikipedia.org/wiki/Property_list">Property List Format</a> to
+describe the configuration). The pop-up button located on the top-left corner 
+indicates the selected configuration (the user can have multiple graph
+configurations). The bottom-left text field contains the name of the current
+configuration (updates on this field must be followed by typing enter on the
+keyboard to take into account the name change). The bottom-right <em>Apply</em>
+button activates the current configuration, resulting on an update on the graph
+drawings.
+<center>
+\htmlonly
+<a href="triva-graph_configuration.png" border=0><img src="triva-graph_configuration.png" width="50%" border=0></a>
+\endhtmlonly
+</center>
+<b>Basic SimGrid Configuration</b>: The figure shows in the big textfield the
+basic configuration that should be used during the analysis of a SimGrid trace
+file. The basic logic of the configuration is as follows:
+\verbatim
+{
+  node = (HOST);
+  edge = (LINK);
+\endverbatim
+The nodes of the graph will be created based on the <i>node</i> parameter, which
+in this case is the different <em>"HOST"</em>s of the platform 
+used to simulate. The <i>edge</i> parameter indicates that the edges of the
+graph will be created based on the <em>"LINK"</em>s of the platform. After the
+definition of these two parameters, the configuration must detail how
+<em>HOST</em>s and <em>LINK</em>s should be drawn. For that, the configuration
+must have an entry for each of the types used. For <em>HOST</em>, as basic
+configuration, we have:
+\verbatim
+  HOST = {
+    size = power;
+    scale = global;
+  };
+\endverbatim
+The parameter <em>size</em> indicates which variable from the trace file will be
+used to define the size of the node HOST in the visualization. If the simulation
+was executed with availability traces, the size of the nodes will be changed
+according to these traces. The parameter <em>scale</em> indicates if the value
+of the variable is <em>global</em> or <em>local</em>. If it is global, the value
+will be relative to the power of all other hosts, if it is local, the value will
+be relative locally.
+For <em>LINK</em> we have:
+\verbatim
+  LINK = {
+    src = SrcHost;
+    dst = DstHost;
+    
+    size = bandwidth;
+    scale = global;
+  };
+\endverbatim
+For the types specified in the <em>edge</em> parameter (such as <em>LINK</em>),
+the configuration must contain two additional parameters: <em>src</em> and
+<em>dst</em> that are used to properly identify which nodes this edge is
+connecting. The values <em>SrcHost</em> and <em>DstHost</em> are always present
+in the SimGrid trace file and should not be changed in the configuration. The
+parameter <em>size</em> for the LINK, in this case, is configured as the
+variable <em>bandwidth</em>, with a <em>global</em> scale. The scale meaning
+here is exactly the same used for nodes. The last parameter is the GraphViz
+algorithm used to calculate the position of the nodes in the graph
+representation.
+\verbatim
+  graphviz-algorithm = neato;
+}
+\endverbatim
+<b>Customizing the Graph Representation</b>: triva is capable to handle
+a customized graph representation based on the variables present in the trace
+file. In the case of SimGrid, every time a category is created for tasks, two
+variables in the trace file are defined: one to indicate node utilization (how
+much power was used by that task category), and another to indicate link
+utilization (how much bandwidth was used by that category). For instance, if the
+user declares a category named <i>request</i>, there will be variables named
+<b>p</b><i>request</i> and a <b>b</b><i>request</i> (<b>p</b> for power and
+<b>b</b> for bandwidth). It is important to notice that the variable
+<i>prequest</i> in this case is only available for HOST, and
+<i>brequest</i> is only available for LINK. <b>Example</b>: suppose there are
+two categories for tasks: request and compute. To create a customized graph
+representation with a proportional separation of host and link utilization, use
+as configuration for HOST and LINK this:
+\verbatim
+  HOST = {
+    size = power;
+    scale = global;
+  
+    sep_host = {
+      type = separation;
+      size = power;
+      values = (prequest, pcomputation);
+    };
+  };
+
+  LINK = {
+    src = SrcHost;
+    dst = DstHost;
+    size = bandwidth;
+    scale = global;
+
+    sep_link = {
+      type = separation;
+      size = bandwidth;
+      values = (brequest, bcomputation);
+    };
+  };
+\endverbatim
+Where <i>sep_host</i> contains a composition of type <i>separation</i> where
+its max size is the <i>power</i> of the host and the variables <i>prequest</i>
+and <i>pcomputation</i> are drawn proportionally to the size of the HOST. And
+<i>sep_link</i> is also a separation where max is defined as the
+<i>bandwidth</i> of the link, and the variables <i>brequest</i> and
+<i>bcomputation</i> are drawn proportionally within a LINK.
+<i>This configuration enables the analysis of resource utilization by MSG tasks,
+and the identification of load-balancing issues, network bottlenecks, for
+instance.</i> \n
+<b>Other compositions</b>: besides <i>separation</i>, it is possible to use
+other types of compositions, such as gradients, and colors, like this:
+\verbatim
+    gra_host = {
+      type = gradient;
+      scale = global;
+      values = (numberOfTasks);
+    };
+    color_host = {
+      type = color;
+      values = (is_server);
+    };
+\endverbatim
+Where <i>gra_host</i> creates a gradient within a node of the graph, using a
+global scale and using as value a variable called <i>numberOfTasks</i>, that
+could be declared by the user using the optional tracing functions of SimGrid.
+If scale is global, the max and min value for the gradient will be equal to the
+max and min numberOfTasks among all hosts, and if scale is local, the max and
+min value based on the value of numberOfTasks locally in each host.
+And <i>color_host</i> composition draws a square based on a positive value of
+the variable <i>is_server</i>, that could also be defined by the user using the
+SimGrid tracing functions. \n
+<b>The Graph Visualization</b>: The next figure shows a graph visualization of a
+given time-slice of the masterslave_forwarder example (present in the SimGrid
+sources). The red color indicates tasks from the <i>compute</i> category. This
+visualization was generated with the following configuration:
+\verbatim
+{
+  node = (HOST);
+  edge = (LINK);
+
+  HOST = {
+    size = power;
+    scale = global;
+  
+    sep_host = {
+      type = separation;
+      size = power;
+      values = (pcompute, pfinalize);
+    };
+  };
+  LINK = {
+    src = SrcHost;
+    dst = DstHost;
+    size = bandwidth;
+    scale = global;
+
+    sep_link = {
+      type = separation;
+      size = bandwidth;
+      values = (bcompute, bfinalize);
+    };
+  };
+  graphviz-algorithm = neato;
+}
+\endverbatim
+<center>
+\htmlonly
+<a href="triva-graph_visualization.png" border=0><img src="triva-graph_visualization.png" width="50%" border=0></a>
+\endhtmlonly
+</center>
+
+- <b>Understading Triva - colors</b>: An important issue when using Triva is how
+  to define colors. To do that, we have to know which variables are defined in
+the trace file generated by the SimGrid library. The parameter <em>--list</em> 
+lists the variables for a given trace file:
+\verbatim
+$ Triva -l masterslave_forwarder.trace
+iFile
+c  platform
+c    HOST
+v     power
+v     is_slave
+v     is_master
+v     task_creation
+v     task_computation
+v     pcompute
+v     pfinalize
+c    LINK
+v     bandwidth
+v     latency
+v     bcompute
+v     bfinalize
+c  user_type
+\endverbatim
+We can see that HOST has seven variables (from power to pfinalize) and LINK has
+four (from bandwidth to bfinalize). To define a red color for the
+<i>pcompute</i> and <i>bcompute</i> (which are defined based on user category
+<i>compute</i>), execute:
+\verbatim
+$ defaults write Triva 'pcompute Color' '1 0 0'
+$ defaults write Triva 'bcompute Color' '1 0 0'
+\endverbatim
+Where the three numbers in each line are the RGB color with values from 0 to 1.
+
 \section faq_troubleshooting Troubleshooting
 
 \subsection faq_trouble_lib_compil SimGrid compilation and installation problems