X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/79b624367855c4639e05465472e2a94f69d68d36..03d6207246b4d88cee51d59cb9054f37a986f27b:/docs/source/Configuring_SimGrid.rst diff --git a/docs/source/Configuring_SimGrid.rst b/docs/source/Configuring_SimGrid.rst index 1aa55d8dcd..682f887883 100644 --- a/docs/source/Configuring_SimGrid.rst +++ b/docs/source/Configuring_SimGrid.rst @@ -33,7 +33,7 @@ example, to set the item ``Item`` to the value ``Value``, simply type the following on the command-line: .. code-block:: shell - + my_simulator --cfg=Item:Value (other arguments) Several ``--cfg`` command line arguments can naturally be used. If you @@ -52,7 +52,7 @@ can be done by adding the following to the beginning of your platform file: .. code-block:: xml - + @@ -61,19 +61,19 @@ A last solution is to pass your configuration directly in your program with :cpp:func:`simgrid::s4u::Engine::set_config` or :cpp:func:`MSG_config`. .. code-block:: cpp - + #include int main(int argc, char *argv[]) { simgrid::s4u::Engine e(&argc, argv); - + e->set_config("Item:Value"); - + // Rest of your code } .. _options_list: - + Existing Configuration Items ---------------------------- @@ -193,13 +193,13 @@ models). Also, ``--help-models`` should provide information about all models for all existing resources. - ``network/model``: specify the used network model. Possible values: - + - **LV08 (default one):** Realistic network analytic model (slow-start modeled by multiplying latency by 13.01, bandwidth by .97; bottleneck sharing uses a payload of S=20537 for evaluating RTT). Described in `Accuracy Study and Improvement of Network Simulation in the SimGrid Framework - `_. + `_. - **Constant:** Simplistic network model where all communication take a constant time (one second). This model provides the lowest realism, but is (marginally) faster. @@ -219,11 +219,11 @@ models for all existing resources. `_. - **Reno/Reno2/Vegas:** Models from Steven H. Low using lagrange_solve instead of lmm_solve (experts only; check the code for more info). - - **NS3** (only available if you compiled SimGrid accordingly): + - **NS3** (only available if you compiled SimGrid accordingly): Use the packet-level network simulators as network models (see :ref:`pls_ns3`). This model can be :ref:`further configured `. - + - ``cpu/model``: specify the used CPU model. We have only one model for now: @@ -238,7 +238,7 @@ models for all existing resources. allow parallel tasks because these beasts need some collaboration between the network and CPU model. That is why, ptask_07 is used by default when using SimDag. - + - **default:** Default host model. Currently, CPU:Cas01 and network:LV08 (with cross traffic enabled) - **compound:** Host model that is automatically chosen if @@ -264,7 +264,7 @@ is, all our analytical models) accept specific optimization configurations. - items ``network/optim`` and ``cpu/optim`` (both default to 'Lazy'): - + - **Lazy:** Lazy action management (partial invalidation in lmm + heap in action remaining). - **TI:** Trace integration. Highly optimized mode when using @@ -272,7 +272,7 @@ configurations. now). - **Full:** Full update of remaining and variables. Slow but may be useful when debugging. - + - items ``network/maxmin-selective-update`` and ``cpu/maxmin-selective-update``: configure whether the underlying should be lazily updated or not. It should have no impact on the @@ -340,7 +340,7 @@ be retrieved using the following commands. Both give a set of values, and you should use the last one, which is the maximal size. .. code-block:: shell - + cat /proc/sys/net/ipv4/tcp_rmem # gives the sender window cat /proc/sys/net/ipv4/tcp_wmem # gives the receiver window @@ -348,7 +348,7 @@ and you should use the last one, which is the maximal size. .. _cfg=network/bandwidth-factor: .. _cfg=network/latency-factor: .. _cfg=network/weight-S: - + Correcting Important Network Parameters ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -469,11 +469,11 @@ Here is the full list of plugins that can be activated this way: computations. More details in @ref plugin_energy. - **link_energy:** keeps track of the energy dissipated by communications. More details in @ref SURF_plugin_energy. - - **host_load:** keeps track of the computational load. + - **host_load:** keeps track of the computational load. More details in @ref plugin_load. .. _options_modelchecking: - + Configuring the Model-Checking ------------------------------ @@ -481,14 +481,14 @@ To enable the SimGrid model-checking support the program should be executed using the simgrid-mc wrapper: .. code-block:: shell - + simgrid-mc ./my_program Safety properties are expressed as assertions using the function :cpp:func:`void MC_assert(int prop)`. .. _cfg=model-check/property: - + Specifying a liveness property .............................. @@ -500,11 +500,11 @@ property, as formatted by the ltl2ba program. .. code-block:: shell - + simgrid-mc ./my_program --cfg=model-check/property: .. _cfg=model-check/checkpoint: - + Going for Stateful Verification ............................... @@ -768,7 +768,7 @@ the slowest to the most efficient: raw implementation. |br| Install the relevant library (e.g. with the libboost-contexts-dev package on Debian/Ubuntu) and recompile - SimGrid. + SimGrid. - **raw:** amazingly fast factory using a context switching mechanism of our own, directly implemented in assembly (only available for x86 and amd64 platforms for now) and without any unneeded system call. @@ -832,7 +832,7 @@ application. .. _cfg=contexts/nthreads: .. _cfg=contexts/parallel-threshold: .. _cfg=contexts/synchro: - + Running User Code in Parallel ............................. @@ -874,7 +874,6 @@ which value is either: your machine for no good reason. You probably prefer the other less eager schemas. - Configuring the Tracing ----------------------- @@ -915,7 +914,7 @@ you never used the tracing API. - SMPI simulator and traces for a space/time view: .. code-block:: shell - + smpirun -trace ... The `-trace` parameter for the smpirun script runs the simulation @@ -935,7 +934,7 @@ reproduce an experiment. You have two ways to do that: - Add the contents of a textual file on top of the trace file as comment: .. code-block:: shell - + --cfg=tracing/comment-file:my_file_with_additional_information.txt Please, use these two parameters (for comments) to make reproducible @@ -1011,12 +1010,12 @@ To disable the benchmarking/simulation of computation in the simulated application, the variable ``smpi/simulate-computation`` should be set to no. This option just ignores the timings in your simulation; it still executes the computations itself. If you want to stop SMPI from -doing that, you should check the SMPI_SAMPLE macros, documented in +doing that, you should check the SMPI_SAMPLE macros, documented in Section :ref:`SMPI_adapting_speed`. +------------------------------------+-------------------------+-----------------------------+ | Solution | Computations executed? | Computations simulated? | -+====================================+=========================+=============================+ ++====================================+=========================+=============================+ | --cfg=smpi/simulate-computation:no | Yes | Never | +------------------------------------+-------------------------+-----------------------------+ | --cfg=smpi/cpu-threshold:42 | Yes, in all cases | If it lasts over 42 seconds | @@ -1077,7 +1076,7 @@ http://simgrid.gforge.inria.fr/contrib/smpi-calibration-doc.html http://simgrid.gforge.inria.fr/contrib/smpi-saturation-doc.html .. _cfg=smpi/display-timing: - + Reporting Simulation Time ......................... @@ -1120,7 +1119,7 @@ actual bandwidth (i.e., values between 0 and 1 are valid), latency factors increase the latency, i.e., values larger than or equal to 1 are valid here. .. _cfg=smpi/papi-events: - + Trace hardware counters with PAPI ................................. @@ -1131,7 +1130,7 @@ names of PAPI counters and adds their respective values to the trace files (See Section :ref:`tracing_tracing_options`). .. warning:: - + This feature currently requires superuser privileges, as registers are queried. Only use this feature with code you trust! Call smpirun for instance via ``smpirun -wrapper "sudo " @@ -1195,7 +1194,7 @@ or full names. Check with ldd the name of the library you want to use. Example: .. code-block:: shell - + ldd allpairf90 ... libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007fbb4d91b000) @@ -1420,14 +1419,14 @@ mem[100..199] are shared while other area remain private. Then, it can be deallocated by calling SMPI_SHARED_FREE(mem). When smpi/shared-malloc:global is used, the memory consumption problem -is solved, but it may induce too much load on the kernel's pages table. +is solved, but it may induce too much load on the kernel's pages table. In this case, you should use huge pages so that we create only one entry per Mb of malloced data instead of one entry per 4k. To activate this, you must mount a hugetlbfs on your system and allocate at least one huge page: .. code-block:: shell - + mkdir /home/huge sudo mount none /home/huge -t hugetlbfs -o rw,mode=0777 sudo sh -c 'echo 1 > /proc/sys/vm/nr_hugepages' # echo more if you need more @@ -1449,7 +1448,7 @@ to 0, the simulated clock is not advanced in these calls, which leads to issue if your application contains such a loop: .. code-block:: cpp - + while(MPI_Wtime() < some_time_bound) { /* some tests, with no communication nor computation */ } @@ -1514,7 +1513,7 @@ with gdb: set variable simgrid::simix::breakpoint = 3.1416 .. _cfg=verbose-exit: - + Behavior on Ctrl-C ..................