X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/ba8a9c5fbc92dc95fc99d8078b3474fd2fd5a043..5e43cdf74cfa40b69f5e7e9eb3957c43f4accb86:/options.h diff --git a/options.h b/options.h index 4e352c6..dee2953 100644 --- a/options.h +++ b/options.h @@ -4,18 +4,25 @@ #include #include "cost_func.h" #include "named_object_list.h" -#include "process.h" + +// These classes may use include options.h, so make forward declarations +class deployment_generator; +class process; // Global parameters, shared by all the processes namespace opt { + // Constants + extern const double load_ratio_threshold; + // Global options extern std::string program_name; extern int help_requested; extern bool version_requested; // Simulation parameters - extern unsigned log_rate; + extern int log_rate; + extern bool exit_request; // Platform and deployment extern std::string platform_file; @@ -27,16 +34,28 @@ namespace opt { extern std::string topology; extern unsigned nhosts; extern double load; + extern bool random_distribution; + extern unsigned long random_seed; } // Load balancing algorithm extern std::string loba_algo; extern bool bookkeeping; + extern double min_transfer_amount; + extern double max_transfer_amount; + extern double min_lb_iter_duration; // Application parameters extern cost_func comp_cost; extern cost_func comm_cost; - extern unsigned maxiter; + extern double min_comp_iter_duration; + extern unsigned comp_iter_delay; + extern double comp_time_delay; + + // Parameters for the end of the simulation + extern unsigned lb_maxiter; + extern unsigned comp_maxiter; + extern double time_limit; extern bool exit_on_close; // Named parameters lists @@ -45,15 +64,13 @@ namespace opt { loba_algorithms_type(); } loba_algorithms; -#if 0 extern struct topologies_type: - public named_object_list { + public named_object_list { topologies_type(); } topologies; -#endif // Utility functions - int parse_args(int* argc, char* argv[]); + bool parse_args(int* argc, char* argv[]); void print(); void usage();