The real complexity comes in when trying to schedule on particular
cores in a machine. For example, we discussed some real-world
application examples that wanted to do the following:
- Launch 1 MPI process per socket, pinning all cores on the socket to
- Launch 2 MPI processes per socket, splitting the cores between them
- Launch MPI processes on unused sockets/cores on a machine (ie.,
some arbitrary mapping of processes to cores)
Then there's the desire to have the scheduler provide all this
information -- hostfiles are fine, but they actually represent a
pretty small portion of real world usage.
On Nov 29, 2006, at 2:17 AM, Laurent.POREZ_at_[hidden] wrote:
> 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:
>>> 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:
>>>> 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
Server Virtualization Business Unit