Asynchronous (coroutine) interface to allgather::AllGather.
More...
#include <allgather.hpp>
Public Types | |
| using | Ordered = rapidsmpf::allgather::AllGather::Ordered |
| Tag requesting ordering for extraction. More... | |
Public Member Functions | |
| AllGather (std::shared_ptr< Context > ctx, OpID op_id) | |
| Construct an asynchronous allgather. More... | |
| AllGather (AllGather const &)=delete | |
| AllGather & | operator= (AllGather const &)=delete |
| AllGather (AllGather &&)=delete | |
| AllGather & | operator= (AllGather &&)=delete |
| std::shared_ptr< Context > | ctx () const noexcept |
| Gets the streaming context associated with this AllGather object. More... | |
| void | insert (std::uint64_t sequence_number, PackedDataChunk &&chunk) |
| Insert a chunk into the allgather. More... | |
| void | insert_finished () |
| Mark that this rank has finished contributing data. More... | |
| coro::task< std::vector< PackedDataChunk > > | extract_all (Ordered ordered=Ordered::YES) |
| Extract all gathered data. More... | |
Asynchronous (coroutine) interface to allgather::AllGather.
Once the AllGather is created, many tasks may insert data into it. If multiple tasks insert data, the user is responsible for arranging that insert_finished is only called after all insertions have completed. A single consumer task should extract data.
Definition at line 32 of file allgather.hpp.
Tag requesting ordering for extraction.
Definition at line 35 of file allgather.hpp.
| rapidsmpf::streaming::AllGather::AllGather | ( | std::shared_ptr< Context > | ctx, |
| OpID | op_id | ||
| ) |
Construct an asynchronous allgather.
| ctx | Streaming context |
| op_id | Unique identifier for the allgather. |
|
noexcept |
Gets the streaming context associated with this AllGather object.
| coro::task<std::vector<PackedDataChunk> > rapidsmpf::streaming::AllGather::extract_all | ( | Ordered | ordered = Ordered::YES | ) |
Extract all gathered data.
| ordered | If the extracted data should be ordered. If ordered, return data will be ordered first by rank and then by sequence number of the inserted chunks on that rank. |
| void rapidsmpf::streaming::AllGather::insert | ( | std::uint64_t | sequence_number, |
| PackedDataChunk && | chunk | ||
| ) |
Insert a chunk into the allgather.
| sequence_number | The sequence number for this chunk. |
| chunk | The chunk to insert. |
| void rapidsmpf::streaming::AllGather::insert_finished | ( | ) |
Mark that this rank has finished contributing data.