|
core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
|
Value-only, device-resident face-neighbour gather over a fixed topology (C2). More...
#include <distributed_view.hpp>
Public Types | |
| using | DO = DistributedOctree< Dim, Bits > |
Public Member Functions | |
| void | init (const DO &d, const typename DO::GatherHaloTopology &t) |
| Index | nFaces () const |
| void | gather (View< const double > x, View< double > g, int tag=41) const |
| g (size nFaces) := the face-neighbour values of x. | |
Value-only, device-resident face-neighbour gather over a fixed topology (C2).
Built once from a DistributedOctree::GatherHaloTopology; thereafter gather(x, g) moves only the compact send/recv double buffers across MPI (host-staged), with device pack/scatter kernels.
Definition at line 46 of file distributed_view.hpp.
| using peclet::core::amr::DistributedGatherHalo< Dim, Bits >::DO = DistributedOctree<Dim, Bits> |
Definition at line 48 of file distributed_view.hpp.
|
inline |
Definition at line 50 of file distributed_view.hpp.
References peclet::core::amr::DistributedOctree< Dim, Bits >::comm(), and peclet::core::toDevice().
|
inline |
Definition at line 78 of file distributed_view.hpp.
|
inline |
g (size nFaces) := the face-neighbour values of x.
Local faces fill on device; cross-rank faces cross MPI as a compact host-staged values buffer (no coords). Bit-identical to the host faceNeighborGather over the same field (periodic ⇒ every slot is filled; no sentinels).
Definition at line 83 of file distributed_view.hpp.
References peclet::core::halo::detail::gpuAwareMpi(), MPI_BYTE, MPI_Irecv(), MPI_Isend(), MPI_STATUSES_IGNORE, and MPI_Waitall().