34class ALIEN_EXPORT DoKDistributor
38 virtual ~DoKDistributor() =
default;
44 template <
typename NNZValue>
60 UniqueArray<NNZValue> snd_values = src.getValues();
62 m_distributor->computeCommPlan(src.getReverseIndexer());
63 UniqueArray<NNZValue> rcv_values(m_distributor->rcvSize());
64 m_distributor->exchange(snd_values.constView(), rcv_values.view());
66 dst.setMaxNnz(rcv_values.size());
68 for (
int offset = 0; offset < (int)rcv_values.size(); ++offset) {
69 auto index = m_distributor->getCoordinates(offset);
70 dst.
set(index.first, index.second, rcv_values[offset]);
75 std::unique_ptr<DoKDistributorComm> m_distributor;