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
XBT_PUBLIC_DATA(double) sg_maxmin_precision;
XBT_PUBLIC_DATA(double) sg_surf_precision;
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)
{
static inline void double_update(double *variable, double value, double precision)
{
simgrid::config::bindFlag(sg_maxmin_precision, "maxmin/precision",
"Numerical precision used when computing resource sharing (in ops/sec or bytes/sec)");
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:
/* The parameters of network models */
// real default for "network/sender-gap" is set in network_smpi.cpp:
double sg_maxmin_precision = 0.00001;
double sg_surf_precision = 0.00001;
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);
static void *lmm_variable_mallocator_new_f(void);
static void lmm_variable_mallocator_free_f(void *var);
cnst->bound = bound_value;
cnst->concurrency_maximum=0;
cnst->concurrency_current=0;
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);
cnst->usage = 0;
cnst->sharing_policy = 1; /* FIXME: don't hardcode the value */
insert_constraint(sys, cnst);