From 6339d6d3816709debf8f8ef0fb4733825ee4a9fc Mon Sep 17 00:00:00 2001 From: Christian Heinrich Date: Tue, 23 Jan 2018 00:35:14 +0100 Subject: [PATCH] [SMPI] Fix wrong smpi::Request instantiation for RMA's. This converts the rank correctly to the pid --- src/smpi/mpi/smpi_request.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/smpi/mpi/smpi_request.cpp b/src/smpi/mpi/smpi_request.cpp index a248921dc1..2aa173b01a 100644 --- a/src/smpi/mpi/smpi_request.cpp +++ b/src/smpi/mpi/smpi_request.cpp @@ -200,10 +200,12 @@ MPI_Request Request::rma_send_init(void *buf, int count, MPI_Datatype datatype, { MPI_Request request = nullptr; /* MC needs the comm to be set to nullptr during the call */ if(op==MPI_OP_NULL){ - request = new Request(buf==MPI_BOTTOM ? nullptr : buf , count, datatype, src, dst, tag, + request = new Request(buf==MPI_BOTTOM ? nullptr : buf , count, datatype, comm->group()->actor(src)->getPid(), + comm->group()->actor(dst)->getPid(), tag, comm, RMA | NON_PERSISTENT | ISEND | SEND | PREPARED); }else{ - request = new Request(buf==MPI_BOTTOM ? nullptr : buf, count, datatype, src, dst, tag, + request = new Request(buf==MPI_BOTTOM ? nullptr : buf, count, datatype, comm->group()->actor(src)->getPid(), + comm->group()->actor(dst)->getPid(), tag, comm, RMA | NON_PERSISTENT | ISEND | SEND | PREPARED | ACCUMULATE); request->op_ = op; } @@ -222,10 +224,10 @@ MPI_Request Request::rma_recv_init(void *buf, int count, MPI_Datatype datatype, { MPI_Request request = nullptr; /* MC needs the comm to be set to nullptr during the call */ if(op==MPI_OP_NULL){ - request = new Request(buf == MPI_BOTTOM ? nullptr : buf, count, datatype, src, dst, tag, comm, + request = new Request(buf == MPI_BOTTOM ? nullptr : buf, count, datatype, comm->group()->actor(src)->getPid(), comm->group()->actor(dst)->getPid(), tag, comm, RMA | NON_PERSISTENT | RECV | PREPARED); }else{ - request = new Request(buf == MPI_BOTTOM ? nullptr : buf, count, datatype, src, dst, tag, comm, + request = new Request(buf == MPI_BOTTOM ? nullptr : buf, count, datatype, comm->group()->actor(src)->getPid(), comm->group()->actor(dst)->getPid(), tag, comm, RMA | NON_PERSISTENT | RECV | PREPARED | ACCUMULATE); request->op_ = op; } -- 2.20.1