12 #include <coro/event.hpp>
13 #include <coro/task.hpp>
15 #include <rapidsmpf/coll/allgather.hpp>
16 #include <rapidsmpf/communicator/communicator.hpp>
17 #include <rapidsmpf/memory/packed_data.hpp>
18 #include <rapidsmpf/streaming/core/channel.hpp>
19 #include <rapidsmpf/streaming/core/context.hpp>
43 std::shared_ptr<Context>
ctx, std::shared_ptr<Communicator>
comm,
OpID op_id
58 [[nodiscard]] std::shared_ptr<
Context> const&
ctx() const noexcept;
93 std::shared_ptr<Context> ctx_;
120 std::shared_ptr<Context> ctx,
121 std::shared_ptr<Communicator> comm,
122 std::shared_ptr<Channel> ch_in,
123 std::shared_ptr<Channel> ch_out,
Abstract base class for a communication mechanism between nodes.
AllGather communication service.
Ordered
Tag requesting ordering for extraction.
@ YES
Extraction is ordered.
Asynchronous (coroutine) interface to coll::AllGather.
void insert(std::uint64_t sequence_number, PackedData &&chunk)
Insert a chunk into the allgather.
AllGather(std::shared_ptr< Context > ctx, std::shared_ptr< Communicator > comm, OpID op_id)
Construct an asynchronous allgather.
void insert_finished()
Mark that this rank has finished contributing data.
coro::task< std::vector< PackedData > > extract_all(Ordered ordered=Ordered::YES)
Extract all gathered data.
std::shared_ptr< Communicator > const & comm() const noexcept
Gets the communicator associated with this AllGather.
std::shared_ptr< Context > const & ctx() const noexcept
Gets the streaming context associated with this AllGather object.
Context for actors (coroutines) in rapidsmpf.
Actor allgather(std::shared_ptr< Context > ctx, std::shared_ptr< Communicator > comm, std::shared_ptr< Channel > ch_in, std::shared_ptr< Channel > ch_out, OpID op_id, AllGather::Ordered ordered=AllGather::Ordered::YES)
Create an allgather actor for a single allgather operation.
coro::task< void > Actor
Alias for an actor in a streaming graph.
std::int32_t OpID
Operation ID defined by the user. This allows users to concurrently execute multiple operations,...
Bag of bytes with metadata suitable for sending over the wire.