Skip to content

Commit b716b06

Browse files
committed
#2201: added enums to specify transfer strategy
1 parent 96f533a commit b716b06

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/vt/vrt/collection/balance/temperedlb/tempered_enums.h

+30
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,36 @@ enum struct KnowledgeEnum : uint8_t {
165165
Log = 2
166166
};
167167

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+
168198
}}}} /* end namespace vt::vrt::collection::lb */
169199

170200
#endif /*INCLUDED_VT_VRT_COLLECTION_BALANCE_TEMPEREDLB_TEMPERED_ENUMS_H*/

0 commit comments

Comments
 (0)