Open MPI errors in Win_fence() when the assertion contains both
MPI_MODE_NOPRECEDE and MPI_MODE_NOSUCCEED

Could you explain me why the following code is wrong? Please note that
the fence call with assertion !=0 is issued before and after fence
calls with assertion=0, and I'm not making any modification to the
local window, nor issuing any RMA call. My understanding of MPI RMA
operations is quite limited, but I would say that my code is valid and
should not fail.

[dalcinl@kw2060 openmpi]$ cat win_fence.c
#include <mpi.h>
int main(int argc, char *argv[])
{
  MPI_Win win;
  MPI_Init(&argc, &argv);
  MPI_Win_create(MPI_BOTTOM, 0, 1, MPI_INFO_NULL, MPI_COMM_SELF, &win);
  MPI_Win_fence(0, win);
  
MPI_Win_fence(MPI_MODE_NOSTORE|MPI_MODE_NOPUT|MPI_MODE_NOPRECEDE|MPI_MODE_NOSUCCEED,
win);
  MPI_Win_fence(0, win);
  MPI_Finalize();
  return 0;
}
[dalcinl@kw2060 openmpi]$ mpicc win_fence.c
[dalcinl@kw2060 openmpi]$ ./a.out
[kw2060:19890] *** An error occurred in MPI_Win_fence
[kw2060:19890] *** reported by process [140737129086977,0]
[kw2060:19890] *** on win rdma window 3
[kw2060:19890] *** MPI_ERR_ASSERT: invalid assert argument
[kw2060:19890] *** MPI_ERRORS_ARE_FATAL (processes in this win will now abort,
[kw2060:19890] ***    and potentially your MPI job)
[dalcinl@kw2060 openmpi]$


-- 
Lisandro Dalcin
---------------
CIMEC (UNL/CONICET)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
3000 Santa Fe, Argentina
Tel: +54-342-4511594 (ext 1016)
Tel/Fax: +54-342-4511169

Reply via email to