> On Jan 29, 2016, at 9:43 AM, Diego Avesani <diego.aves...@gmail.com> wrote: > > Dear all, > > I am really sorry for the time that you dedicated to me. > > this is what I found: > > REQUEST = MPI_REQUEST_NULL
I'm not enough of a fortran expert to know -- does this assign MPI_REQUEST_NULL to every entry in the REQUEST array? > !send data share with UP > 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 up 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 I only see you setting REQUEST(1) and REQUEST(2) above, so I would assume that you need to send nMsg to 2. That being said, it's valid to pass MPI_REQUEST_NULL in to any of the MPI_WAIT/TEST functions. So it should be permissible to send 3 in, if a) REQUEST is long enough, b) REQUEST(3) has been initialized to MPI_REQUEST_NULL, and c) send_status_list is long enough (you didn't include the declaration for it anywhere). A major point: if REQUEST or send_status_list is only of length 2, then nMsg should not be larger than 2. > CALL MPI_WAITALL(nMsg,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 > > As you can see there is a nMsg which is set equal to "3". Do I have to set it > equal to? Am I right? > > > > > > Diego > > > On 29 January 2016 at 14:09, Gilles Gouaillardet > <gilles.gouaillar...@gmail.com> wrote: > Diego, > > First, you can double check the program you are running has been compiled > from your sources. > > then you can run your program under a debugger, and browse the stack when it > crashes. > > there could be a bug in intelmpi, that incorrectly translates 2 in Fortran to > 3 in C... > but as far as I am concerned, this is extremely unlikely. > > Cheers, > > Gilles > > On Friday, January 29, 2016, Diego Avesani <diego.aves...@gmail.com> wrote: > Dear all, Dear Jeff, Dear Gilles, > > I am sorry, porblably I am a stubborn. > > In all my code I have > > CALL MPI_WAITALL(2,REQUEST,send_status_list,MPIdata%iErr) > > how can it became "3"? > > the only thing that I can think is that MPI starts to allocate the vector > from "0", while fortran starts from 1. Indeed I allocate REQUEST(2) > > what do you think? > > Diego > > > > Diego > > > On 29 January 2016 at 12:43, Jeff Squyres (jsquyres) <jsquy...@cisco.com> > wrote: > You must have an error elsewhere in your code; as Gilles pointed, the error > message states that you are calling MPI_WAITALL with a first argument of 3: > > ------ > MPI_Waitall(271): MPI_Waitall(count=3, req_array=0x7445f0, > status_array=0x744600) failed > ------ > > We can't really help you with problems with Intel MPI; sorry. You'll need to > contact their tech support for assistance. > > > > > On Jan 29, 2016, at 6:11 AM, Diego Avesani <diego.aves...@gmail.com> wrote: > > > > Dear all, Dear Gilles, > > > > I do not understand, I am sorry. > > I did a "grep" on my code and I find only "MPI_WAITALL(2", so I am not able > > to find the error. > > > > > > Thanks a lot > > > > > > > > Diego > > > > > > On 29 January 2016 at 11:58, Gilles Gouaillardet > > <gilles.gouaillar...@gmail.com> wrote: > > 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 > > > > > > _______________________________________________ > > users mailing list > > us...@open-mpi.org > > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > > Link to this post: > > http://www.open-mpi.org/community/lists/users/2016/01/28411.php > > > > _______________________________________________ > > users mailing list > > us...@open-mpi.org > > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > > Link to this post: > > http://www.open-mpi.org/community/lists/users/2016/01/28413.php > > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > _______________________________________________ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2016/01/28414.php > > > _______________________________________________ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2016/01/28418.php > > _______________________________________________ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2016/01/28419.php -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/