Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
kill 2 dumb functions in simix_vm
[simgrid.git] / doc / doxygen / options.doc
index 98ebf9d..49fd264 100644 (file)
@@ -139,7 +139,8 @@ when using SimDag.
   - \b compound: Host model that is automatically chosen if
     you change the network and CPU models
   - \b ptask_L07: Host model somehow similar to Cas01+CM02 but
-    allowing parallel tasks
+    allowing "parallel tasks", that are intended to model the moldable
+    tasks of the grid scheduling literature.
 
 \subsection options_generic_plugin Plugins
 
@@ -198,16 +199,10 @@ the \b maxmin/precision item (default value: 0.00001). Changing it
 may speedup the simulation by discarding very small actions, at the
 price of a reduced numerical precision.
 
-\subsection options_model_nthreads Parallel threads for model updates
+\subsection options_concurrency_limit Concurrency limit
 
-By default, Surf computes the analytical models sequentially to share their
-resources and update their actions. It is possible to run them in parallel,
-using the \b surf/nthreads item (default value: 1). If you use a
-negative or null value, the amount of available cores is automatically
-detected  and used instead.
-
-Depending on the workload of the models and their complexity, you may get a
-speedup or a slowdown because of the synchronization costs of threads.
+The maximum number of variables in a system can be tuned through
+the \b maxmin/concurrency_limit item (default value: 100). Setting a higher value can lift some limitations, such as the number of concurrent processes running on a single host.
 
 \subsection options_model_network Configuring the Network model
 
@@ -317,6 +312,15 @@ corresponding to the ns3::TcpL4Protocol::SocketType configuration item
 in NS3. The only valid values (enforced on the SimGrid side) are
 'NewReno' or 'Reno' or 'Tahoe'.
 
+\subsection options_model_storage Configuring the Storage model
+
+\subsubsection option_model_storage_maxfd Maximum amount of file descriptors per host
+
+Each host maintains a fixed-size array of its file descriptors. You
+can change its size (1024 by default) through the \b
+storage/max_file_descriptors item to either enlarge it if your
+application requires it or to reduce it to save memory space.
+
 \section options_modelchecking Configuring the Model-Checking
 
 To enable the SimGrid model-checking support the program should
@@ -719,8 +723,8 @@ say that if you have a large computation between a \c MPI_Recv() and a
 code, and create an execution task within the simulator to take this
 into account. For that, the actual duration is measured on the host
 machine and then scaled to the power of the corresponding simulated
-machine. The variable \b smpi/running-power allows to specify the
-computational power of the host machine (in flop/s) to use when
+machine. The variable \b smpi/host-speed allows to specify the
+computational speed of the host machine (in flop/s) to use when
 scaling the execution times. It defaults to 20000, but you really want
 to update it to get accurate simulation results.
 
@@ -731,7 +735,6 @@ impacts badly the simulation performance. It specifies a threshold (in
 seconds) below which the execution chunks are not reported to the
 simulation kernel (default value: 1e-6).
 
-
 \note
     The option smpi/cpu-threshold ignores any computation time spent
     below this threshold. SMPI does not consider the \a amount of these
@@ -739,7 +742,7 @@ simulation kernel (default value: 1e-6).
     value that is too low, you may end up with unreliable simulation
     results.
 
- In some cases, however, one may wish to disable simulation of
+In some cases, however, one may wish to disable simulation of
 application computation. This is the case when SMPI is used not to
 simulate an MPI applications, but instead an MPI code that performs
 "live replay" of another MPI app (e.g., ScalaTrace's replay tool,
@@ -752,15 +755,19 @@ be simulated using SMPI by calling internal smpi_execute*() functions.
 
 To disable the benchmarking/simulation of computation in the simulated
 application, the variable \b smpi/simulate-computation should be set to no.
-Equivalently, setting \b smpi/cpu-threshold to -1 also ignores all
-computation.
 
 \note
     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 the chapter
+    you should check the SMPI_SAMPLE macros, documented in the section
     \ref SMPI_adapting_speed.
 
+Solution                           | Computations actually executed? | Computations simulated ?
+---------------------------------- | ------------------------------- | ------------------------
+--cfg=smpi/simulate-computation:no | Yes                             | No, never
+--cfg=smpi/cpu-threshold:42        | Yes, in all cases               | Only if it lasts more than 42 seconds
+SMPI_SAMPLE() macro                | Only once per loop nest (see @ref SMPI_adapting_speed "documentation") | Always
+
 \subsection options_model_smpi_adj_file smpi/comp-adjustment-file: Slow-down or speed-up parts of your code.
 
 This option allows you to pass a file that contains two columns: The first column
@@ -844,6 +851,30 @@ This is the default value:
     1. http://simgrid.gforge.inria.fr/contrib/smpi-calibration-doc.html
     2. http://simgrid.gforge.inria.fr/contrib/smpi-saturation-doc.html
 
+\subsection options_smpi_papi_events smpi/papi-events: Trace hardware counters with PAPI
+
+\warning 
+    This option is experimental and will be subject to change.
+    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 " <your-parameters>
+    or run sudo sh -c "echo 0 > /proc/sys/kernel/perf_event_paranoid"
+    In the later case, sudo will not be required.
+
+\note
+    This option is only available when SimGrid was compiled with PAPI support.
+
+This option takes the names of PAPI counters and adds their respective values
+to the trace files. (See Section \ref tracing_tracing_options.)
+
+It is planned to make this feature available on a per-process (or per-thread?) basis.
+The first draft, however, just implements a "global" (i.e., for all processes) set
+of counters, the "default" set.
+
+\verbatim
+--cfg=smpi/papi-events:"default:PAPI_L3_LDM:PAPI_L2_LDM"
+\endverbatim
+
 \subsection options_smpi_global smpi/privatize-global-variables: Automatic privatization of global variables
 
 MPI executables are meant to be executed in separated processes, but SMPI is
@@ -988,7 +1019,9 @@ Here is an example:
     Internally, in order to speed up execution, we use a counter to keep track
     on how often we already checked if the handle is now valid or not. Hence, we
     actually use counter*SLEEP_TIME, that is, the time MPI_Test() causes the process
-    to sleep increases linearly with the number of previously failed testk.
+    to sleep increases linearly with the number of previously failed tests. This 
+    behavior can be disabled by setting smpi/grow-injected-times to no. This will
+    also disable this behavior for MPI_Iprobe.
 
 
 \subsection options_model_smpi_use_shared_malloc smpi/use-shared-malloc: Factorize malloc()s
@@ -1058,13 +1091,12 @@ when \b verbose-exit is set to 0 (it is to 1 by default).
 --cfg=exceptions/cutpath:1
 \endverbatim
 
-<b>This configuration option is an internal option and should normally not be used
-by the user.</b> It is used to remove the path from the backtrace
-shown when an exception is thrown; if we didn't remove this part, the tests
-testing the exception parts of simgrid would fail on most machines, as we are
-currently comparing output. Clearly, the path used on different machines are almost
-guaranteed to be different and hence, the output would
-mismatch, causing the test to fail.
+This configuration option is used to remove the path from the
+backtrace shown when an exception is thrown. This is mainly useful for
+the tests: the full file path makes the tests not reproducible, and
+thus failing as we are currently comparing output. Clearly, the path
+used on different machines are almost guaranteed to be different and
+hence, the output would mismatch, causing the test to fail.
 
 \section options_log Logging Configuration
 
@@ -1151,7 +1183,8 @@ silently overflow on other parts of the memory.
 - \c path: \ref options_generic_path
 - \c plugin: \ref options_generic_plugin
 
-- \c surf/nthreads: \ref options_model_nthreads
+- \c storage/max_file_descriptors: \ref option_model_storage_maxfd
+
 - \c surf/precision: \ref options_model_precision
 
 - \c <b>For collective operations of SMPI, please refer to Section \ref options_index_smpi_coll</b>
@@ -1161,15 +1194,17 @@ silently overflow on other parts of the memory.
 - \c smpi/comp-adjustment-file: \ref options_model_smpi_adj_file
 - \c smpi/cpu-threshold: \ref options_smpi_bench
 - \c smpi/display-timing: \ref options_smpi_timing
-- \c smpi/lat-factor: \ref options_model_smpi_lat_factor
+- \c smpi/grow-injected-times: \ref options_model_smpi_test
+- \c smpi/host-speed: \ref options_smpi_bench
 - \c smpi/IB-penalty-factors: \ref options_model_network_coefs
 - \c smpi/iprobe: \ref options_model_smpi_iprobe
 - \c smpi/init: \ref options_model_smpi_init
+- \c smpi/lat-factor: \ref options_model_smpi_lat_factor
 - \c smpi/ois: \ref options_model_smpi_ois
 - \c smpi/or: \ref options_model_smpi_or
 - \c smpi/os: \ref options_model_smpi_os
+- \c smpi/papi-events: \ref options_smpi_papi_events
 - \c smpi/privatize-global-variables: \ref options_smpi_global
-- \c smpi/running-power: \ref options_smpi_bench
 - \c smpi/send-is-detached-thresh: \ref options_model_smpi_detached
 - \c smpi/simulate-computation: \ref options_smpi_bench
 - \c smpi/test: \ref options_model_smpi_test