struct
#include <src/vt/collective/collective_alg.h>
CollectiveAlg 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
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 |