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

Private GIT Repository
Add load balancing algorithm selection facility.
[loba.git] / options.h
1 #ifndef OPTIONS_H
2 #define OPTIONS_H
3
4 #include <string>
5 #include "cost_func.h"
6 #include "named_object_list.h"
7 #include "process.h"
8
9 // Global parameters, shared by all the processes
10 namespace opt {
11
12     // Global options
13     extern std::string program_name;
14     extern int help_requested;
15     extern bool version_requested;
16
17     // Simulation parameters
18     extern unsigned log_rate;
19
20     // Platform and deployment
21     extern std::string platform_file;
22     extern std::string deployment_file;
23
24     // Automatic deployment
25     namespace auto_depl {
26         extern bool        enabled;
27         extern std::string topology;
28         extern unsigned    nhosts;
29         extern double      load;
30     }
31
32     // Load balancing algorithm
33     extern std::string loba_algo;
34     extern bool bookkeeping;
35
36     // Application parameters
37     extern cost_func comp_cost;
38     extern cost_func comm_cost;
39     extern unsigned maxiter;
40     extern bool exit_on_close;
41
42     // Named parameters lists
43     extern struct loba_algorithms_type:
44         public named_object_list2<process, int, char** > {
45             loba_algorithms_type();
46     } loba_algorithms;
47
48 #if 0
49     extern struct topologies_type:
50         public named_object_list<xxx> {
51             topologies_type();
52     } topologies;
53 #endif
54
55     // Utility functions
56     int parse_args(int* argc, char* argv[]);
57     void print();
58     void usage();
59
60 } // namespace opt
61
62 #endif // !OPTIONS_H
63
64 // Local variables:
65 // mode: c++
66 // End: