Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2006-11-29 08:51:58


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
that process
- 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]" );
>
> Cheers,
> Laurent.
>>
>> 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
>> 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, 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
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
Jeff Squyres
Server Virtualization Business Unit
Cisco Systems