@@ -71,6 +71,36 @@ enum struct InformTypeEnum : uint8_t {
71
71
AsyncInform = 1
72
72
};
73
73
74
+ // / Enum for the strategy to be used in transfer stage
75
+ enum struct TransferTypeEnum : uint8_t {
76
+ /* *
77
+ * \brief Original strategy
78
+ *
79
+ * Transfer one object per transfer as in original Grapevine approach.
80
+ */
81
+ Original = 0 ,
82
+ /* *
83
+ * \brief Original strategy improved by recursion
84
+ *
85
+ * When single object transfer is rejected, attempt to recurse in order to
86
+ * pull more objects into the transfer and hereby minimize work added by
87
+ * said transfer.
88
+ * This is especially useful when communication is taken into account, as
89
+ * object transfers typically disrupt local vs. global communication edges.
90
+ */
91
+ Recursive = 1 ,
92
+ /* *
93
+ * \brief Form object clusters and attempt to perform swaps.
94
+ *
95
+ * Object can be clustered according to arbitrary definition, and swaps
96
+ * of entire clusters, according the nullset, between ranks are attempted.
97
+ * This is especially useful when shared memory constraints are present,
98
+ * as breaking shared memory clusters results in higher overall memory
99
+ * footprint, in constrast with whole cluster swaps.
100
+ */
101
+ SwapClusters = 2 ,
102
+ };
103
+
74
104
// / Enum for the order in which local objects are considered for transfer
75
105
enum struct ObjectOrderEnum : uint8_t {
76
106
Arbitrary = 0 , // < Arbitrary order: iterate as defined by the unordered_map
@@ -165,36 +195,6 @@ enum struct KnowledgeEnum : uint8_t {
165
195
Log = 2
166
196
};
167
197
168
- // / Enum for the strategy to be used in transfer stage
169
- enum struct TransferStrategyEnum : uint8_t {
170
- /* *
171
- * \brief Original strategy
172
- *
173
- * Transfer one object per transfer as in original Grapevine approach.
174
- */
175
- Original = 0 ,
176
- /* *
177
- * \brief Original strategy improved by recursion
178
- *
179
- * When single object transfer is rejected, attempt to recurse in order to
180
- * pull more objects into the transfer and hereby minimize work added by
181
- * said transfer.
182
- * This is especially useful when communication is taken into account, as
183
- * object transfers typically disrupt local vs. global communication edges.
184
- */
185
- Recursive = 1 ,
186
- /* *
187
- * \brief Form object clusters and attempt to perform swaps.
188
- *
189
- * Object can be clustered according to arbitrary definition, and swaps
190
- * of entire clusters, according the nullset, between ranks are attempted.
191
- * This is especially useful when shared memory constraints are present,
192
- * as breaking shared memory clusters results in higher overall memory
193
- * footprint, in constrast with whole cluster swaps.
194
- */
195
- ClusterSwap = 2 ,
196
- };
197
-
198
198
}}}} /* end namespace vt::vrt::collection::lb */
199
199
200
200
#endif /* INCLUDED_VT_VRT_COLLECTION_BALANCE_TEMPEREDLB_TEMPERED_ENUMS_H*/
0 commit comments