It would be difficult to do well without some MPI help, in my
opinion. You certainly could use the Linux processor affinity API
directly in the MPI application. But how would the process know
which core to bind to? It could wait until after MPI_INIT and call
MPI_COMM_RANK, but MPI implementations allocate many of their
resources during MPI_INIT, so there's high potential of the resources
(ie, memory) ending up associated with a different processor than the
one the process gets pinned to. That isn't a big deal on Intel
machines, but is a major issue for AMD processors.
Just my $0.02, anyway.
Brian
On Nov 28, 2006, at 6:09 PM, Durga Choudhury wrote:
Jeff (and everybody else)
First of all, pardon me if this is a stupid comment; I am learning
the nuts-and-bolts of parallel programming; but my comment is as
follows:
Why can't this be done *outside* openMPI, by calling Linux's
processor affinity APIs directly? I work with a blade server kind
of archirecture, where each blade has 12 CPUs. I use pthread within
each blade and MPI to talk across blades. I use the Linux system
calls to attach a thread to a specific CPU and it seems to work
fine. The only drawback is: it makes the code unportable to a
different OS. But even if you implemented paffinity within openMPI,
the code will still be unportable to a different implementation of
MPI, which, as is, it is not.
Hope this helps to the original poster.
Durga
On 11/28/06, Jeff Squyres <jsquy...@cisco.com> wrote: There is not,
right now. However, this is mainly because back when I
implemented the processor affinity stuff in OMPI (well over a year
ago), no one had any opinions on exactly what interface to expose to
the use. :-)
So right now there's only this lame control:
http://www.open-mpi.org/faq/?category=tuning#using-paffinity
I am not opposed to implementing more flexible processor affinity
controls, but the Big Discussion over the past few months is exactly
how to expose it to the end user. There have been several formats
proposed (e.g., mpirun command line parameters, magic MPI attributes,
MCA parameters, etc.), but nothing that has been "good" and "right".
So here's the time to chime in -- anyone have any opinions on this?
On Nov 25, 2006, at 9:31 AM, shap...@isp.nsc.ru wrote:
> Hello,
> i cant figure out, is there a way with open-mpi to bind all
> threads on a given node to a specified subset of CPUs.
> For example, on a multi-socket multi-core machine, i want to use
> only a single core on each CPU.
> Thank You.
>
> Best Regards,
> Alexander Shaposhnikov
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
--
Jeff Squyres
Server Virtualization Business Unit
Cisco Systems
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
--
Devil wanted omnipresence;
He therefore created communists.
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
--
Brian Barrett
Open MPI Team, CCS-1
Los Alamos National Laboratory