Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] About the necessity of cancelation of pending communication and the use of buffer
From: Yves Caniou (yves.caniou_at_[hidden])
Date: 2010-05-25 00:03:11


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()?

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?

Thank you!

.Yves.

-- 
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 
http://graal.ens-lyon.fr/~ycaniou/