Hello,
I just ran across this document from Apple that describes
the Thread affinity scheme that was added in Leopard.
http://developer.apple.com/releasenotes/Performance/RN-AffinityAPI/

In its current form, and how orteds start the MPI ranks with exec,
we can't use this, AFAIK.  However, if someone cares, there
might be a path for doing MPI process affinity on Mac OS X
with quite a bit of work.  Let me know if you have the
time & interest, and I can explain my idea on how to do it.

For the curious, here is the key text extracted from that document:
"Generally, the affinity tag namespace is private to one task
(process). However, a child process forked after its parent has made a
THREAD_AFFINITY_POLICY call will share the affinity namespace of the
parent process. This enables a family of forked processes to share an
affinity namespace despite comprising separate tasks. Moreover, the
forked child inherits the affinity tag of its parent. Hence, a parent
can seed a number of child processes within an arbitrary organization
of shared affinity sets. Note: affinity namespace inheritance is
destroyed by the exec(3) system call, however."

It's that last sentence about exec(3) that makes things (very) difficult
for us.
-- 
Tim Mattox, Ph.D. - http://homepage.mac.com/tmattox/
 tmat...@gmail.com || timat...@open-mpi.org
    I'm a bright... http://www.the-brights.net/

Reply via email to