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/