Hi, I have used mpi_waitall() to do it. The data can be received but the contents are wrong. Any help is appreciated. thanks
> From: jsquy...@cisco.com > Date: Fri, 22 Oct 2010 15:35:11 -0400 > To: us...@open-mpi.org > Subject: Re: [OMPI users] OPEN MPI data transfer error > > It doesn't look like you have completed the request that came back from > Irecv. You need to TEST or WAIT on requests before they are actually > completed (e.g., in the case of a receive, the data won't be guaranteed to be > in the target buffer until TEST/WAIT indicates that the request has > completed). > > > > On Oct 22, 2010, at 3:19 PM, Jack Bryan wrote: > > > Hi, > > > > I am using open MPI to transfer data between nodes. > > > > But the received data is not what the data sender sends out . > > > > I have tried C and C++ binding . > > > > data sender: > > double* sendArray = new double[sendResultVec.size()]; > > > > for (int ii =0 ; ii < sendResultVec.size() ; ii++) > > { > > sendArray[ii] = sendResultVec[ii]; > > } > > > > MPI::COMM_WORLD.Send(sendArray, sendResultVec.size(), MPI_DOUBLE, 0, > > myworkerUpStreamTaskTag); > > > > data receiver: > > double* recvArray = new double[objSize]; > > > > mToMasterT1Req = MPI::COMM_WORLD.Irecv(recvArray, objSize, MPI_DOUBLE, > > destRank, myUpStreamTaskTag); > > > > > > The sendResultVec.size() = objSize. > > > > > > What is the possible reason ? > > > > > > Any help is appreciated. > > > > thanks > > > > jack > > > > Oct. 22 1010 > > _______________________________________________ > > users mailing list > > us...@open-mpi.org > > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > -- > 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 > http://www.open-mpi.org/mailman/listinfo.cgi/users