Moving to devel; this question seems worthwhile to push out to the general development community.

I've been coming across an increasing number of customers and other random OMPI users who use system(). So if there's zero impact on performance and it doesn't make the code [more] incredibly horrible [than it already is], I'm in favor of this change.



On May 17, 2007, at 7:00 AM, Gleb Natapov wrote:

Hi,

I thought about changing pipeline protocol to send data from the end of the message instead of the middle like it does now. The rationale behind
this is better fork() support. When application forks, child doesn't
inherit registered memory, so IB providers educate users to not touch
buffers that were owned by the MPI before fork in a child process. The
problem is that granularity of registration is HW page (4K), so last
page of the buffer may contain also other application's data and user
may be unaware of this and be very surprised by SIGSEGV. If pipeline
protocol will send data from the end of a buffer then the last page of
the buffer will not be registered (and first page is never registered
because we send beginning of the buffer eagerly with rendezvous packet)
so this situation will be avoided. It should have zero impact on
performance. What do you think? How common for MPI applications to
fork()?

--
                        Gleb.
_______________________________________________
devel-core mailing list
devel-c...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel-core


--
Jeff Squyres
Cisco Systems

Reply via email to