Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Obey english typographic rules [noci]
[simgrid.git] / doc / doxygen / options.doc
index 3fad32c..9d08d71 100644 (file)
@@ -1,5 +1,16 @@
 /*! \page options Configure SimGrid
 
+\htmlonly
+<div align="center">
+\endhtmlonly
+\htmlinclude graphical-toc.svg
+\htmlonly
+</div>
+<script>
+document.getElementById("Config").style="opacity:0.93999999;fill:#ff0000;fill-opacity:0.1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1";
+</script>
+\endhtmlonly
+
 A number of options can be given at runtime to change the default
 SimGrid behavior. For a complete list of all configuration options
 accepted by the SimGrid version used in your simulator, simply pass
@@ -42,7 +53,7 @@ file:
 
 A last solution is to pass your configuration directly using the C
 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
+with the simgrid::s4u::Engine::setConfig() or MSG_config() functions. 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
@@ -52,18 +63,118 @@ SimGrid.
 @code
 #include <xbt/config.h>
 
-extern xbt_cfg_t _sg_cfg_set;
-
 int main(int argc, char *argv[]) {
      SD_init(&argc, argv);
 
      /* Prefer MSG_config() if you use MSG!! */
-     xbt_cfg_set_parse(_sg_cfg_set,"Item:Value");
+     xbt_cfg_set_parse("Item:Value");
 
      // Rest of your code
 }
 @endcode
 
+\section options_index Index of all existing configuration options
+
+\note
+  The full list can be retrieved by passing "--help" and
+     "--help-cfg" to an executable that uses SimGrid.
+
+- \c clean-atexit: \ref options_generic_clean_atexit
+
+- \c contexts/factory: \ref options_virt_factory
+- \c contexts/guard-size: \ref options_virt_guard_size
+- \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 cpu/maxmin-selective-update: \ref options_model_optim
+- \c cpu/model: \ref options_model_select
+- \c cpu/optim: \ref options_model_optim
+
+- \c exception/cutpath: \ref options_exception_cutpath
+
+- \c host/model: \ref options_model_select
+
+- \c maxmin/precision: \ref options_model_precision
+- \c maxmin/concurrency-limit: \ref options_concurrency_limit
+
+- \c msg/debug-multiple-use: \ref options_msg_debug_multiple_use
+
+- \c model-check: \ref options_modelchecking
+- \c model-check/checkpoint: \ref options_modelchecking_steps
+- \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_recordreplay
+- \c model-check/reduction: \ref options_modelchecking_reduction
+- \c model-check/replay: \ref options_modelchecking_recordreplay
+- \c model-check/send-determinism: \ref options_modelchecking_comm_determinism
+- \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/crosstraffic: \ref options_model_network_crosstraffic
+- \c network/latency-factor: \ref options_model_network_coefs
+- \c network/maxmin-selective-update: \ref options_model_optim
+- \c network/model: \ref options_model_select
+- \c network/optim: \ref options_model_optim
+- \c network/TCP-gamma: \ref options_model_network_gamma
+- \c network/weight-S: \ref options_model_network_coefs
+
+- \c ns3/TcpModel: \ref options_pls
+- \c path: \ref options_generic_path
+- \c plugin: \ref options_generic_plugin
+
+- \c simix/breakpoint: \ref options_generic_breakpoint
+
+- \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/async-small-thresh: \ref options_model_network_asyncsend
+- \c smpi/bw-factor: \ref options_model_smpi_bw_factor
+- \c smpi/coll-selector: \ref options_model_smpi_collectives
+- \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/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/iprobe-cpu-usage: \ref options_model_smpi_iprobe_cpu_usage
+- \c smpi/init: \ref options_model_smpi_init
+- \c smpi/keep-temps: \ref options_smpi_temps
+- \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/privatization: \ref options_smpi_privatization
+- \c smpi/privatize-libs: \ref options_smpi_privatize_libs
+- \c smpi/send-is-detached-thresh: \ref options_model_smpi_detached
+- \c smpi/shared-malloc: \ref options_model_smpi_shared_malloc
+- \c smpi/shared-malloc-hugepage: \ref options_model_smpi_shared_malloc
+- \c smpi/simulate-computation: \ref options_smpi_bench
+- \c smpi/test: \ref options_model_smpi_test
+- \c smpi/wtime: \ref options_model_smpi_wtime
+
+- \c <b>Tracing configuration options can be found in Section \ref tracing_tracing_options</b>.
+
+- \c storage/model: \ref options_storage_model
+- \c verbose-exit: \ref options_generic_exit
+
+- \c vm/model: \ref options_vm_model
+
+\subsection options_index_smpi_coll Index of SMPI collective algorithms options
+
+TODO: All available collective algorithms will be made available via the ``smpirun --help-coll`` command.
+
 \section options_model Configuring the platform models
 
 \anchor options_storage_model
@@ -92,8 +203,8 @@ described in
 <a href="http://mescal.imag.fr/membres/arnaud.legrand/articles/simutools09.pdf">Accuracy Study and Improvement of Network Simulation in the SimGrid Framework</a>.
 
   - \b LV08 (default one): Realistic network analytic model
-    (slow-start modeled by multiplying latency by 10.4, bandwidth by
-    .92; bottleneck sharing uses a payload of S=8775 for evaluating RTT)
+    (slow-start modeled by multiplying latency by 13.01, bandwidth by
+    .97; bottleneck sharing uses a payload of S=20537 for evaluating RTT)
   - \anchor options_model_select_network_constant \b Constant: Simplistic network model where all communication
     take a constant time (one second). This model provides the lowest
     realism, but is (marginally) faster.
@@ -118,8 +229,8 @@ described in
 
 If you compiled SimGrid accordingly, you can use packet-level network
 simulators as network models (see \ref pls_ns3). In that case, you have
-two extra models, described below, and some \ref options_pls "specific
-additional configuration flags".
+two extra models, described below, and some 
+\ref options_pls "specific additional configuration flags".
   - \b NS3: Network pseudo-model using the NS3 tcp model
 
 Concerning the CPU, we have only one model for now:
@@ -144,24 +255,31 @@ when using SimDag.
 
 \subsection options_generic_plugin Plugins
 
-SimGrid supports the use of plugins; currently, no known plugins
-can be activated but there are use-cases where you may want to write
-your own plugin (for instance, for logging).
-
-Plugins can for instance define own classes that inherit from
-existing classes (for instance, a class "CpuEnergy" inherits from
-"Cpu" to assess energy consumption).
+SimGrid plugins allow to extend the framework without changing its
+source code directly. Read the source code of the existing plugins to
+learn how to do so (in ``src/plugins``), and ask your questions to the
+usual channels (Stack Overflow, Mailing list, IRC). The basic idea is
+that plugins usually register callbacks to some signals of interest.
+If they need to store some information about a given object (Link, CPU
+or Actor), they do so through the use of a dedicated object extension.
 
-The plugin connects to the code by registering callbacks using
-``signal.connect(callback)`` (see file ``src/surf/plugins/energy.cpp`` for
-details).
+Some of the existing plugins can be activated from the command line,
+meaning that you can activate them from the command line without any
+modification to your simulation code. For example, you can activate
+the host energy plugin by adding the following to your command line:
 
 \verbatim
-    --cfg=plugin:Energy
+    --cfg=plugin:host_energy
 \endverbatim
 
-\note
-    This option is case-sensitive: Energy and energy are not the same!
+Here is the full list of plugins that can be activated this way:
+
+ - \b host_energy: keeps track of the energy dissipated by
+   computations. More details in @ref plugin_energy.
+ - \b link_energy: keeps track of the energy dissipated by
+   communications. More details in @ref SURF_plugin_energy.
+ - \b host_load: keeps track of the computational load. 
+   More details in @ref plugin_load.
 
 \subsection options_model_optim Optimization level of the platform models
 
@@ -219,7 +337,7 @@ setting on regular (less constrained) scenarios so it is off by default.
 \subsubsection options_model_network_gamma Maximal TCP window size
 
 The analytical models need to know the maximal TCP window size to take
-the TCP congestion mechanism into account. This is set to 20000 by
+the TCP congestion mechanism into account. This is set to 4194304 by
 default, but can be changed using the \b network/TCP-gamma item.
 
 On linux, this value can be retrieved using the following
@@ -275,15 +393,6 @@ can be set to 0 (disable this feature) or 1 (enable it).
 
 Note that with the default host model this option is activated by default.
 
-\subsubsection options_model_network_sendergap Simulating sender gap
-
-(this configuration item is experimental and may change or disapear)
-
-It is possible to specify a timing gap between consecutive emission on
-the same network card through the \b network/sender-gap item. This
-is still under investigation as of writting, and the default value is
-to wait 10 microseconds (1e-5 seconds) between emissions.
-
 \subsubsection options_model_network_asyncsend Simulating asyncronous send
 
 (this configuration item is experimental and may change or disapear)
@@ -387,13 +496,15 @@ For now, this configuration variable can take 2 values:
 \subsection options_modelchecking_visited model-check/visited, Cycle detection
 
 In order to detect cycles, the model-checker needs to check if a new explored
-state is in fact the same state than a previous one. In order to do this,
+state is in fact the same state than a previous one. For that,
 the model-checker can take a snapshot of each visited state: this snapshot is
 then used to compare it with subsequent states in the exploration graph.
 
-The \b model-check/visited is the maximum number of states which are stored in
-memory. If the maximum number of snapshotted state is reached some states will
-be removed from the memory and some cycles might be missed.
+The \b model-check/visited option is the maximum number of states which are stored in
+memory. If the maximum number of snapshotted state is reached, some states will
+be removed from the memory and some cycles might be missed. Small
+values can lead to incorrect verifications, but large value can
+exhaust your memory, so choose carefully.
 
 By default, no state is snapshotted and cycles cannot be detected.
 
@@ -415,7 +526,7 @@ liveness violation) as well as the cycle for liveness properties. This dot file
 can then fed to the graphviz dot tool to generate an corresponding graphical
 representation.
 
-\subsection options_modelchecking_max_depth model-check/max_depth, Depth limit
+\subsection options_modelchecking_max_depth model-check/max-depth, Depth limit
 
 The \b model-checker/max-depth can set the maximum depth of the exploration
 graph of the model-checker. If this limit is reached, a logging message is
@@ -544,7 +655,8 @@ In SimGrid, the user code is virtualized in a specific mechanism
 that allows the simulation kernel to control its execution: when a user
 process requires a blocking action (such as sending a message), it is
 interrupted, and only gets released when the simulated clock reaches
-the point where the blocking operation is done.
+the point where the blocking operation is done. This is explained
+graphically in the [relevant tutorial, available online](http://simgrid.gforge.inria.fr/tutorials/simgrid-simix-101.pdf).
 
 In SimGrid, the containers in which user processes are virtualized are
 called contexts. Several context factory are provided, and you can
@@ -553,7 +665,7 @@ configuration item. Some of the following may not exist on your
 machine because of portability issues. In any case, the default one
 should be the most effcient one (please report bugs if the
 auto-detection fails for you). They are approximately sorted here from
-the slowest to the most effient:
+the slowest to the most efficient:
 
  - \b thread: very slow factory using full featured threads (either
    pthreads or windows native threads). They are slow but very
@@ -563,7 +675,7 @@ the slowest to the most effient:
  - \b ucontext: fast factory using System V contexts (Linux and FreeBSD only)
  - \b boost: This uses the [context implementation](http://www.boost.org/doc/libs/1_59_0/libs/context/doc/html/index.html)
    of the boost library for a performance that is comparable to our
-   raw implementation.\nInstall the relevant library (e.g. with the
+   raw implementation.\n Install the relevant library (e.g. with the
    libboost-contexts-dev package on Debian/Ubuntu) and recompile
    SimGrid. Note that our implementation is not compatible with recent
    implementations of the library, and it will be hard to fix this since
@@ -907,53 +1019,43 @@ of counters, the "default" set.
 
 \subsection options_smpi_privatization smpi/privatization: Automatic privatization of global variables
 
-MPI executables are usually meant to be executed in separated processes, but SMPI is
-executed in only one process. Global variables from executables will be placed
-in the same memory zone and shared between processes, causing intricate bugs.
-Several options are possible to avoid this, as described in the main
-<a href="https://hal.inria.fr/hal-01415484">SMPI publication</a>.
-SimGrid provides two ways of automatically privatizing the globals,
-and this option allows to choose between them.
-
-  - <b>no</b> (default): Do not automatically privatize variables.
-  - <b>mmap</b> or <b>yes</b>: Runtime automatic switching of the data segments.\n
-    SMPI stores a copy of each global data segment for each process,
-    and at each context switch replaces the actual data with its copy
-    from the right process. No copy actually occures as this mechanism
-    uses mmap for efficiency. As such, it is for now limited to
-    systems supporting this functionnality (all Linux and most BSD).\n
-    Another limitation is that SMPI only accounts for global variables
-    defined in the executable. If the processes use external global
-    variables from dynamic libraries, they won't be switched
-    correctly. The easiest way to solve this is to statically link
-    against the library with these globals (but you should never
-    statically link against the simgrid library itself).
-  - <b>dlopen</b>: Link multiple times against the binary.\n  
-    SMPI loads several copy of the same binary in memory, resulting in
-    the natural duplication global variables. Since the dynamic linker
-    refuses to link the same file several times, the binary is copied
-    in a temporary file before being dl-loaded (it is erased right
-    after loading).\n
-    Note that this feature is somewhat experimental at time of writing
-    (v3.16) but seems to work.\n
-    This approach greatly speeds up the context switching, down to
-    about 40 CPU cycles with our raw contextes, instead of requesting
-    several syscalls with the \c mmap approach. Another advantage is
-    that it permits to run the SMPI contexts in parallel, which is
-    obviously not possible with the \c mmap approach.\n
-    Further work may be possible to alleviate the memory and disk
-    overconsumption. It seems that we could 
-    <a href="https://lwn.net/Articles/415889/">punch holes</a>
-    in the files before dl-loading them to remove the code and
-    constants, and mmap these area onto a unique copy. This require
-    to understand the ELF layout of the file, but would 
-    reduce the disk- and memory- usage to the bare minimum. In
-    addition, this would reduce the pressure on the CPU caches (in
-    particular on instruction one).
+MPI executables are usually meant to be executed in separated
+processes, but SMPI is executed in only one process. Global variables
+from executables will be placed in the same memory zone and shared
+between processes, causing intricate bugs.  Several options are
+possible to avoid this, as described in the main
+<a href="https://hal.inria.fr/hal-01415484">SMPI publication</a> and in
+the @ref SMPI_what_globals "SMPI documentation". SimGrid provides two
+ways of automatically privatizing the globals, and this option allows
+to choose between them.
+
+  - <b>no</b> (default when not using smpirun): Do not automatically privatize variables.
+    Pass \c -no-privatize to smpirun to disable this feature.
+  - <b>dlopen</b> or <b>yes</b> (default when using smpirun): Link multiple times against the binary.
+  - <b>mmap</b> (slower, but maybe somewhat more stable):
+    Runtime automatic switching of the data segments.
 
 \warning
   This configuration option cannot be set in your platform file. You can only
   pass it as an argument to smpirun.
+  
+\subsection options_smpi_privatize_libs smpi/privatize-libs: Automatic privatization of
+ global variables inside external libraries
+
+Linux/BSD only: When using dlopen (default) privatization, privatize specific 
+shared libraries with internal global variables, if they can't be linked statically. 
+For example libgfortran is usually used for Fortran I/O and indexes in files 
+can be mixed up.
+
+\warning
+  This configuration option can only use either full paths to libraries, or full names.
+  Check with ldd the name of the library you want to use.
+  Example:
+  ldd allpairf90 
+    libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007fbb4d91b000)
+  Then you can use --cfg=smpi/privatize-libs:"libgfortran.so.3" or --cfg=smpi/privatize-libs:"/usr/lib/x86_64-linux-gnu/libgfortran.so.3", but not "libgfortran" or "libgfortran.so".
+  Multiple libraries can be given, semicolon separated.
+
 
 \subsection options_model_smpi_detached Simulating MPI detached send
 
@@ -1181,15 +1283,32 @@ is registered and will clean up some variables and terminate/cleanup the tracing
 
 TODO: Add when this should be used.
 
-\subsection options_generic_path XML file inclusion path
+\subsection options_generic_path Profile files' search path
 
 It is possible to specify a list of directories to search into for the
-\<include\> tag in XML files by using the \b path configuration
+trace files (see @ref pf_trace) by using the \b path configuration
 item. To add several directory to the path, set the configuration
 item several times, as in \verbatim
 --cfg=path:toto --cfg=path:tutu
 \endverbatim
 
+\subsection options_generic_breakpoint Set a breakpoint
+
+\verbatim
+--cfg=simix/breakpoint:3.1416
+\endverbatim
+
+This configuration option sets a breakpoint: when the simulated clock reaches
+the given time, a SIGTRAP is raised.  This can be used to stop the execution and
+get a backtrace with a debugger.
+
+It is also possible to set the breakpoint from inside the debugger, by writing
+in global variable simgrid::simix::breakpoint. For example, with gdb:
+
+\verbatim
+set variable simgrid::simix::breakpoint = 3.1416
+\endverbatim
+
 \subsection options_generic_exit Behavior on Ctrl-C
 
 By default, when Ctrl-C is pressed, the status of all existing
@@ -1201,7 +1320,7 @@ when \b verbose-exit is set to 0 (it is to 1 by default).
 \subsection options_exception_cutpath Truncate local path from exception backtrace
 
 \verbatim
---cfg=exceptions/cutpath:1
+--cfg=exception/cutpath:1
 \endverbatim
 
 This configuration option is used to remove the path from the
@@ -1215,109 +1334,4 @@ hence, the output would mismatch, causing the test to fail.
 
 It can be done by using XBT. Go to \ref XBT_log for more details.
 
-\section options_index Index of all existing configuration options
-
-\note
-  Almost all options are defined in <i>src/simgrid/sg_config.c</i>. You may
-  want to check this file, too, but this index should be somewhat complete
-  for the moment (May 2015).
-
-\note
-  \b Please \b note: You can also pass the command-line option "--help" and
-     "--help-cfg" to an executable that uses simgrid.
-
-- \c clean-atexit: \ref options_generic_clean_atexit
-
-- \c contexts/factory: \ref options_virt_factory
-- \c contexts/guard-size: \ref options_virt_guard_size
-- \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 cpu/maxmin-selective-update: \ref options_model_optim
-- \c cpu/model: \ref options_model_select
-- \c cpu/optim: \ref options_model_optim
-
-- \c exception/cutpath: \ref options_exception_cutpath
-
-- \c host/model: \ref options_model_select
-
-- \c maxmin/precision: \ref options_model_precision
-- \c maxmin/concurrency-limit: \ref options_concurrency_limit
-
-- \c msg/debug-multiple-use: \ref options_msg_debug_multiple_use
-
-- \c model-check: \ref options_modelchecking
-- \c model-check/checkpoint: \ref options_modelchecking_steps
-- \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_recordreplay
-- \c model-check/reduction: \ref options_modelchecking_reduction
-- \c model-check/replay: \ref options_modelchecking_recordreplay
-- \c model-check/send-determinism: \ref options_modelchecking_comm_determinism
-- \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/crosstraffic: \ref options_model_network_crosstraffic
-- \c network/latency-factor: \ref options_model_network_coefs
-- \c network/maxmin-selective-update: \ref options_model_optim
-- \c network/model: \ref options_model_select
-- \c network/optim: \ref options_model_optim
-- \c network/sender_gap: \ref options_model_network_sendergap
-- \c network/TCP-gamma: \ref options_model_network_gamma
-- \c network/weight-S: \ref options_model_network_coefs
-
-- \c ns3/TcpModel: \ref options_pls
-- \c path: \ref options_generic_path
-- \c plugin: \ref options_generic_plugin
-
-- \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/async-small-thresh: \ref options_model_network_asyncsend
-- \c smpi/bw-factor: \ref options_model_smpi_bw_factor
-- \c smpi/coll-selector: \ref options_model_smpi_collectives
-- \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/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/iprobe-cpu-usage: \ref options_model_smpi_iprobe_cpu_usage
-- \c smpi/init: \ref options_model_smpi_init
-- \c smpi/keep-temps: \ref options_smpi_temps
-- \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/privatization: \ref options_smpi_privatization
-- \c smpi/send-is-detached-thresh: \ref options_model_smpi_detached
-- \c smpi/shared-malloc: \ref options_model_smpi_shared_malloc
-- \c smpi/shared-malloc-hugepage: \ref options_model_smpi_shared_malloc
-- \c smpi/simulate-computation: \ref options_smpi_bench
-- \c smpi/test: \ref options_model_smpi_test
-- \c smpi/wtime: \ref options_model_smpi_wtime
-
-- \c <b>Tracing configuration options can be found in Section \ref tracing_tracing_options</b>.
-
-- \c storage/model: \ref options_storage_model
-- \c verbose-exit: \ref options_generic_exit
-
-- \c vm/model: \ref options_vm_model
-
-\subsection options_index_smpi_coll Index of SMPI collective algorithms options
-
-TODO: All available collective algorithms will be made available via the ``smpirun --help-coll`` command.
-
 */