- xbt_cfg_register_int("smpi/async-small-thresh", 0, nullptr,
- "Maximal size of messages that are to be sent asynchronously, without waiting for the receiver");
- xbt_cfg_register_alias("smpi/async-small-thresh","smpi/async_small_thresh");
- xbt_cfg_register_alias("smpi/async-small-thresh","smpi/async_small_thres");
-
- xbt_cfg_register_boolean("smpi/trace-call-location", "no", nullptr, "Should filename and linenumber of MPI calls be traced?");
-
- xbt_cfg_register_int("smpi/send-is-detached-thresh", 65536, nullptr,
- "Threshold of message size where MPI_Send stops behaving like MPI_Isend and becomes MPI_Ssend");
- xbt_cfg_register_alias("smpi/send-is-detached-thresh","smpi/send_is_detached_thresh");
- xbt_cfg_register_alias("smpi/send-is-detached-thresh","smpi/send_is_detached_thres");
-
- const char* default_privatization = std::getenv("SMPI_PRIVATIZATION");
- if (default_privatization == nullptr)
- default_privatization = "no";
-
- xbt_cfg_register_string("smpi/privatization", default_privatization, nullptr,
- "How we should privatize global variable at runtime (no, yes, mmap, dlopen).");
-
- xbt_cfg_register_alias("smpi/privatization", "smpi/privatize-global-variables");
- xbt_cfg_register_alias("smpi/privatization", "smpi/privatize_global_variables");
-
- xbt_cfg_register_boolean("smpi/grow-injected-times", "yes", nullptr, "Whether we want to make the injected time in MPI_Iprobe and MPI_Test grow, to allow faster simulation. This can make simulation less precise, though.");
-
-#if HAVE_PAPI
- xbt_cfg_register_string("smpi/papi-events", nullptr, nullptr, "This switch enables tracking the specified counters with PAPI");
-#endif
- xbt_cfg_register_string("smpi/comp-adjustment-file", nullptr, nullptr, "A file containing speedups or slowdowns for some parts of the code.");
- xbt_cfg_register_string("smpi/os", "0:0:0:0:0", nullptr, "Small messages timings (MPI_Send minimum time for small messages)");
- xbt_cfg_register_string("smpi/ois", "0:0:0:0:0", nullptr, "Small messages timings (MPI_Isend minimum time for small messages)");
- xbt_cfg_register_string("smpi/or", "0:0:0:0:0", nullptr, "Small messages timings (MPI_Recv minimum time for small messages)");
-
- xbt_cfg_register_double("smpi/iprobe-cpu-usage", 1, nullptr, "Maximum usage of CPUs by MPI_Iprobe() calls. We've observed that MPI_Iprobes consume significantly less power than the maximum of a specific application. This value is then (Iprobe_Usage/Max_Application_Usage).");
-
- xbt_cfg_register_string("smpi/coll-selector", "default", nullptr, "Which collective selector to use");
- xbt_cfg_register_alias("smpi/coll-selector","smpi/coll_selector");
- xbt_cfg_register_string("smpi/gather", nullptr, nullptr, "Which collective to use for gather");
- xbt_cfg_register_string("smpi/allgather", nullptr, nullptr, "Which collective to use for allgather");
- xbt_cfg_register_string("smpi/barrier", nullptr, nullptr, "Which collective to use for barrier");
- xbt_cfg_register_string("smpi/reduce_scatter",nullptr, nullptr, "Which collective to use for reduce_scatter");
- xbt_cfg_register_alias("smpi/reduce_scatter","smpi/reduce-scatter");
- xbt_cfg_register_string("smpi/scatter", nullptr, nullptr, "Which collective to use for scatter");
- xbt_cfg_register_string("smpi/allgatherv", nullptr, nullptr, "Which collective to use for allgatherv");
- xbt_cfg_register_string("smpi/allreduce", nullptr, nullptr, "Which collective to use for allreduce");
- xbt_cfg_register_string("smpi/alltoall", nullptr, nullptr, "Which collective to use for alltoall");
- xbt_cfg_register_string("smpi/alltoallv", nullptr, nullptr,"Which collective to use for alltoallv");
- xbt_cfg_register_string("smpi/bcast", nullptr, nullptr, "Which collective to use for bcast");
- xbt_cfg_register_string("smpi/reduce", nullptr, nullptr, "Which collective to use for reduce");
-#endif // HAVE_SMPI
-
- /* Storage */
-
- sg_storage_max_file_descriptors = 1024;
- simgrid::config::bindFlag(sg_storage_max_file_descriptors, "storage/max_file_descriptors",
- "Maximum number of concurrently opened files per host. Default is 1024");
-
- /* Others */
-
- xbt_cfg_register_boolean("exception/cutpath", "no", nullptr,
- "Whether to cut all path information from call traces, used e.g. in exceptions.");
-
- xbt_cfg_register_boolean("clean-atexit", "yes", _sg_cfg_cb_clean_atexit,
- "Whether to cleanup SimGrid at exit. Disable it if your code segfaults after its end.");
- xbt_cfg_register_alias("clean-atexit","clean_atexit");
-
- if (surf_path.empty()) {
- /* retrieves the current directory of the current process */
- const char *initial_path = __surf_get_initial_path();
- xbt_assert((initial_path), "__surf_get_initial_path() failed! Can't resolve current Windows directory");
-
- xbt_cfg_setdefault_string("path", initial_path);
- }
-
- _sg_cfg_init_status = 1;
-
- sg_config_cmd_line(argc, argv);
-
- xbt_mallocator_initialization_is_done(SIMIX_context_is_parallel());