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

Reply via email to