+ 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");