static void _sg_cfg_cb__coll_barrier(const char *name, int pos){
_sg_cfg_cb__coll("barrier", mpi_coll_barrier_description, name, pos);
}
+
+static void _sg_cfg_cb__wtime_sleep(const char *name, int pos){
+ smpi_wtime_sleep = xbt_cfg_get_double(_sg_cfg_set, name);
+}
+
+static void _sg_cfg_cb__iprobe_sleep(const char *name, int pos){
+ smpi_iprobe_sleep = xbt_cfg_get_double(_sg_cfg_set, name);
+}
+
+static void _sg_cfg_cb__test_sleep(const char *name, int pos){
+ smpi_test_sleep = xbt_cfg_get_double(_sg_cfg_set, name);
+}
+
+
+
#endif
/* callback of the inclusion path */
xbt_cfgelm_int, 1, 1, _mc_cfg_cb_checkpoint, NULL);
xbt_cfg_setdefault_int(_sg_cfg_set, "model-check/checkpoint", 0);
+ /* do stateful model-checking */
+ xbt_cfg_register(&_sg_cfg_set, "model-check/sparse-checkpoint",
+ "Use sparse per-page snapshots.",
+ xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_sparse_checkpoint, NULL);
+ xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/sparse-checkpoint", "no");
+
+ /* do stateful model-checking */
+ xbt_cfg_register(&_sg_cfg_set, "model-check/soft-dirty",
+ "Use sparse per-page snapshots.",
+ xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_soft_dirty, NULL);
+ xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/soft-dirty", "no");
+
/* do liveness model-checking */
xbt_cfg_register(&_sg_cfg_set, "model-check/property",
"Specify the name of the file containing the property. It must be the result of the ltl2ba program.",
xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/display_timing", "no");
+ xbt_cfg_register(&_sg_cfg_set, "smpi/simulate_computation",
+ "Boolean indicating whether the computational part of the simulated application should be simulated.",
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+ xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/simulate_computation", "yes");
+
xbt_cfg_register(&_sg_cfg_set, "smpi/use_shared_malloc",
"Boolean indicating whether we should use shared memory when using SMPI_SHARED_MALLOC. Allows user to disable it for debug purposes.",
xbt_cfgelm_boolean, 1, 1, NULL, NULL);
xbt_cfgelm_string, 1, 1, NULL, NULL);
xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/lat_factor", "65472:11.6436;15424:3.48845;9376:2.59299;5776:2.18796;3484:1.88101;1426:1.61075;732:1.9503;257:1.95341;0:2.01467");
+ xbt_cfg_register(&_sg_cfg_set, "smpi/IB_penalty_factors",
+ "Correction factor to communications using Infiniband model with contention (default value based on Stampede cluster profiling)",
+ xbt_cfgelm_string, 1, 1, NULL, NULL);
+ xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/IB_penalty_factors", "0.965;0.925;1.35");
+
xbt_cfg_register(&_sg_cfg_set, "smpi/os",
"Small messages timings (MPI_Send minimum time for small messages)",
xbt_cfgelm_string, 1, 1, NULL, NULL);
"Small messages timings (MPI_Recv minimum time for small messages)",
xbt_cfgelm_string, 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, 1, 1, NULL, NULL);
+ xbt_cfgelm_double, 1, 1, _sg_cfg_cb__iprobe_sleep, NULL);
xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/iprobe", 1e-4);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/test",
+ "Minimum time to inject inside a call to MPI_Test",
+ xbt_cfgelm_double, 1, 1, _sg_cfg_cb__test_sleep, NULL);
+ xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/test", 1e-4);
+
+ xbt_cfg_register(&_sg_cfg_set, "smpi/wtime",
+ "Minimum time to inject inside a call to MPI_Wtime",
+ xbt_cfgelm_double, 1, 1, _sg_cfg_cb__wtime_sleep, NULL);
+ xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/wtime", 0.0);
+
xbt_cfg_register(&_sg_cfg_set, "smpi/coll_selector",
"Which collective selector to use",
xbt_cfgelm_string, 1, 1, NULL, NULL);