From a76ba95f5b7bb24b32a86212bf4f2b1a27433556 Mon Sep 17 00:00:00 2001 From: Adrian Diaz Date: Thu, 11 Apr 2019 12:51:46 -0600 Subject: [PATCH 1/2] comm_tiled_sendself_fix --- src/comm_tiled.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/comm_tiled.cpp b/src/comm_tiled.cpp index d1d625445a..d190bf9a37 100644 --- a/src/comm_tiled.cpp +++ b/src/comm_tiled.cpp @@ -898,13 +898,6 @@ void CommTiled::borders() MPI_Send(buf_send,n,MPI_DOUBLE,sendproc[iswap][m],0,world); } } - if (sendself[iswap]) { - avec->pack_border_vel(sendnum[iswap][nsend],sendlist[iswap][nsend], - buf_send,pbc_flag[iswap][nsend], - pbc[iswap][nsend]); - avec->unpack_border_vel(recvnum[iswap][nrecv],firstrecv[iswap][nrecv], - buf_send); - } if (recvother[iswap]) { MPI_Waitall(nrecv,requests,MPI_STATUS_IGNORE); for (m = 0; m < nrecv; m++) @@ -912,6 +905,13 @@ void CommTiled::borders() &buf_recv[size_border* forward_recv_offset[iswap][m]]); } + if (sendself[iswap]) { + avec->pack_border_vel(sendnum[iswap][nsend],sendlist[iswap][nsend], + buf_send,pbc_flag[iswap][nsend], + pbc[iswap][nsend]); + avec->unpack_border_vel(recvnum[iswap][nrecv],firstrecv[iswap][nrecv], + buf_send); + } } else { if (recvother[iswap]) { @@ -927,12 +927,6 @@ void CommTiled::borders() MPI_Send(buf_send,n,MPI_DOUBLE,sendproc[iswap][m],0,world); } } - if (sendself[iswap]) { - avec->pack_border(sendnum[iswap][nsend],sendlist[iswap][nsend], - buf_send,pbc_flag[iswap][nsend],pbc[iswap][nsend]); - avec->unpack_border(recvnum[iswap][nsend],firstrecv[iswap][nsend], - buf_send); - } if (recvother[iswap]) { MPI_Waitall(nrecv,requests,MPI_STATUS_IGNORE); for (m = 0; m < nrecv; m++) @@ -940,6 +934,12 @@ void CommTiled::borders() &buf_recv[size_border* forward_recv_offset[iswap][m]]); } + if (sendself[iswap]) { + avec->pack_border(sendnum[iswap][nsend],sendlist[iswap][nsend], + buf_send,pbc_flag[iswap][nsend],pbc[iswap][nsend]); + avec->unpack_border(recvnum[iswap][nrecv],firstrecv[iswap][nrecv], + buf_send); + } } // increment ghost atoms From 59ff6b7abcaedafafe3ad55f649a86b765f8961f Mon Sep 17 00:00:00 2001 From: Adrian-Diaz <46537160+Adrian-Diaz@users.noreply.github.com> Date: Wed, 29 Jul 2020 16:33:54 -0400 Subject: [PATCH 2/2] Add comment explaining the change --- src/comm_tiled.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/comm_tiled.cpp b/src/comm_tiled.cpp index d190bf9a37..4b639cac3a 100644 --- a/src/comm_tiled.cpp +++ b/src/comm_tiled.cpp @@ -883,6 +883,7 @@ void CommTiled::borders() // swap atoms with other procs using pack_border(), unpack_border() // use Waitall() instead of Waitany() because calls to unpack_border() // must increment per-atom arrays in ascending order + // For the same reason, sendself unpacks must occur after recvother unpacks if (ghost_velocity) { if (recvother[iswap]) {