Diego,

your code snippet does MPI_Waitall(2,...)
but the error is about MPI_Waitall(3,...)

Cheers,

Gilles

On Friday, January 29, 2016, Diego Avesani <diego.aves...@gmail.com> wrote:

> Dear all,
>
> I have created a program in fortran and OpenMPI, I test it on my laptop
> and it works.
> I would like to use it on a cluster that has, unfortunately, intel MPI.
>
> The program crushes on the cluster and I get the following error:
>
> *Fatal error in MPI_Waitall: Invalid MPI_Request, error stack:*
> *MPI_Waitall(271): MPI_Waitall(count=3, req_array=0x7445f0,
> status_array=0x744600) failed*
> *MPI_Waitall(119): The supplied request in array element 2 was invalid
> (kind=0)*
>
> Do OpenMPI and MPI have some difference that I do not know?
>
> this is my code
>
>  REQUEST = MPI_REQUEST_NULL
>  !send data share with left
>  IF(MPIdata%rank.NE.0)THEN
>     MsgLength = MPIdata%imaxN
>     DO icount=1,MPIdata%imaxN
>             iNode = MPIdata%nodeFromUp(icount)
>             send_messageL(icount) = R1(iNode)
>     ENDDO
>     CALL MPI_ISEND(send_messageL, MsgLength, MPIdata%AUTO_COMP,
> MPIdata%rank-1, MPIdata%rank, MPI_COMM_WORLD, REQUEST(1), MPIdata%iErr)
>  ENDIF
>  !
>  !recive message FROM RIGHT CPU
>  IF(MPIdata%rank.NE.MPIdata%nCPU-1)THEN
>     MsgLength = MPIdata%imaxN
>     CALL MPI_IRECV(recv_messageR, MsgLength, MPIdata%AUTO_COMP,
> MPIdata%rank+1, MPIdata%rank+1, MPI_COMM_WORLD, REQUEST(2), MPIdata%iErr)
>  ENDIF
>  CALL MPI_WAITALL(2,REQUEST,send_status_list,MPIdata%iErr)
>  IF(MPIdata%rank.NE.MPIdata%nCPU-1)THEN
>     DO i=1,MPIdata%imaxN
>        iNode=MPIdata%nodeList2Up(i)
>        R1(iNode)=recv_messageR(i)
>     ENDDO
>  ENDIF
>
> Thank a lot your help
>
>
>
> Diego
>
>

Reply via email to