Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
smpi/running-power is renamed to smpi/host-speed
[simgrid.git] / src / simgrid / sg_config.cpp
index 29a8cba..3f973e3 100644 (file)
@@ -382,8 +382,8 @@ static void describe_model(char *result,int resultsize,
 /* create the config set, register what should be and parse the command line*/
 void sg_config_init(int *argc, char **argv)
 {
-  int descsize = 1024;
-  char description[1024];
+  const int descsize = 1024;
+  char description[descsize];
 
   /* Create the configuration support */
   if (_sg_cfg_init_status == 0) { /* Only create stuff if not already inited */
@@ -413,31 +413,40 @@ void sg_config_init(int *argc, char **argv)
     describe_model(description,descsize, surf_vm_model_description, "model", "The model to use for the vm");
     xbt_cfg_register_string("vm/model", "default", &_sg_cfg_cb__vm_model, description);
 
-    simgrid::config::bindFlag(sg_tcp_gamma = 4194304.0,
-      { "network/TCP-gamma", "network/TCP_gamma" },
+    sg_tcp_gamma = 4194304.0;
+    simgrid::config::bindFlag(sg_tcp_gamma, { "network/TCP-gamma", "network/TCP_gamma" },
       "Size of the biggest TCP window (cat /proc/sys/net/ipv4/tcp_[rw]mem for recv/send window; Use the last given value, which is the max window size)");
-    simgrid::config::bindFlag(sg_surf_precision = 0.00001,
-      "surf/precision",
+
+    sg_surf_precision = 0.00001;
+    simgrid::config::bindFlag(sg_surf_precision, "surf/precision",
       "Numerical precision used when updating simulation times (in seconds)");
-    simgrid::config::bindFlag(sg_maxmin_precision = 0.00001,
-      "maxmin/precision",
+
+    sg_maxmin_precision = 0.00001;
+    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:
-    simgrid::config::bindFlag(sg_sender_gap = NAN,
-      { "network/sender-gap", "network/sender_gap" },
+    sg_sender_gap = NAN;
+    simgrid::config::bindFlag(sg_sender_gap, { "network/sender-gap", "network/sender_gap" },
       "Minimum gap between two overlapping sends");
-    simgrid::config::bindFlag(sg_latency_factor = 1.0,
-      { "network/latency-factor", "network/latency_factor" },
+
+    sg_latency_factor = 1.0;
+    simgrid::config::bindFlag(sg_latency_factor, { "network/latency-factor", "network/latency_factor" },
       "Correction factor to apply to the provided latency (default value set by network model)");
-    simgrid::config::bindFlag(sg_bandwidth_factor = 1.0,
-      { "network/bandwidth-factor", "network/bandwidth_factor" },
+
+    sg_bandwidth_factor = 1.0;
+    simgrid::config::bindFlag(sg_bandwidth_factor, { "network/bandwidth-factor", "network/bandwidth_factor" },
       "Correction factor to apply to the provided bandwidth (default value set by network model)");
+
     // real default for "network/weight-S" is set in network_*.cpp:
-    simgrid::config::bindFlag(sg_weight_S_parameter = NAN,
-      { "network/weight-S", "network/weight_S" },
+    sg_weight_S_parameter = NAN;
+    simgrid::config::bindFlag(sg_weight_S_parameter, { "network/weight-S", "network/weight_S" },
       "Correction factor to apply to the weight of competing streams (default value set by network model)");
 
     /* Inclusion path */
@@ -557,8 +566,9 @@ void sg_config_init(int *argc, char **argv)
     xbt_cfg_register_alias("smpi/IB-penalty-factors","smpi/IB_penalty_factors");
     
 #if HAVE_SMPI
-    xbt_cfg_register_double("smpi/running-power", 20000.0, nullptr, "Power of the host running the simulation (in flop/s). Used to bench the operations.");
-    xbt_cfg_register_alias("smpi/running-power","smpi/running_power");
+    xbt_cfg_register_double("smpi/host-speed", 20000.0, nullptr, "Speed of the host running the simulation (in flop/s). Used to bench the operations.");
+    xbt_cfg_register_alias("smpi/host-speed","smpi/running_power");
+    xbt_cfg_register_alias("smpi/host-speed","smpi/running-power");
 
     xbt_cfg_register_boolean("smpi/display-timing", "no", nullptr, "Whether we should display the timing after simulation.");
     xbt_cfg_register_alias("smpi/display-timing", "smpi/display_timing");
@@ -611,6 +621,14 @@ void sg_config_init(int *argc, char **argv)
     xbt_cfg_register_string("smpi/reduce",        nullptr, &_check_coll_reduce, "Which collective to use for reduce");
 #endif // HAVE_SMPI
 
+    /* Storage */
+
+    sg_storage_max_file_descriptors = 1024;
+    simgrid::config::bindFlag(sg_storage_max_file_descriptors, "storage/max_file_descriptors",
+      "Maximum number of concurrently opened files per host. Default is 1024");
+
+    /* Others */
+
     xbt_cfg_register_boolean("exception/cutpath", "no", nullptr,
         "Whether to cut all path information from call traces, used e.g. in exceptions.");
 
@@ -637,7 +655,7 @@ void sg_config_init(int *argc, char **argv)
   }
 }
 
-void sg_config_finalize(void)
+void sg_config_finalize()
 {
   if (!_sg_cfg_init_status)
     return;                     /* Not initialized yet. Nothing to do */