Dick Treumann - MPI Team
IBM Systems & Technology Group
Dept X2ZA / MS P963 -- 2455 South Road -- Poughkeepsie, NY 12601
Tele (845) 433-7846 Fax (845) 433-8363
email@example.com wrote on 05/25/2010 12:03:11 AM:
> [image removed]
> [OMPI users] About the necessity of cancelation of pending
> communication and the use of buffer
> Yves Caniou
> Open MPI Users
> 05/25/2010 12:04 AM
> Sent by:
> Please respond to yves.caniou, Open MPI Users
> Dear All,
> I have 2 questions on the use of the MPI API:
> 1 ** Do I have to cancel Irecv() and Isend() operations before calling
> MPI_Finalize() in the case of when MPI_Finalize() is called, I know for sure
> that the application has finished to compute the result, and must exit?
> A silly example would be an iterative code that Isends() a value given a
> proba, and checks if it receives a value given another proba. At the end,
> each prints a value. There's no synchronization. Do I have to track all
> Isend() and cancel them before calling MPI_Finalize()?
The MPI Standard requires that all posted communications be locally complete before a call to MPI_Finalize. That means every non blocking send or receive must be MPI_WAITed (or successful TESTed). If the matching operation will never be posted because the program has done all it needs to, then you must both MPI_CANCEL those operations and MPI_WAIT them.
This is what the standard requires but that does not mean a particular MPI implementation will fail if you ignore the rule. If you want to write portable MPI code, obey the rule.
> 2 ** When I use a Isend() operation, the manpage says that I can't use the
> buffer until the operation completes.
> What happens if I use an Isend() operation in a function, with a buffer
> declared inside the function?
> Do I have to Wait() for the communication to finish before returning, or to
> declare the buffer as a global variable?
I see somebody answered this part.
> Thank you!
> Yves Caniou
> Associate Professor at Université Lyon 1,
> Member of the team project INRIA GRAAL in the LIP ENS-Lyon,
> Délégation CNRS in Japan French Laboratory of Informatics (JFLI),
> * in Information Technology Center, The University of Tokyo,
> 2-11-16 Yayoi, Bunkyo-ku, Tokyo 113-8658, Japan
> tel: +81-3-5841-0540
> * in National Institute of Informatics
> 2-1-2 Hitotsubashi, Chiyoda-ku, Tokyo 101-8430, Japan
> tel: +81-3-4212-2412
> users mailing list