X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/805029acc414ec084affd6d6f2790e1f1fa20017..4cb5119dfa978af3deecb83a56587ed08384193a:/options.cpp?ds=sidebyside diff --git a/options.cpp b/options.cpp index 9f7ea5c..2994640 100644 --- a/options.cpp +++ b/options.cpp @@ -9,13 +9,17 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(main); #include "deployment.h" #include "process.h" -#include "loba_simple.h" +#include "loba_besteffort.h" #include "loba_fairstrategy.h" #include "loba_makhoul.h" +#include "loba_makhoul2.h" +#include "loba_simple.h" #include "misc.h" #include "options.h" +#define DATA_DESCR_WIDTH 42 + namespace opt { // Constants @@ -31,6 +35,7 @@ namespace opt { // Simulation parameters int log_rate = 1; + bool exit_request = false; // Platform and deployment std::string platform_file; @@ -68,10 +73,14 @@ namespace opt { loba_algorithms_type loba_algorithms; loba_algorithms_type::loba_algorithms_type() { + NOL_INSERT("besteffort", "balance with best effort strategy", + loba_besteffort); NOL_INSERT("fairstrategy", "balance with fair strategy", loba_fairstrategy); NOL_INSERT("makhoul", "balance with Makhoul's PhD algorithm", loba_makhoul); + NOL_INSERT("makhoul2", "balance with Makhoul's source code", + loba_makhoul2); NOL_INSERT("none", "no load-balancing (for testing only)", process); NOL_INSERT("simple", "balance with least loaded neighbor", @@ -135,10 +144,9 @@ const char* opt_helper::on_off(bool b) const char* opt_helper::descr(const char* str) { - const int descr_width = 40; std::string& res = descr_str; res = str; - res.resize(descr_width, '.'); + res.resize(DATA_DESCR_WIDTH, '.'); return res.c_str(); } @@ -352,16 +360,17 @@ void opt::print() DESCR("computation cost factors", "[%s]", comp_cost.to_string().c_str()); DESCR("communication cost factors", "[%s]", comm_cost.to_string().c_str()); DESCR("minimum data transfer amount", "%g", min_transfer_amount); - DESCR("maximum data transfer amount", "%g", max_transfer_amount); + DESCR("maximum data transfer amount", "%s", + h.val_or_string(max_transfer_amount, "no limit")); DESCR("minimum duration between comp. iterations", "%g", min_comp_iter_duration); DESCR("computations start after lb. iter", "%u", comp_iter_delay); DESCR("computations start after time", "%g", comp_time_delay); DESCR("maximum number of lb. iterations", "%s", - h.val_or_string(lb_maxiter, "infinity")); + h.val_or_string(lb_maxiter, "no limit")); DESCR("maximum number of comp. iterations", "%s", - h.val_or_string(comp_maxiter, "infinity")); - DESCR("time limit", "%s", h.val_or_string(time_limit, "infinity")); + h.val_or_string(comp_maxiter, "no limit")); + DESCR("time limit", "%s", h.val_or_string(time_limit, "no limit")); DESCR("exit on close", "%s", h.on_off(exit_on_close)); XBT_INFO("`----"); @@ -438,7 +447,7 @@ void opt::usage() << "minimum data transfer amount" << " [" << opt::min_transfer_amount << "]\n"; std::clog << o("-M value") - << "maximum data transfer amount (0 for no limit)" + << "maximum data transfer amount, 0 for no limit" << " [" << opt::max_transfer_amount << "]\n"; std::clog << o("-S value") << "minimum duration between comp. iterations" @@ -452,13 +461,13 @@ void opt::usage() std::clog << "\nParameters for the end of the simulation\n"; std::clog << o("-i value") - << "maximum number of lb. iterations, 0 for infinity" + << "maximum number of lb. iterations, 0 for no limit" << " [" << opt::lb_maxiter << "]\n"; std::clog << o("-I value") - << "maximum number of comp. iterations, 0 for infinity" + << "maximum number of comp. iterations, 0 for no limit" << " [" << opt::comp_maxiter << "]\n"; std::clog << o("-t value") - << "time limit (simulated time), 0 for infinity" + << "time limit (simulated time), 0 for no limit" << " [" << opt::time_limit << "]\n"; std::clog << o("-e") << "toggle exit on reception of \"close\" message" << " [" << opt_helper::on_off(opt::exit_on_close) << "]\n";