1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #ifndef MCA_COLL_TUNED_DYNAMIC_RULES_H_HAS_BEEN_INCLUDED
22 #define MCA_COLL_TUNED_DYNAMIC_RULES_H_HAS_BEEN_INCLUDED
23
24 #include "ompi_config.h"
25
26 BEGIN_C_DECLS
27
28
29 typedef struct msg_rule_s {
30
31 int mpi_comsize;
32
33
34 int alg_rule_id;
35 int com_rule_id;
36 int msg_rule_id;
37
38
39 size_t msg_size;
40
41
42 int result_alg;
43 int result_topo_faninout;
44 long result_segsize;
45 int result_max_requests;
46 } ompi_coll_msg_rule_t;
47
48
49 typedef struct com_rule_s {
50
51 int mpi_comsize;
52
53
54 int alg_rule_id;
55 int com_rule_id;
56
57
58 int n_msg_sizes;
59 ompi_coll_msg_rule_t *msg_rules;
60
61 } ompi_coll_com_rule_t;
62
63
64 typedef struct alg_rule_s {
65
66 int alg_rule_id;
67
68
69 int n_com_sizes;
70 ompi_coll_com_rule_t *com_rules;
71
72 } ompi_coll_alg_rule_t;
73
74
75
76
77 ompi_coll_alg_rule_t* ompi_coll_tuned_mk_alg_rules (int n_alg);
78 ompi_coll_com_rule_t* ompi_coll_tuned_mk_com_rules (int n_com_rules, int alg_rule_id);
79 ompi_coll_msg_rule_t* ompi_coll_tuned_mk_msg_rules (int n_msg_rules, int alg_rule_id, int com_rule_id, int mpi_comsize);
80
81
82 int ompi_coll_tuned_dump_msg_rule (ompi_coll_msg_rule_t* msg_p);
83 int ompi_coll_tuned_dump_com_rule (ompi_coll_com_rule_t* com_p);
84 int ompi_coll_tuned_dump_alg_rule (ompi_coll_alg_rule_t* alg_p);
85 int ompi_coll_tuned_dump_all_rules (ompi_coll_alg_rule_t* alg_p, int n_rules);
86
87
88 int ompi_coll_tuned_free_msg_rules_in_com_rule (ompi_coll_com_rule_t* com_p);
89 int ompi_coll_tuned_free_coms_in_alg_rule (ompi_coll_alg_rule_t* alg_p);
90 int ompi_coll_tuned_free_all_rules (ompi_coll_alg_rule_t* alg_p, int n_algs);
91
92
93
94
95 ompi_coll_com_rule_t* ompi_coll_tuned_get_com_rule_ptr (ompi_coll_alg_rule_t* rules, int alg_id, int mpi_comsize);
96
97 int ompi_coll_tuned_get_target_method_params (ompi_coll_com_rule_t* base_com_rule, size_t mpi_msgsize,
98 int* result_topo_faninout, int* result_segsize,
99 int* max_requests);
100
101
102 END_C_DECLS
103 #endif
104