I agree with this solution, for the machinefile.
Using mpiexec or a spawn command, you can add the cpu number attached to the hostname :
mpiexec -host [hostname]:[cpu number] -n 1 mpi_test
or, for MPI_Comm_spawn :
MPI_Info_set( mpi_info, "host", "[hostname]:[cpu number]" );
> In the machinefile, add for each node with M cpus:
> myhost_at_mydomain slots=N cpus_allowed=<set>,
> <set> being the subset of 0..M-1 in some yours-to-decide format and
> with yours-to-decide default values.
> Best Regards,
> Alexander Shaposhnikov
> On Wednesday 29 November 2006 06:16, Jeff Squyres 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
> > 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, shaposh_at_[hidden] 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