Class MPIManagerKokkos¶
Defined in File MPIManagerKokkos.hpp
Inheritance Relationships¶
Base Type¶
public MPIManager
Class Documentation¶
-
class MPIManagerKokkos : public MPIManager¶
MPI operation class for Lightning Kokkos. Maintains MPI related operations.
Public Functions
-
inline MPIManagerKokkos(MPI_Comm communicator = MPI_COMM_WORLD)¶
-
inline MPIManagerKokkos(int argc, char **argv)¶
-
template<typename T>
inline void Sendrecv(Kokkos::View<T*> &sendBuf, std::size_t dest, Kokkos::View<T*> &recvBuf, std::size_t source, std::size_t size, std::size_t tag = 0)¶ MPI_Sendrecv wrapper for Kokkos::Views.
- Template Parameters:
T – C++ data type.
- Parameters:
sendBuf – Send buffer Kokkos::View.
dest – Rank of destination.
recvBuf – Receive buffer Kokkos::View.
source – Rank of source.
size – Number of elements of the data to send/receive.
tag – Tag for the MPI message.
-
template<typename T>
inline void AllGatherV(Kokkos::View<T*> &sendBuf, Kokkos::View<T*> &recvBuf, std::vector<int> &recvCounts, std::vector<int> &displacements)¶ MPI_AllGatherV wrapper for Kokkos::Views.
- Template Parameters:
T – C++ data type.
- Parameters:
sendBuf – Send buffer Kokkos::View.
recvBuf – Receive buffer Kokkos::View.
recvCounts – Number of elements received from each rank.
displacements – Elements shifted from each rank for gather.
Public Static Attributes
-
static constexpr std::size_t MPI_MAX_TRANSFER_COUNT = std::size_t{1} << 30¶
Maximum element count for a single MPI transfer.
MPI-3 counts are
int, so this stays below INT_MAX (2^30 < 2^31 - 1) with headroom. It bounds the per-transfer count only — not any buffer allocation, which isstd::size_t-sized and may legitimately be larger. Callers must chunk transfers to this bound; enforced by the Sendrecv guard below.
-
inline MPIManagerKokkos(MPI_Comm communicator = MPI_COMM_WORLD)¶