On Wed, Nov 29, 2006 at 08:48:48AM -0500, Jeff Squyres wrote:
> - There's also the issue that the BIOS determines core/socket order  
> mapping to Linux virtual processor IDs.  Linux virtual processor 0 is  
> always socket 0, core 0.  But what is linux virtual processor 1?  Is  
> it socket 0, core 1, or socket 1, core 0?  This stuff is quite  
> complicated to figure out, and can have large implications  
> (particularly in NUMA environments).
>
This problem is solved in the latest kernels. They have
/sys/devices/system/cpu/cpu?/topology/ directory.
# ls /sys/devices/system/cpu/cpu0/topology/
core_id  core_siblings  physical_package_id  thread_siblings

There is enough information in those files to determine CPU topology
(including HT)

> 
> 
> On Nov 29, 2006, at 1:08 AM, Durga Choudhury wrote:
> 
> > Brian
> >
> > But does it matter which core the process gets bound to? They are  
> > all identical, and as long as the task is parallelized in equal  
> > chunks (that's the key part), it should not matter. The last time I  
> > had to do this, the problem had to do with real-time processing of  
> > a very large radar image. My approach was to spawn *ONE* MPI  
> > process per blade and 12 threads (to utilize the 12 processors).  
> > Inside the task entry point of each pthread, I called  
> > sched_setaffinity(). Then I set the scheduling algorithm to real  
> > time with a very high task priority to avoid preemption. It turns  
> > out that the last two steps did not buy me much because ours was a  
> > lean, embedded architecture anyway, designed to run real-time  
> > applications, but I definitely got a speed up from the task  
> > distribution.
> >
> > It sure would be very nice for openMPI to have this feature; no  
> > questions about that. All I am saying is: if a user wants it today,  
> > a reasonable workaround is available so he/she does not need to wait.
> >
> > This is my $0.01's worth, since I am probably a lot less experienced.
> >
> > Durga
> >
> >
> > On 11/29/06, Brian W. Barrett <bbarr...@lanl.gov> wrote: 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
> >
> >
> > _______________________________________________
> > 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
> 
> 
> -- 
> Jeff Squyres
> Server Virtualization Business Unit
> Cisco Systems
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users

--
                        Gleb.

Reply via email to