On Jun 10, 2010, at 4:43 AM, Paul H. Hargrove wrote:

> One should not ignore the option of POSIX shared memory: shm_open() and
> shm_unlink().  When present this mechanism usually does not suffer from
> the small (eg 32MB) limits of SysV, and uses a "filename" (in an
> abstract namespace) which can portably be up 14 characters in length. 
> Because shm_unlink() may be called as soon as the final process has done
> its shm_open() one can get approximately the safety of the IPC_RMID
> mechanism, but w/o being restricted to Linux.

FWIW, with the infrastructure work that Sam did, it would probably be the work 
of about an hour or two to add shm_open()/etc. into the common sm stuff.

> I have used POSIX shared memory for another project and found it works
> well on Linux, Solaris (10 and Open), FreeBSD and AIX.  That is probably
> a narrow coverage than SysV, but still worth consideration IMHO.  With
> mmap(), SysV and POSIX (plus XPMEM on the SGI Altix) as mechanisms for
> sharing memory between processes, I think we have an argument for a
> full-blown "shared pages" framework as opposed to just a "mpi_common_sm"
> MCA parameter.  That brings all the  benefits like possibly "failing
> over" from one component to another (otherwise less desired) one if some
> limit is exceeded.  For instance, SysV could (for a given set of
> priorities) be used by default, but mmap-on-real-fs could be
> automatically selected when the requested/required size exceeds the
> shmmax value.

That's more-or-less what Sam did.

Sam -- if the shmat stuff fails because the limits are too low, it'll 
(silently) fall back to the mmap module, right?

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to