accepted by the SimGrid version used in your simulator, simply pass
the --help configuration flag to your program. If some of the options
are not documented on this page, this is a bug that you should please
-report so that we can fix it.
+report so that we can fix it. Note that some of the options presented
+here may not be available in your simulators, depending on the
+@ref install_src_config "compile-time options" that you used.
\section options_using Passing configuration options to the simulators
\endverbatim
A last solution is to pass your configuration directly using the C
-interface. Unfortunately, this path is not really easy to use right
-now, and you mess directly with surf internal variables as follows. Check the
-\ref XBT_config "relevant page" for details on all the functions you
-can use in this context, \c _surf_cfg_set being the only configuration set
-currently used in SimGrid. \code
+interface. If you happen to use the MSG interface, this is very easy
+with the MSG_config() function. If you do not use MSG, that's a bit
+more complex, as you have to mess with the internal configuration set
+directly as follows. Check the \ref XBT_config "relevant page" for
+details on all the functions you can use in this context, \c
+_sg_cfg_set being the only configuration set currently used in
+SimGrid.
+
+@code
#include <xbt/config.h>
-extern xbt_cfg_t _surf_cfg_set;
+extern xbt_cfg_t _sg_cfg_set;
int main(int argc, char *argv[]) {
- MSG_init(&argc, argv);
+ SD_init(&argc, argv);
- xbt_cfg_set_parse(_surf_cfg_set,"Item:Value");
+ /* Prefer MSG_config() if you use MSG!! */
+ xbt_cfg_set_parse(_sg_cfg_set,"Item:Value");
// Rest of your code
}
-\endcode
+@endcode
\section options_model Configuring the platform models
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 value, the amount of available cores is automatically
+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
with a call to \ref MSG_mailbox_set_async . For MSG, all messages sent to this
mailbox will have this behavior, so consider using two mailboxes if needed.
+This value needs to be smaller than or equals to the threshold set at
+\ref options_model_smpi_detached , because asynchronous messages are
+meant to be detached as well.
+
\subsubsection options_pls Configuring packet-level pseudo-models
When using the packet-level pseudo-models, several specific
request to execute the user code in parallel. Several threads are
launched, each of them handling as much user contexts at each run. To
actiave this, set the \b contexts/nthreads item to the amount of
-cores that you have in your computer (or -1 to have the amount of cores
-auto-detected).
+cores that you have in your computer (or lower than 1 to have
+the amount of cores auto-detected).
Even if you asked several worker threads using the previous option,
you can request to start the parallel execution (and pay the
Please, use these two parameters (for comments) to make reproducible
simulations. For additional details about this and all tracing
-options, check See the \ref tracing_tracing_options "Tracing
-Configuration Options subsection".
+options, check See the \ref tracing_tracing_options.
\section options_smpi Configuring SMPI
Simulation time: 1e3 seconds.
\endverbatim
+\subsection options_model_smpi_detached Simulating MPI detached send
+
+(this configuration item is experimental and may change or disapear)
+
+This threshold specifies the size in bytes under which the send will return
+immediately. This is different from the threshold detailed in \ref options_model_network_asyncsend
+because the message is not effectively sent when the send is posted. SMPI still waits for the
+correspondant receive to be posted to perform the communication operation. This threshold can be set
+by changing the \b smpi/send_is_detached item. The default value is 65536.
+
+\subsection options_model_smpi_collectives Simulating MPI collective algorithms
+
+SMPI implements more than 100 different algorithms for MPI collective communication, to accurately
+simulate the behavior of most of the existing MPI libraries. The \b smpi/coll_selector item can be used
+ to use the decision logic of either OpenMPI or MPICH libraries (values: ompi or mpich, by default SMPI
+uses naive version of collective operations). Each collective operation can be manually selected with a
+\b smpi/collective_name:algo_name. Available algorithms are listed in \ref SMPI_collective_algorithms .
+
\section options_generic Configuring other aspects of SimGrid
\subsection options_generic_path XML file inclusion path
- \c smpi/display_timing: \ref options_smpi_timing
- \c smpi/cpu_threshold: \ref options_smpi_bench
- \c smpi/async_small_thres: \ref options_model_network_asyncsend
+- \c smpi/send_is_detached: \ref options_model_smpi_detached
+- \c smpi/coll_selector: \ref options_model_smpi_collectives
- \c path: \ref options_generic_path
- \c verbose-exit: \ref options_generic_exit