- \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
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
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
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.
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
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,
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
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
To use this runtime automatic switching, the variable \b smpi/privatize-global-variables
should be set to yes
+\warning
+ This configuration option cannot be set in your platform file. You can only
+ pass it as an argument to smpirun.
\subsection options_model_smpi_detached Simulating MPI detached send
\subsection options_exception_cutpath Truncate local path from exception backtrace
-<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.
+\verbatim
+--cfg=exceptions/cutpath:1
+\endverbatim
+
+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
- \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>
- \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/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