But we don't want the child to inherit affinity from the orted anyway,
so I don't see why the exec call is an issue for us. The MPI proc sets
its own affinity during MPI_Init using the paffinity framework, so it
looks to me like the only thing missing is the correct set_affinity
code in the darwin paffinity module.
On Dec 12, 2008, at 9:21 AM, Tim Mattox wrote:
> I just ran across this document from Apple that describes
> the Thread affinity scheme that was added in Leopard.
> 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)
> for us.
> Tim Mattox, Ph.D. - http://homepage.mac.com/tmattox/
> tmattox_at_[hidden] || timattox_at_[hidden]
> I'm a bright... http://www.the-brights.net/
> devel mailing list