vt::collective::CollectiveAlg struct

Perform asynchronous collectives within VT.

CollectiveAlg is a core VT component that provides the ability to perform reductions, scatters, barriers, and safe MPI (collective) operations while inside a VT handler.

Base classes

template<typename T>
struct vt::runtime::component::Component<CollectiveAlg>
Component class for a generic VT runtime module, CRTP'ed over the component's actual type
struct ReduceManager virtual
Manage distinct scopes for reductions.
struct Barrier virtual
Perform a collective barrier that is safe to use with VT handlers in flight.
struct Scatter virtual
Scatter data across all nodes from a single origin.

Constructors, destructors, conversion operators

CollectiveAlg()

Public functions

auto name() -> std::string override
Get the name of the component.
auto makeCollectiveScope(TagType scope_tag = no_tag) -> CollectiveScope
Create a new scope for sequenced MPI operations. Each scope has a distinct, independent collective sequence of operations.
auto isDeallocated(bool is_user_tag, TagType scope_bits) const -> bool
Check if a scope has been deallocated.
template<typename SerializerT>
void serialize(SerializerT& s)

Function documentation

CollectiveScope vt::collective::CollectiveAlg::makeCollectiveScope(TagType scope_tag = no_tag)

Create a new scope for sequenced MPI operations. Each scope has a distinct, independent collective sequence of operations.

Returns a new collective scope with sequenced operations

bool vt::collective::CollectiveAlg::isDeallocated(bool is_user_tag, TagType scope_bits) const

Check if a scope has been deallocated.

Parameters
is_user_tag in whether it's a user-tagged scope
scope_bits in the scope bits
Returns whether it is deallocated