]> AND Private Git Repository - loba.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Add support for a constant random, for testing.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 27 Sep 2011 08:26:42 +0000 (10:26 +0200)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 27 Sep 2011 08:37:53 +0000 (10:37 +0200)
deployment.cpp
options.cpp

index f34c3a93e36803b7b2ee0c930cfd1deb5c88ee4c..bbb47e5392a1b55d58d5bb16e1e4a31e9b9df2cd 100644 (file)
@@ -57,9 +57,13 @@ void deployment_generator::distribute_load()
         set_load(0, opt::auto_depl::load);
         return;
     }
         set_load(0, opt::auto_depl::load);
         return;
     }
-    srand48(opt::auto_depl::random_seed);
     std::vector<double> loads(hosts.size());
     std::vector<double> loads(hosts.size());
-    std::generate(loads.begin(), loads.end(), drand48);
+    if (opt::auto_depl::random_seed != 1) {
+        srand48(opt::auto_depl::random_seed);
+        std::generate(loads.begin(), loads.end(), drand48);
+    } else {
+        std::fill(loads.begin(), loads.end(), 1.0);
+    }
     double factor = opt::auto_depl::load /
         std::accumulate(loads.begin(), loads.end(), 0.0);
     std::transform(loads.begin(), loads.end(), loads.begin(),
     double factor = opt::auto_depl::load /
         std::accumulate(loads.begin(), loads.end(), 0.0);
     std::transform(loads.begin(), loads.end(), loads.begin(),
index a943339eb6051560af6eba481ae1dbdb858cce4e..c5f5c290b007b2154801069faf60e7da87bc37ee 100644 (file)
@@ -398,8 +398,8 @@ void opt::print()
             DESCR("- initial load (total)", "%g", auto_depl::load);
         DESCR("- random initial load distribution", "%s",
               h.on_off(auto_depl::random_distribution));
             DESCR("- initial load (total)", "%g", auto_depl::load);
         DESCR("- random initial load distribution", "%s",
               h.on_off(auto_depl::random_distribution));
-        DESCR("- random seed", "%s",
-              h.val_or_string(auto_depl::random_seed, "time based"));
+        DESCR("- random seed", "%s", // NOTE: cannot be 0 here anymore
+              h.val_or_string(auto_depl::random_seed, "constant random", 1UL));
     } else {
         DESCR("deployment file", "\"%s\"", deployment_file.c_str());
     }
     } else {
         DESCR("deployment file", "\"%s\"", deployment_file.c_str());
     }
@@ -483,8 +483,11 @@ void opt::usage()
               << " [" << opt_helper::on_off(opt::auto_depl::random_distribution)
               << "]\n";
     std::clog << o("-r value")
               << " [" << opt_helper::on_off(opt::auto_depl::random_distribution)
               << "]\n";
     std::clog << o("-r value")
-              << "random seed, 0 for a seed based on current date"
+              << "random seed for initial load distribution, or 0, or 1"
               << " [" << opt::auto_depl::random_seed << "]\n";
               << " [" << opt::auto_depl::random_seed << "]\n";
+    if (opt::help_requested > 1)
+        std::clog << o("") << "- use 0 for a seed based on current date\n"
+                  << o("") << "- use 1 for a constant random\n";
 
     std::clog << "\nLoad balancing algorithm:\n";
     std::clog << o("-a name") << "load balancing algorithm"
 
     std::clog << "\nLoad balancing algorithm:\n";
     std::clog << o("-a name") << "load balancing algorithm"