Skip to content

Commit

Permalink
#2201: added enums to specify transfer strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
ppebay authored and lifflander committed Nov 28, 2023
1 parent 65e7ebc commit 3577106
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions src/vt/vrt/collection/balance/temperedlb/tempered_enums.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,36 @@ enum struct KnowledgeEnum : uint8_t {
Log = 2
};

/// Enum for the strategy to be used in transfer stage
enum struct TransferStrategyEnum : uint8_t {
/**
* \brief Original strategy
*
* Transfer one object per transfer as in original Grapevine approach.
*/
Original = 0,
/**
* \brief Original strategy improved by recursion
*
* When single object transfer is rejected, attempt to recurse in order to
* pull more objects into the transfer and hereby minimize work added by
* said transfer.
* This is especially useful when communication is taken into account, as
* object transfers typically disrupt local vs. global communication edges.
*/
Recursive = 1,
/**
* \brief Form object clusters and attempt to perform swaps.
*
* Object can be clustered according to arbitrary definition, and swaps
* of entire clusters, according the nullset, between ranks are attempted.
* This is especially useful when shared memory constraints are present,
* as breaking shared memory clusters results in higher overall memory
* footprint, in constrast with whole cluster swaps.
*/
ClusterSwap = 2,
};

}}}} /* end namespace vt::vrt::collection::lb */

#endif /*INCLUDED_VT_VRT_COLLECTION_BALANCE_TEMPEREDLB_TEMPERED_ENUMS_H*/

0 comments on commit 3577106

Please sign in to comment.