On Jul 6, 2008, at 1:28 PM, Patrick Geoffray wrote:

WHAT: make mpi_leave_pinned=1 by default when a BTL is used that would benefit from it (when possible; 0 when not, obviously)

The probable reason registration cache (aka leave_pinned) is disabled by default is that it may be unsafe. Even if you use mallocopt to never return memory to the OS, how do you guarantee that:
* malloc always enforce the mallocopt *hints*.
* pinned memory can safely be fork()ed (system() for example).
* pinned memory can safely be unmmap()ed (Direct I/O or file mapping for example).

If you can't, one solution may be to write a simple MPI code that corrupts MVAPICH and make some noise about it.


I can appreciate that, but it still remains that we are the *only* OpenFabrics MPI that doesn't do this by default. So an app would break *all* of them. To date, there hasn't been an app that caused anyone to change their defaults with regard to this issue (AFAIK).

- I agree that we don't know that the mallopt hint will be obeyed; I don't know how to test for that.
- pinned memory is already unsafe in OpenFabrics when forking.
- we can catch munmap (it's in the code base already) in most cases, so I'm not too worried about that.

--
Jeff Squyres
Cisco Systems

Reply via email to