From 339bd8431fd902f975d764bd9dd3f319c89af88f Mon Sep 17 00:00:00 2001 From: nicoleavans Date: Wed, 5 Jun 2024 16:13:27 -0600 Subject: [PATCH 1/5] Add irecv wrapper in KokkosComm namespace --- src/KokkosComm.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/KokkosComm.hpp b/src/KokkosComm.hpp index 84ab90ea..87c4c9b4 100644 --- a/src/KokkosComm.hpp +++ b/src/KokkosComm.hpp @@ -19,6 +19,7 @@ #include "KokkosComm_collective.hpp" #include "KokkosComm_version.hpp" #include "KokkosComm_isend.hpp" +#include "KokkosComm_irecv.hpp" #include "KokkosComm_recv.hpp" #include "KokkosComm_send.hpp" #include "KokkosComm_concepts.hpp" @@ -33,6 +34,11 @@ Req isend(const ExecSpace &space, const SendView &sv, int dest, int tag, MPI_Com return Impl::isend(space, sv, dest, tag, comm); } +template +void irecv(RecvView &rv, int src, int tag, MPI_Comm comm, MPI_Request &req) { + return Impl::irecv(rv, src, tag, comm, req); +} + template void send(const ExecSpace &space, const SendView &sv, int dest, int tag, MPI_Comm comm) { return Impl::send(space, sv, dest, tag, comm); From 87c9043c07b4a518adc67c34740993642b1958b0 Mon Sep 17 00:00:00 2001 From: nicoleavans Date: Thu, 6 Jun 2024 10:44:21 -0600 Subject: [PATCH 2/5] removed errant '&' --- src/KokkosComm.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KokkosComm.hpp b/src/KokkosComm.hpp index 87c4c9b4..56f00c1e 100644 --- a/src/KokkosComm.hpp +++ b/src/KokkosComm.hpp @@ -35,7 +35,7 @@ Req isend(const ExecSpace &space, const SendView &sv, int dest, int tag, MPI_Com } template -void irecv(RecvView &rv, int src, int tag, MPI_Comm comm, MPI_Request &req) { +void irecv(RecvView &rv, int src, int tag, MPI_Comm comm, MPI_Request req) { return Impl::irecv(rv, src, tag, comm, req); } From 76354448203ebe4e1afc201bd93fc1caa0d5df00 Mon Sep 17 00:00:00 2001 From: nicoleavans Date: Mon, 10 Jun 2024 11:45:13 -0600 Subject: [PATCH 3/5] Add ExecSpace parameter. --- src/KokkosComm.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/KokkosComm.hpp b/src/KokkosComm.hpp index 56f00c1e..4c5f6624 100644 --- a/src/KokkosComm.hpp +++ b/src/KokkosComm.hpp @@ -35,8 +35,8 @@ Req isend(const ExecSpace &space, const SendView &sv, int dest, int tag, MPI_Com } template -void irecv(RecvView &rv, int src, int tag, MPI_Comm comm, MPI_Request req) { - return Impl::irecv(rv, src, tag, comm, req); +void irecv(const ExecSpace &space, RecvView &sv, int src, int tag, MPI_Comm comm, MPI_Request req) { + return Impl::irecv(space, sv, src, tag, comm, req); } template From 51a228ead86a015f8927336efc02894e824830a0 Mon Sep 17 00:00:00 2001 From: nicoleavans Date: Tue, 11 Jun 2024 11:59:03 -0600 Subject: [PATCH 4/5] add irecv to KokkosComm namespace --- src/KokkosComm.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/KokkosComm.hpp b/src/KokkosComm.hpp index 4c5f6624..67c58dcc 100644 --- a/src/KokkosComm.hpp +++ b/src/KokkosComm.hpp @@ -35,8 +35,8 @@ Req isend(const ExecSpace &space, const SendView &sv, int dest, int tag, MPI_Com } template -void irecv(const ExecSpace &space, RecvView &sv, int src, int tag, MPI_Comm comm, MPI_Request req) { - return Impl::irecv(space, sv, src, tag, comm, req); +void irecv(RecvView &sv, int src, int tag, MPI_Comm comm, MPI_Request req) { + return Impl::irecv(sv, src, tag, comm, req); } template From a9e03db7936c38e4d7df09fc42ee7b25229388cc Mon Sep 17 00:00:00 2001 From: nicoleavans Date: Wed, 12 Jun 2024 10:19:20 -0600 Subject: [PATCH 5/5] Added alltoall wrapper, revised RecvView variables to rv --- src/KokkosComm.hpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/KokkosComm.hpp b/src/KokkosComm.hpp index 67c58dcc..ae4b5cb2 100644 --- a/src/KokkosComm.hpp +++ b/src/KokkosComm.hpp @@ -22,6 +22,7 @@ #include "KokkosComm_irecv.hpp" #include "KokkosComm_recv.hpp" #include "KokkosComm_send.hpp" +#include "KokkosComm_alltoall.hpp" #include "KokkosComm_concepts.hpp" #include "KokkosComm_comm_mode.hpp" @@ -35,8 +36,8 @@ Req isend(const ExecSpace &space, const SendView &sv, int dest, int tag, MPI_Com } template -void irecv(RecvView &sv, int src, int tag, MPI_Comm comm, MPI_Request req) { - return Impl::irecv(sv, src, tag, comm, req); +void irecv(RecvView &rv, int src, int tag, MPI_Comm comm, MPI_Request req) { + return Impl::irecv(rv, src, tag, comm, req); } template @@ -45,8 +46,14 @@ void send(const ExecSpace &space, const SendView &sv, int dest, int tag, MPI_Com } template -void recv(const ExecSpace &space, RecvView &sv, int src, int tag, MPI_Comm comm) { - return Impl::recv(space, sv, src, tag, comm); +void recv(const ExecSpace &space, RecvView &rv, int src, int tag, MPI_Comm comm) { + return Impl::recv(space, rv, src, tag, comm); +} + +template +void alltoall(const ExecSpace &space, const SendView &sv, const size_t sendCount, const RecvView &rv, + const size_t recvCount, MPI_Comm comm) { + return Impl::alltoall(space, sv, sendCount, rv, recvCount, comm); } } // namespace KokkosComm