- \b cpu/model: specify the used CPU model
- \b workstation/model: specify the used workstation model
-As of writting, the accepted network models are the following. Over
+%As of writing, the following network models are accepted. Over
the time new models can be added, and some experimental models can be
removed; check the values on your simulators for an uptodate
information. Note that the CM02 model is described in the research report
settings (accurate modeling of slow start with correction factors on
three intervals: < 1KiB, < 64 KiB, >= 64 KiB). See also \ref
options_model_network_coefs "this section" for more info.
+ - \b IB: Realistic network model specifically tailored for HPC
+ settings with InfiniBand networks (accurate modeling contention
+ behavior, based on the model explained in
+ http://mescal.imag.fr/membres/jean-marc.vincent/index.html/PhD/Vienne.pdf).
+ See also \ref options_model_network_coefs "this section" for more info.
- \b CM02: Legacy network analytic model (Very similar to LV08, but
without corrective factors. The timings of small messages are thus
poorly modeled)
themselves corrected by constant values depending on the size of the
exchange. Again, only hardcore experts should bother about this fact.
+InfiniBand network behavior can be modeled through 3 parameters, as explained in
+http://mescal.imag.fr/membres/jean-marc.vincent/index.html/PhD/Vienne.pdf . These
+factors can be changed through option smpi/IB_penalty_factors:"βe;βs;γs". By
+default SMPI uses factors computed one Stampede cluster from TACC, with optimal
+deployment of processes on nodes.
+
\subsubsection options_model_network_crosstraffic Simulating cross-traffic
As of SimGrid v3.7, cross-traffic effects can be taken into account in
If you want to specify liveness properties (beware, that's
experimental), you have to pass them on the command line, specifying
-the name of the file containing the property, as formated by the
+the name of the file containing the property, as formatted by the
ltl2ba program.
\verbatim
The only reason to change this setting is when the debugging tools get
fooled by the optimized context factories. Threads are the most
-debugging-friendly contextes.
+debugging-friendly contextes, as they allow to set breakpoints anywhere with gdb
+ and visualize backtraces for all processes, in order to debug concurrency issues.
+Valgrind is also more comfortable with threads, but it should be usable with all factories.
\subsection options_virt_stacksize Adapting the used stack size
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
+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 .
you should avoid using small stacks (\b stack_size) as the stack will
silently overflow on other parts of the memory.
-\section options_index Index of all existing configuration items
+\section options_index Index of all existing configuration options
- \c contexts/factory: \ref options_virt_factory
+- \c contexts/guard_size: \ref options_virt_parallel
- \c contexts/nthreads: \ref options_virt_parallel
- \c contexts/parallel_threshold: \ref options_virt_parallel
- \c contexts/stack_size: \ref options_virt_stacksize
- \c contexts/synchro: \ref options_virt_parallel
-- \c contexts/guard_size: \ref options_virt_parallel
- \c cpu/maxmin_selective_update: \ref options_model_optim
- \c cpu/model: \ref options_model_select
- \c maxmin/precision: \ref options_model_precision
- \c model-check: \ref options_modelchecking
-- \c model-check/property: \ref options_modelchecking_liveness
- \c model-check/checkpoint: \ref options_modelchecking_steps
-- \c model-check/reduce: \ref options_modelchecking_reduction
+- \c model-check/communications_determinism: \ref options_modelchecking_comm_determinism
+- \c model-check/dot_output: \ref options_modelchecking_dot_output
+- \c model-check/hash: \ref options_modelchecking_hash
+- \c model-check/property: \ref options_modelchecking_liveness
+- \c model-check/max_depth: \ref options_modelchecking_max_depth
+- \c model-check/record: \ref options_modelchecking_record
+- \c model-check/reduction: \ref options_modelchecking_reduction
+- \c model-check/replay: \ref options_modelchecking_replay
+- \c model-check/send_determinism: \ref options_modelchecking_sparse_checkpoint
+- \c model-check/snapshot_fds: \ref options_modelchecking_snapshot_fds
+- \c model-check/sparse-checkpoint: \ref options_modelchecking_sparse_checkpoint
+- \c model-check/termination: \ref options_modelchecking_termination
+- \c model-check/timeout: \ref options_modelchecking_timeout
+- \c model-check/visited: \ref options_modelchecking_visited
- \c network/bandwidth_factor: \ref options_model_network_coefs
- \c network/coordinates: \ref options_model_network_coord
- \c surf/nthreads: \ref options_model_nthreads
-- \c smpi/simulation_computation: \ref options_smpi_bench
-- \c smpi/running_power: \ref options_smpi_bench
-- \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 smpi/cpu_threshold: \ref options_smpi_bench
+- \c smpi/display_timing: \ref options_smpi_timing
- \c smpi/privatize_global_variables: \ref options_smpi_global
+- \c smpi/running_power: \ref options_smpi_bench
+- \c smpi/send_is_detached: \ref options_model_smpi_detached
+- \c smpi/simulation_computation: \ref options_smpi_bench
- \c path: \ref options_generic_path
- \c verbose-exit: \ref options_generic_exit