Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add a flag maxmin/concurrency_limit to allow setting this value to higher values
authordegomme <augustin.degomme@unibas.ch>
Thu, 28 Jul 2016 12:52:11 +0000 (14:52 +0200)
committerdegomme <augustin.degomme@unibas.ch>
Thu, 28 Jul 2016 12:52:11 +0000 (14:52 +0200)
This value limits the number of processes that can run concurrently on a host, so it can be a problem and sometimes needs to be increased. Default is 100.
Related to http://stackoverflow.com/questions/38634661/is-there-any-limitations-to-number-of-running-processes-on-host

src/include/surf/maxmin.h
src/simgrid/sg_config.cpp
src/surf/maxmin.cpp

index b08c32f..29b4369 100644 (file)
 
 XBT_PUBLIC_DATA(double) sg_maxmin_precision;
 XBT_PUBLIC_DATA(double) sg_surf_precision;
+XBT_PUBLIC_DATA(int) sg_concurrency_limit;
  
 static inline void double_update(double *variable, double value, double precision)
 {
index 466ae73..63b3579 100644 (file)
@@ -425,6 +425,10 @@ void sg_config_init(int *argc, char **argv)
     simgrid::config::bindFlag(sg_maxmin_precision, "maxmin/precision",
       "Numerical precision used when computing resource sharing (in ops/sec or bytes/sec)");
 
+    sg_concurrency_limit = 100;
+    simgrid::config::bindFlag(sg_concurrency_limit, "maxmin/concurrency_limit",
+      "Maximum number of concurrent variables in the maxmim system. Also limits the number of processes on each host, at higher level");
+
     /* The parameters of network models */
 
     // real default for "network/sender-gap" is set in network_smpi.cpp:
index 05da403..b3b9103 100644 (file)
@@ -24,6 +24,7 @@ typedef struct s_dyn_light {
 
 double sg_maxmin_precision = 0.00001;
 double sg_surf_precision   = 0.00001;
+int    sg_concurrency_limit= 100;
 
 static void *lmm_variable_mallocator_new_f(void);
 static void lmm_variable_mallocator_free_f(void *var);
@@ -195,8 +196,7 @@ lmm_constraint_t lmm_constraint_new(lmm_system_t sys, void *id, double bound_val
   cnst->bound = bound_value;
   cnst->concurrency_maximum=0;
   cnst->concurrency_current=0;
-  //TODO MARTIN Maybe a configuration item for the default cap concurrency? 
-  cnst->concurrency_limit=100;
+  cnst->concurrency_limit=sg_concurrency_limit;
   cnst->usage = 0;
   cnst->sharing_policy = 1; /* FIXME: don't hardcode the value */
   insert_constraint(sys, cnst);