vt::collective::scatter::Scatter struct

Scatter data across all nodes from a single origin.

Performs an asynchronous scatter over all the nodes in the communicator/runtime.

Base classes

struct vt::collective::tree::Tree virtual
General interface for storing a spanning tree.

Derived classes

struct vt::collective::CollectiveAlg virtual
Perform asynchronous collectives within VT.

Public types

using FuncSizeType = std::function<std::size_t(NodeType)>
using FuncDataType = std::function<void(NodeType, std::byte*)>

Constructors, destructors, conversion operators

Scatter()
Construct a scatter manager.

Public functions

template<typename MessageT, ActiveTypedFnType<MessageT>* f>
void scatter(std::size_t const& total_size, std::size_t const& max_proc_size, FuncSizeType size_fn, FuncDataType data_fn)
Scatter data to all nodes.
template<auto f>
void scatter(std::size_t const& total_size, std::size_t const& max_proc_size, FuncSizeType size_fn, FuncDataType data_fn)
Scatter data to all nodes.

Protected functions

void scatterIn(ScatterMsg* msg)
Receive scattered data down the spanning tree.

Function documentation

template<typename MessageT, ActiveTypedFnType<MessageT>* f>
void vt::collective::scatter::Scatter::scatter(std::size_t const& total_size, std::size_t const& max_proc_size, FuncSizeType size_fn, FuncDataType data_fn)

Scatter data to all nodes.

Parameters
total_size in total size of data to scatter
max_proc_size in max data to be scattered to any node
size_fn in callback to get size for each node
data_fn in callback to get data for each node

The functions passed to scatter through the arguments size_fn and data_fn will not be retained after this call returns.

template<auto f>
void vt::collective::scatter::Scatter::scatter(std::size_t const& total_size, std::size_t const& max_proc_size, FuncSizeType size_fn, FuncDataType data_fn)

Scatter data to all nodes.

Parameters
total_size in total size of data to scatter
max_proc_size in max data to be scattered to any node
size_fn in callback to get size for each node
data_fn in callback to get data for each node

The functions passed to scatter through the arguments size_fn and data_fn will not be retained after this call returns.

void vt::collective::scatter::Scatter::scatterIn(ScatterMsg* msg) protected

Receive scattered data down the spanning tree.

Parameters
msg in the scatter message