Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Patrick Geoffray (patrick_at_[hidden])
Date: 2007-05-17 14:35:02


Brian Barrett wrote:
> On the other hand, since the MPI standard explicitly says you're not
> allowed to call fork() or system() during the MPI application and

Does it ? The MPI spec says that you should not access buffers that have
been committed to MPI (pending asynchronous send or recv buffer for
example). It does not care about page boundary and pinning side effects.

The fork() problem is due to memory registration aggravated by
registration cache. Memory registration in itself is a hack from the OS
point of view, and you already know a lot about the various problems
related to registration cache.

The right way to fix the fork problem is to fix the memory registration
problem in the OS itself. It's not going to happen anytime soon, so it
requires another hack (forcing VM duplication of registered pages at
fork time).

Patrick

-- 
Patrick Geoffray
Myricom, Inc.
http://www.myri.com