33 * SPDX-License-Identifier: Apache-2.0
44 */
55
6- #include < algorithm>
7-
86#include < rapidsmpf/memory/packed_data.hpp>
97#include < rapidsmpf/streaming/chunks/packed_data.hpp>
108#include < rapidsmpf/streaming/coll/allgather.hpp>
@@ -41,27 +39,19 @@ AllGather::~AllGather() {
4139 return ctx_;
4240}
4341
44- void AllGather::insert (std::uint64_t sequence_number, PackedDataChunk && packed_data) {
45- gatherer_.insert (sequence_number, std::move (packed_data. data ));
42+ void AllGather::insert (std::uint64_t sequence_number, PackedData && packed_data) {
43+ gatherer_.insert (sequence_number, std::move (packed_data));
4644}
4745
4846void AllGather::insert_finished () {
4947 gatherer_.insert_finished ();
5048}
5149
52- coro::task<std::vector<PackedDataChunk>> AllGather::extract_all (
53- AllGather::Ordered ordered
54- ) {
50+ coro::task<std::vector<PackedData>> AllGather::extract_all (AllGather::Ordered ordered) {
5551 // Wait until we're notified that everything is done.
5652 co_await event_;
5753 // And now this will not block.
58- auto data = gatherer_.wait_and_extract (ordered);
59- std::vector<PackedDataChunk> result;
60- result.reserve (data.size ());
61- std::ranges::transform (data, std::back_inserter (result), [](auto && pd) {
62- return PackedDataChunk{.data = std::move (pd)};
63- });
64- co_return result;
54+ co_return gatherer_.wait_and_extract (ordered);
6555}
6656
6757namespace node {
@@ -80,14 +70,14 @@ Node allgather(
8070 if (msg.empty ()) {
8171 break ;
8272 }
83- gatherer.insert (msg.sequence_number (), msg.release <PackedDataChunk >());
73+ gatherer.insert (msg.sequence_number (), msg.release <PackedData >());
8474 }
8575 gatherer.insert_finished ();
8676 auto data = co_await gatherer.extract_all (ordered);
8777 std::uint64_t sequence{0 };
8878 for (auto && chunk : data) {
8979 co_await ch_out->send (
90- to_message (sequence++, std::make_unique<PackedDataChunk >(std::move (chunk)))
80+ to_message (sequence++, std::make_unique<PackedData >(std::move (chunk)))
9181 );
9282 }
9383 co_await ch_out->drain (ctx->executor ());
0 commit comments