Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
s4u::Host::create_disk, human-friendly string version
[simgrid.git] / docs / source / Configuring_SimGrid.rst
index d420c7155b332f5cc31496436d21e5bc143f0d2f..f048a73d5edb935a950de80ef09b60435af3b0e2 100644 (file)
@@ -141,12 +141,14 @@ Existing Configuration Items
 - **surf/precision:** :ref:`cfg=surf/precision`
 
 - **For collective operations of SMPI,** please refer to Section :ref:`cfg=smpi/coll-selector`
+- **smpi/auto-shared-malloc-thresh:** :ref:`cfg=smpi/auto-shared-malloc-thresh`
 - **smpi/async-small-thresh:** :ref:`cfg=smpi/async-small-thresh`
 - **smpi/buffering:** :ref:`cfg=smpi/buffering`
 - **smpi/bw-factor:** :ref:`cfg=smpi/bw-factor`
 - **smpi/coll-selector:** :ref:`cfg=smpi/coll-selector`
 - **smpi/comp-adjustment-file:** :ref:`cfg=smpi/comp-adjustment-file`
 - **smpi/cpu-threshold:** :ref:`cfg=smpi/cpu-threshold`
+- **smpi/display-allocs:** :ref:`cfg=smpi/display-allocs`
 - **smpi/display-timing:** :ref:`cfg=smpi/display-timing`
 - **smpi/grow-injected-times:** :ref:`cfg=smpi/grow-injected-times`
 - **smpi/host-speed:** :ref:`cfg=smpi/host-speed`
@@ -168,6 +170,7 @@ Existing Configuration Items
 - **smpi/simulate-computation:** :ref:`cfg=smpi/simulate-computation`
 - **smpi/test:** :ref:`cfg=smpi/test`
 - **smpi/wtime:** :ref:`cfg=smpi/wtime`
+- **smpi/list-leaks** :ref:`cfg=smpi/list-leaks`
 
 - **Tracing configuration options** can be found in Section :ref:`tracing_tracing_options`
 
@@ -732,7 +735,8 @@ the form ``X/a;Y/b``, the X and Y are the selected pids while the a
 and b are the return values of their simcalls. In the previous
 example, ``1/3;1/4``, you can see from the full output that the actor
 1 is doing MC_RANDOM simcalls, so the 3 and 4 simply denote the values
-that these simcall return.
+that these simcall return on the execution branch leading to the
+violation.
 
 Configuring the User Code Virtualization
 ----------------------------------------
@@ -1078,7 +1082,6 @@ https://framagit.org/simgrid/platform-calibration/
 https://simgrid.org/contrib/smpi-saturation-doc.html
 
 .. _cfg=smpi/display-timing:
-
 Reporting Simulation Time
 .........................
 
@@ -1091,6 +1094,22 @@ code, making it difficult to report the simulated time when the
 simulation ends. If you enable the ``smpi/display-timing`` item,
 ``smpirun`` will display this information when the simulation
 ends.
+SMPI will also display information about the amout of real time spent
+in application code and in SMPI internals, to provide hints about the
+need to use sampling to reduce simulation time.
+
+.. _cfg=smpi/display-allocs:
+Reporting memory allocations
+.........................
+
+**Option** ``smpi/display-allocs`` **Default:** 0 (false)
+
+SMPI intercepts malloc and calloc calls performed inside the running
+application, if it wasn't compiled with SMPI_NO_OVERRIDE_MALLOC.
+With this option, SMPI will show at the end of execution the amount of
+memory allocated through these calls, and locate the most expensive one.
+This helps finding the targets for manual memory sharing, or the threshold
+to use for smpi/auto-shared-malloc-thresh option (see :ref:`cfg=smpi/auto-shared-malloc-thresh`).
 
 .. _cfg=smpi/keep-temps:
 
@@ -1437,6 +1456,23 @@ Then, you can pass the option
 ``--cfg=smpi/shared-malloc-hugepage:/home/huge`` to smpirun to
 actually activate the huge page support in shared mallocs.
 
+.. _cfg=smpi/auto-shared-malloc-thresh:
+Automatically share allocations
+.........................
+
+**Option** ``smpi/auto-shared-malloc-thresh:`` **Default:** 0 (false)
+   This value in bytes represents the size above which all allocations
+   will be "shared" by default (as if they were performed through
+   SMPI_SHARED_MALLOC macros). Default = 0 = disabled feature.
+   The value must be carefully chosen to only select data buffers which
+   will not modify execution path or cause crash if their content is false.
+   Option :ref:`cfg=smpi/display-allocs` can be used to locate the largest
+   allocation detected in a run, and provide a good starting threshold.
+   Note : malloc, calloc and free are overridden by smpicc/cxx by default.
+   This can cause some troubles if codes are already overriding these. If this
+   is the case, defining SMPI_NO_OVERRIDE_MALLOC in the compilation flags can
+   help, but will make this feature unusable.
+
 .. _cfg=smpi/wtime:
 
 Inject constant times for MPI_Wtime, gettimeofday and clock_gettime
@@ -1468,6 +1504,16 @@ to be broken out of and reset each time your code asks for the current time.
 If the simulation speed really matters to you, you can avoid this
 extra delay by setting smpi/wtime to 0.
 
+.. _cfg=smpi/list-leaks:
+
+Report leaked MPI objects
+.........................
+
+**Option** ``smpi/list-leaks`` **default:** 0
+
+This option controls whether to report leaked MPI objects.
+The parameter is the number of leaks to report.
+
 Other Configurations
 --------------------