sg_maxmin_precision = xbt_cfg_get_double(_sg_cfg_set, name);
}
+static void _sg_cfg_cb__surf_precision(const char* name, int pos)
+{
+ sg_surf_precision = xbt_cfg_get_double(_sg_cfg_set, name);
+}
+
static void _sg_cfg_cb__sender_gap(const char* name, int pos)
{
sg_sender_gap = xbt_cfg_get_double(_sg_cfg_set, name);
xbt_cfgelm_double, 1, 1, _sg_cfg_cb__tcp_gamma, NULL);
xbt_cfg_setdefault_double(_sg_cfg_set, "network/TCP_gamma", 4194304.0);
+ xbt_cfg_register(&_sg_cfg_set, "surf/precision",
+ "Numerical precision used when updating simulation times (hence this value is expressed in seconds)",
+ xbt_cfgelm_double, 1, 1, _sg_cfg_cb__surf_precision, NULL);
+ xbt_cfg_setdefault_double(_sg_cfg_set, "surf/precision", 0.00001);
+
xbt_cfg_register(&_sg_cfg_set, "maxmin/precision",
- "Numerical precision used when updating simulation models (epsilon in double comparisons)",
+ "Numerical precision used when computing resource sharing (hence this value is expressed in ops/sec or bytes/sec)",
xbt_cfgelm_double, 1, 1, _sg_cfg_cb__maxmin_precision, NULL);
xbt_cfg_setdefault_double(_sg_cfg_set, "maxmin/precision", 0.00001);
xbt_cfgelm_string, 1, 1, _mc_cfg_cb_property, NULL);
xbt_cfg_setdefault_string(_sg_cfg_set, "model-check/property", "");
+ /* do communications determinism model-checking */
+ xbt_cfg_register(&_sg_cfg_set, "model-check/communications_determinism",
+ "Enable/disable the detection of determinism in the communications schemes",
+ xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_comms_determinism, NULL);
+ xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/communications_determinism", "no");
+
+ /* do send determinism model-checking */
+ xbt_cfg_register(&_sg_cfg_set, "model-check/send_determinism",
+ "Enable/disable the detection of send-determinism in the communications schemes",
+ xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_send_determinism, NULL);
+ xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/send_determinism", "no");
+
/* Specify the kind of model-checking reduction */
xbt_cfg_register(&_sg_cfg_set, "model-check/reduction",
"Specify the kind of exploration reduction (either none or DPOR)",
xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_timeout, NULL);
xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/timeout", "no");
+ /* Enable/disable global hash computation with model-checking */
+ xbt_cfg_register(&_sg_cfg_set, "model-check/hash",
+ "Enable/Disable state hash for state comparison (exprimental)",
+ xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_hash, NULL);
+ xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/hash", "no");
+
/* Set max depth exploration */
xbt_cfg_register(&_sg_cfg_set, "model-check/max_depth",
"Specify the max depth of exploration (default : 1000)",
xbt_cfg_register(&_sg_cfg_set, "contexts/guard_size",
"Guard size for contexts stacks in memory pages",
xbt_cfgelm_int, 1, 1, _sg_cfg_cb_context_guard_size, NULL);
+#if defined(_XBT_WIN32) || (PTH_STACKGROWTH != -1)
+ xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/guard_size", 0);
+#else
xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/guard_size", 1);
+#endif
/* No, it was not set yet (the above setdefault() changed this to 1). */
smx_context_guard_size_was_set = 0;
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_int, 1, 1, NULL, NULL);
xbt_cfg_setdefault_int(_sg_cfg_set, "smpi/send_is_detached_thres", 65536);
+ xbt_cfg_register(&_sg_cfg_set, "smpi/privatize_global_variables",
+ "Boolean indicating whether we should privatize global variable at runtime.",
+ xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+ xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/privatize_global_variables", "no");
+
//For smpi/bw_factor and smpi/lat_factor
//Default value have to be "threshold0:value0;threshold1:value1;...;thresholdN:valueN"
//test is if( size >= thresholdN ) return valueN;
"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_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, 1, 1, NULL, NULL);
xbt_assert(network_model_name,
"Set a network model to use with the 'compound' workstation model");
+ if(surf_cpu_model_init_preparse){
+ surf_cpu_model_init_preparse();
+ } else {
+ cpu_id =
+ find_model_description(surf_cpu_model_description, cpu_model_name);
+ surf_cpu_model_description[cpu_id].model_init_preparse();
+ }
+
network_id =
find_model_description(surf_network_model_description,
network_model_name);
- cpu_id =
- find_model_description(surf_cpu_model_description, cpu_model_name);
-
- surf_cpu_model_description[cpu_id].model_init_preparse();
surf_network_model_description[network_id].model_init_preparse();
}