+ xbt_cfg_register(&_sg_cfg_set, "smpi/os",
+ "Small messages timings (MPI_Send minimum time for small messages)",
+ xbt_cfgelm_string, NULL, 1, 1, NULL,
+ NULL);
+ xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/os", "1:0:0:0:0");
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/ois",
+ "Small messages timings (MPI_Isend minimum time for small messages)",
+ xbt_cfgelm_string, NULL, 1, 1, NULL,
+ NULL);
+ xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/ois", "1:0:0:0:0");
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/or",
+ "Small messages timings (MPI_Recv minimum time for small messages)",
+ xbt_cfgelm_string, NULL, 1, 1, NULL,
+ NULL);
+ xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/or", "1:0:0:0:0");
+ xbt_cfg_register(&_sg_cfg_set, "smpi/iprobe",
+ "Minimum time to inject inside a call to MPI_Iprobe",
+ xbt_cfgelm_double, NULL, 1, 1, NULL,
+ NULL);
+ xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/iprobe", 1e-4);
+ xbt_cfg_register(&_sg_cfg_set, "smpi/coll_selector",
+ "Which collective selector to use",
+ xbt_cfgelm_string, NULL, 1, 1, NULL,
+ NULL);
+ xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/coll_selector", "default");
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/gather",
+ "Which collective to use for gather",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_gather,
+ NULL);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/allgather",
+ "Which collective to use for allgather",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_allgather,
+ NULL);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/barrier",
+ "Which collective to use for barrier",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_barrier,
+ NULL);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/reduce_scatter",
+ "Which collective to use for reduce_scatter",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_reduce_scatter,
+ NULL);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/scatter",
+ "Which collective to use for scatter",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_scatter,
+ NULL);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/allgatherv",
+ "Which collective to use for allgatherv",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_allgatherv,
+ NULL);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/allreduce",
+ "Which collective to use for allreduce",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_allreduce,
+ NULL);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/alltoall",
+ "Which collective to use for alltoall",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_alltoall,
+ NULL);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/alltoallv",
+ "Which collective to use for alltoallv",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_alltoallv,
+ NULL);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/bcast",
+ "Which collective to use for bcast",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_bcast,
+ NULL);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/reduce",
+ "Which collective to use for reduce",
+ xbt_cfgelm_string, NULL, 1, 1, &_sg_cfg_cb__coll_reduce,
+ NULL);
+#endif // HAVE_SMPI
+
+ xbt_cfg_register(&_sg_cfg_set, "clean_atexit",
+ "\"yes\" or \"no\". \"yes\" enables all the cleanups of SimGrid (XBT,SIMIX,MSG) to be registered with atexit. \"no\" may be useful if your code segfaults when calling the exit function.",
+ xbt_cfgelm_boolean, NULL, 1, 1,
+ _sg_cfg_cb_clean_atexit, NULL);
+ xbt_cfg_setdefault_boolean(_sg_cfg_set, "clean_atexit", "yes");