cea-hpc / wi4mpi

Wrapper interface for MPI
BSD 3-Clause "New" or "Revised" License
80 stars 15 forks source link

MPI_STATUS_IGNORE not translated correctly in FORTRAN #61

Closed kevin-juilly closed 9 months ago

kevin-juilly commented 9 months ago

When using MPI_STATUS_IGNORE in fortran, it crashes in preload mode when going from openmpi to mpich

program mpicart_sndrcv
  use mpi
  implicit none

  integer :: nproc, rank
  integer :: ierr
  integer :: val

  integer :: i

  call MPI_Init(ierr)
  call MPI_Comm_size(MPI_COMM_WORLD, nproc, ierr)
  call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)

  if (rank .eq. 0) then
    call mpi_send(val, 1, MPI_INTEGER, 1, 10, MPI_COMM_WORLD, ierr)
  else
    call mpi_recv(val, 1, MPI_INTEGER, 0, 10, MPI_COMM_WORLD, MPI_STATUS_IGNORE, ierr)
  endif

  call MPI_Finalize(ierr)

end program mpicart_sndrcv

Using two processes, rank 1 return this error message :

In: PMI_Abort(805951756, Fatal error in MPI_Recv: Invalid argument, error stack:
MPI_Recv(200): MPI_Recv(buf=0x7ffdc4141580, count=1, MPI_INTEGER, src=0, tag=10, MPI_COMM_WORLD, status=(nil)) failed
MPI_Recv(88).: Null pointer in parameter status)