Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Allow to configure precision in the maxmin systems.
authorpini <pini@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 6 Dec 2010 13:54:30 +0000 (13:54 +0000)
committerpini <pini@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 6 Dec 2010 13:54:30 +0000 (13:54 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9012 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/include/surf/maxmin.h
src/surf/maxmin.c
src/surf/surf_config.c

index a522198..2a7e6dd 100644 (file)
@@ -12,7 +12,8 @@
 #include "xbt/misc.h"
 #include "surf/datatypes.h"
 
-#define MAXMIN_PRECISION 0.00001
+extern double sg_maxmin_precision;
+#define MAXMIN_PRECISION sg_maxmin_precision
 static XBT_INLINE void double_update(double *variable, double value)
 {
   *variable -= value;
index ad12c40..e7d3e18 100644 (file)
@@ -15,6 +15,8 @@
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_maxmin, surf,
                                 "Logging specific to SURF (maxmin)");
 
+double sg_maxmin_precision = 0.00001;
+
 static void *lmm_variable_mallocator_new_f(void);
 static void lmm_variable_mallocator_free_f(void *var);
 static void lmm_variable_mallocator_reset_f(void *var);
index 0520467..f432748 100644 (file)
@@ -139,6 +139,11 @@ static void _surf_cfg_cb__tcp_gamma(const char *name, int pos)
   sg_tcp_gamma = xbt_cfg_get_double(_surf_cfg_set, name);
 }
 
+static void _surf_cfg_cb__maxmin_precision(const char* name, int pos)
+{
+  sg_maxmin_precision = xbt_cfg_get_double(_surf_cfg_set, name);
+}
+
 static void _surf_cfg_cb__latency_factor(const char *name, int pos)
 {
   sg_latency_factor = xbt_cfg_get_double(_surf_cfg_set, name);
@@ -274,6 +279,11 @@ void surf_config_init(int *argc, char **argv)
                      _surf_cfg_cb__tcp_gamma, NULL);
     xbt_cfg_set_double(_surf_cfg_set, "TCP_gamma", 20000.0);
 
+    xbt_cfg_register(&_surf_cfg_set, "maxmin/precision",
+                     "Minimum retained action value when updating simulation",
+                     xbt_cfgelm_double, NULL, 1, 1, _surf_cfg_cb__maxmin_precision, NULL);
+    xbt_cfg_set_double(_surf_cfg_set, "maxmin/precision", 0.00001);
+
     /* The parameters of network models */
     double_default_value = 1.0;
     xbt_cfg_register(&_surf_cfg_set, "network/latency_factor",