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