X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/603a2971cfa9ec8a4fd4493b74c5680956828423..f96797fbc8f3a5f6b0d26fbf899ff25a75323f56:/docs/source/Configuring_SimGrid.rst diff --git a/docs/source/Configuring_SimGrid.rst b/docs/source/Configuring_SimGrid.rst index 7a59994c84..27cb2c6e27 100644 --- a/docs/source/Configuring_SimGrid.rst +++ b/docs/source/Configuring_SimGrid.rst @@ -79,9 +79,10 @@ Existing Configuration Items .. note:: The full list can be retrieved by passing ``--help`` and - ``--help-cfg`` to an executable that uses SimGrid. - -- **clean-atexit:** :ref:`cfg=clean-atexit` + ``--help-cfg`` to an executable that uses SimGrid. Try passing + ``help`` as a value to get the list of values accepted by a given + option. For example, ``--cfg=plugin:help`` will give you the list + of plugins available in your installation of SimGrid. - **contexts/factory:** :ref:`cfg=contexts/factory` - **contexts/guard-size:** :ref:`cfg=contexts/guard-size` @@ -94,6 +95,10 @@ Existing Configuration Items - **cpu/model:** :ref:`options_model_select` - **cpu/optim:** :ref:`Cpu Optimization Level ` +- **debug/breakpoint:** :ref:`cfg=debug/breakpoint` +- **debug/clean-atexit:** :ref:`cfg=debug/clean-atexit` +- **debug/verbose-exit:** :ref:`cfg=debug/verbose-exit` + - **exception/cutpath:** :ref:`cfg=exception/cutpath` - **host/model:** :ref:`options_model_select` @@ -107,14 +112,11 @@ Existing Configuration Items - **model-check/checkpoint:** :ref:`cfg=model-check/checkpoint` - **model-check/communications-determinism:** :ref:`cfg=model-check/communications-determinism` - **model-check/dot-output:** :ref:`cfg=model-check/dot-output` -- **model-check/hash:** :ref:`cfg=model-checker/hash` - **model-check/max-depth:** :ref:`cfg=model-check/max-depth` - **model-check/property:** :ref:`cfg=model-check/property` -- **model-check/record:** :ref:`cfg=model-check/record` - **model-check/reduction:** :ref:`cfg=model-check/reduction` - **model-check/replay:** :ref:`cfg=model-check/replay` - **model-check/send-determinism:** :ref:`cfg=model-check/send-determinism` -- **model-check/sparse-checkpoint:** :ref:`cfg=model-check/sparse-checkpoint` - **model-check/termination:** :ref:`cfg=model-check/termination` - **model-check/timeout:** :ref:`cfg=model-check/timeout` - **model-check/visited:** :ref:`cfg=model-check/visited` @@ -132,8 +134,6 @@ Existing Configuration Items - **path:** :ref:`cfg=path` - **plugin:** :ref:`cfg=plugin` -- **simix/breakpoint:** :ref:`cfg=simix/breakpoint` - - **storage/max_file_descriptors:** :ref:`cfg=storage/max_file_descriptors` - **surf/precision:** :ref:`cfg=surf/precision` @@ -169,7 +169,6 @@ Existing Configuration Items - **Tracing configuration options** can be found in Section :ref:`tracing_tracing_options` - **storage/model:** :ref:`options_model_select` -- **verbose-exit:** :ref:`cfg=verbose-exit` - **vm/model:** :ref:`options_model_select` @@ -216,12 +215,10 @@ models for all existing resources. without corrective factors. The timings of small messages are thus poorly modeled. This model is described in `A Network Model for Simulation of Grid Application - `_. - - **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): + `_. + - **ns-3** (only available if you compiled SimGrid accordingly): Use the packet-level network - simulators as network models (see :ref:`pls_ns3`). + simulators as network models (see :ref:`model_ns3`). This model can be :ref:`further configured `. - ``cpu/model``: specify the used CPU model. We have only one model @@ -419,15 +416,15 @@ meant to be detached as well. .. _options_pls: -Configuring NS3 -^^^^^^^^^^^^^^^ +Configuring ns-3 +^^^^^^^^^^^^^^^^ -**Option** ``ns3/TcpModel`` **Default:** "default" (NS3 default) +**Option** ``ns3/TcpModel`` **Default:** "default" (ns-3 default) -When using NS3, there is an extra item ``ns3/TcpModel``, corresponding +When using ns-3, there is an extra item ``ns3/TcpModel``, corresponding to the ``ns3::TcpL4Protocol::SocketType`` configuration item in -NS3. The only valid values (enforced on the SimGrid side) are -'default' (no change to the NS3 configuration), 'NewReno' or 'Reno' or +ns-3. The only valid values (enforced on the SimGrid side) are +'default' (no change to the ns-3 configuration), 'NewReno' or 'Reno' or 'Tahoe'. Configuring the Storage model @@ -617,35 +614,6 @@ The ``model-check/communications-determinism`` and communication determinism mode of the model-checker which checks determinism properties of the communications of an application. -.. _cfg=model-check/sparse-checkpoint: - -Incremental Checkpoints -....................... - -When the model-checker is configured to take a snapshot of each -explored state (with the ``model-checker/visited`` item), the memory -consumption can rapidly reach GiB ou Tib of memory. However, for many -workloads, the memory does not change much between different snapshots -and taking a complete copy of each snapshot is a waste of memory. - -The ``model-check/sparse-checkpoint`` option item can be set to -**yes** to avoid making a complete copy of each snapshot. Instead, -each snapshot will be decomposed in blocks which will be stored -separately. If multiple snapshots share the same block (or if the -same block is used in the same snapshot), the same copy of the block -will be shared leading to a reduction of the memory footprint. - -For many applications, this option considerably reduces the memory -consumption. In somes cases, the model-checker might be slightly -slower because of the time taken to manage the metadata about the -blocks. In other cases however, this snapshotting strategy will be -much faster by reducing the cache consumption. When the memory -consumption is important, by avoiding to hit the swap or reducing the -swap usage, this option might be much faster than the basic -snapshotting strategy. - -This option is currently disabled by default. - Verification Performance Considerations ....................................... @@ -656,36 +624,15 @@ really meaningful: you should expect the contribution of the memory consumption of the snapshots to be @f$ @mbox{number of processes} @times @mbox{stack size} @times @mbox{number of states} @f$. -The ``model-check/sparse-checkpoint`` can be used to reduce the memory -consumption by trying to share memory between the different snapshots. - When compiled against the model checker, the stacks are not protected with guards: if the stack size is too small for your application, the stack will silently overflow on other parts of the memory (see :ref:`contexts/guard-size `). -.. _cfg=model-checker/hash: - -State Hashing -............. - -Usually most of the time of the model-checker is spent comparing states. This -process is complicated and consumes a lot of bandwidth and cache. -In order to speedup the state comparison, the experimental ``model-checker/hash`` -configuration item enables the computation of a hash summarizing as much -information of the state as possible into a single value. This hash can be used -to avoid most of the comparisons: the costly comparison is then only used when -the hashes are identical. - -Currently most of the state is not included in the hash because the -implementation was found to be buggy and this options is not as useful as -it could be. For this reason, it is currently disabled by default. - -.. _cfg=model-check/record: .. _cfg=model-check/replay: -Recording and replaying verifications -..................................... +Replaying buggy execution paths out of the model-checker +........................................................ Debugging the problems reported by the model-checker is challenging: First, the application under verification cannot be debugged with gdb because the @@ -697,11 +644,7 @@ enabling the usage of classical debugging tools. When the model-checker finds an interesting path in the application execution graph (where a safety or liveness property is violated), it -can generate an identifier for this path. To enable this behavious the -``model-check/record`` must be set to **yes**, which is the case -by default. - -Here is an example of output: +generates an identifier for this path. Here is an example of output: .. code-block:: shell @@ -717,11 +660,11 @@ Here is an example of output: [ 0.000000] (0:@) Visited states = 68 [ 0.000000] (0:@) Executed transitions = 46 -This path can then be replayed outside of the model-checker (and even -in non-MC build of simgrid) by setting the ``model-check/replay`` item -to the given path. The other options should be the same (but the -model-checker should be disabled). Note that format and meaning of the -path may change between different releases. +The interesting line is ``Path = 1/3;1/4``, which means that you should use +`--cfg=model-check/replay:1/3;1/4`` to replay your application on the buggy +execution path. The other options should be the same (but the model-checker +should be disabled). Note that format and meaning of the path may change between +different releases. Configuring the User Code Virtualization ---------------------------------------- @@ -1066,8 +1009,8 @@ MAX_BANDWIDTH*0.697866 and so on (where MAX_BANDWIDTH denotes the bandwidth of the link). An experimental script to compute these factors is available online. See -http://simgrid.gforge.inria.fr/contrib/smpi-calibration-doc.html -http://simgrid.gforge.inria.fr/contrib/smpi-saturation-doc.html +https://framagit.org/simgrid/platform-calibration/ +https://simgrid.org/contrib/smpi-saturation-doc.html .. _cfg=smpi/display-timing: @@ -1463,12 +1406,12 @@ extra delay by setting smpi/wtime to 0. Other Configurations -------------------- -.. _cfg=clean-atexit: +.. _cfg=debug/clean-atexit: Cleanup at Termination ...................... -**Option** ``clean-atexit`` **default:** on +**Option** ``debug/clean-atexit`` **default:** on If your code is segfaulting during its finalization, it may help to disable this option to request SimGrid to not attempt any cleanups at @@ -1487,12 +1430,12 @@ trace files (see :ref:`pf_trace`) by using this configuration item. To add several directory to the path, set the configuration item several times, as in ``--cfg=path:toto --cfg=path:tutu`` -.. _cfg=simix/breakpoint: +.. _cfg=debug/breakpoint: Set a Breakpoint ................ -**Option** ``simix/breakpoint`` **default:** unset +**Option** ``debug/breakpoint`` **default:** unset This configuration option sets a breakpoint: when the simulated clock reaches the given time, a SIGTRAP is raised. This can be used to stop @@ -1506,12 +1449,12 @@ with gdb: set variable simgrid::simix::breakpoint = 3.1416 -.. _cfg=verbose-exit: +.. _cfg=debug/verbose-exit: Behavior on Ctrl-C .................. -**Option** ``verbose-exit`` **default:** on +**Option** ``debug/verbose-exit`` **default:** on By default, when Ctrl-C is pressed, the status of all existing actors is displayed before exiting the simulation. This is very useful to