I just committed a new "maffinity" (memory affinity) framework with
only a single, trivial component right now. It's API is still changing
a bit, but it's getting there.
Right now, memory affinity is automatically enabled during
ompi_mpi_init() (*not* automatically during opal_init()) if processor
affinity is both enabled and successful in biinding the process to a
processor. Nothing really uses the memory affinity yet except my
un-committed shared memory collectives, but the API/components will
likely be expanded in the near future to hint to the OS that all
malloc's should return local memory, etc.
Thanks to Troy for pointing out the libnuma project (out of the SUSE
Labs) that is usable on any NUMA machine (e.g., Opterons -- I'm asking
to have it installed on the Odin IU cluster). I'll be making a
maffinity component for that as well.
--
{+} Jeff Squyres
{+} The Open MPI Project
{+} http://www.open-mpi.org/