I believe this has been fixed. Note that the allocation display occurs prior to 
mapping, and thus the slots_inuse will be zero at that point. You’ll see those 
numbers change if you do a comm_spawn, but otherwise they will always be zero


> On May 5, 2016, at 8:37 PM, Ralph Castain <r...@open-mpi.org> wrote:
> 
> Okay, I see it - will fix on Fri. This is unique to master.
> 
>> On May 5, 2016, at 1:54 PM, Aurélien Bouteiller <boute...@icl.utk.edu 
>> <mailto:boute...@icl.utk.edu>> wrote:
>> 
>> Ralph, 
>> 
>> I still observe these issues in the current master. (npernode is not 
>> respected either).
>> 
>> Also note that the display_allocation seems to be wrong (slots_inuse=0 when 
>> the slot is obviously in use). 
>> 
>> $ git show 
>> 4899c89 (HEAD -> master, origin/master, origin/HEAD) Fix a race condition 
>> when multiple threads try to create a bml en....Bouteiller  6 hours ago
>> 
>> $ bin/mpirun -np 12 -hostfile /opt/etc/ib10g.machinefile.ompi 
>> -display-allocation -map-by node    hostname 
>> 
>> ======================   ALLOCATED NODES   ======================
>>      dancer00: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer01: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer02: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer03: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer04: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer05: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer06: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer07: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer08: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer09: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer10: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer11: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer12: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer13: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer14: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>>      dancer15: flags=0x13 slots=8 max_slots=0 slots_inuse=0 state=UNKNOWN
>> =================================================================
>> dancer01
>> dancer00
>> dancer01
>> dancer01
>> dancer01
>> dancer00
>> dancer00
>> dancer00
>> dancer00
>> dancer00
>> dancer00
>> dancer00
>> 
>> 
>> --
>> Aurélien Bouteiller, Ph.D. ~~ https://icl.cs.utk.edu/~bouteill/ 
>> <https://icl.cs.utk.edu/~bouteill/>
>>> Le 13 avr. 2016 à 13:38, Ralph Castain <r...@open-mpi.org 
>>> <mailto:r...@open-mpi.org>> a écrit :
>>> 
>>> The —map-by node option should now be fixed on master, and PRs waiting for 
>>> 1.10 and 2.0
>>> 
>>> Thx!
>>> 
>>>> On Apr 12, 2016, at 6:45 PM, Ralph Castain <r...@open-mpi.org 
>>>> <mailto:r...@open-mpi.org>> wrote:
>>>> 
>>>> FWIW: speaking just to the —map-by node issue, Josh Ladd reported the 
>>>> problem on master as well yesterday. I’ll be looking into it on Wed.
>>>> 
>>>>> On Apr 12, 2016, at 5:53 PM, George Bosilca <bosi...@icl.utk.edu 
>>>>> <mailto:bosi...@icl.utk.edu>> wrote:
>>>>> 
>>>>> 
>>>>> 
>>>>> On Wed, Apr 13, 2016 at 1:59 AM, Gilles Gouaillardet <gil...@rist.or.jp 
>>>>> <mailto:gil...@rist.or.jp>> wrote:
>>>>> George,
>>>>> 
>>>>> about the process binding part
>>>>> 
>>>>> On 4/13/2016 7:32 AM, George Bosilca wrote:
>>>>> Also my processes, despite the fact that I asked for 1 per node, are not 
>>>>> bound to the first core. Shouldn’t we release the process binding when we 
>>>>> know there is a single process per node (as in the above case) ?
>>>>> did you expect the tasks are bound to the first *core* on each node ?
>>>>> 
>>>>> i would expect the tasks are bound to the first *socket* on each node.
>>>>> 
>>>>> In this particular instance, where it has been explicitly requested to 
>>>>> have a single process per node, I would have expected the process to be 
>>>>> unbound (we know there is only one per node). It is the responsibility of 
>>>>> the application to bound itself or its thread if necessary. Why are we 
>>>>> enforcing a particular binding policy?
>>>>> 
>>>>> (since we do not know how many (OpenMP or other) threads will be used by 
>>>>> the application, 
>>>>> --bind-to socket is a good policy imho. in this case (one task per node), 
>>>>> no binding at all would mean
>>>>> the task can migrate from one socket to the other, and/or OpenMP threads 
>>>>> are bound accross sockets.
>>>>> That would trigger some NUMA effects (better bandwidth if memory is 
>>>>> locally accessed, but worst performance
>>>>> is memory is allocated only on one socket).
>>>>> so imho, --bind-to socket is still my preferred policy, even if there is 
>>>>> only one MPI task per node.
>>>>> 
>>>>> Open MPI is about MPI ranks/processes. I don't think it is our job to try 
>>>>> to figure out how the user handle do with it's own threads.
>>>>> 
>>>>> Your justification make sense if the application only uses a single 
>>>>> socket. It also make sense if one starts multiple ranks per node, and the 
>>>>> internal threads of each MPI process inherit the MPI process binding. 
>>>>> However, in the case where there is a single process per node, because 
>>>>> there is a mismatch between the number of resources available (hardware 
>>>>> threads) and the binding of the parent process, all the threads of the 
>>>>> MPI application are [by default] bound on a single socket.
>>>>> 
>>>>>  George.
>>>>> 
>>>>> PS: That being said I think I'll need to implement the binding code 
>>>>> anyway in order to deal with the wide variety of behaviors in the 
>>>>> different MPI implementations.
>>>>> 
>>>>>  
>>>>> 
>>>>> Cheers,
>>>>> 
>>>>> Gilles
>>>>> _______________________________________________
>>>>> devel mailing list
>>>>> de...@open-mpi.org <mailto:de...@open-mpi.org>
>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel 
>>>>> <http://www.open-mpi.org/mailman/listinfo.cgi/devel>
>>>>> Link to this post: 
>>>>> http://www.open-mpi.org/community/lists/devel/2016/04/18758.php 
>>>>> <http://www.open-mpi.org/community/lists/devel/2016/04/18758.php>
>>>>> _______________________________________________
>>>>> devel mailing list
>>>>> de...@open-mpi.org <mailto:de...@open-mpi.org>
>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel 
>>>>> <http://www.open-mpi.org/mailman/listinfo.cgi/devel>
>>>>> Link to this post: 
>>>>> http://www.open-mpi.org/community/lists/devel/2016/04/18759.php 
>>>>> <http://www.open-mpi.org/community/lists/devel/2016/04/18759.php>
>>> 
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org <mailto:de...@open-mpi.org>
>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel 
>>> <http://www.open-mpi.org/mailman/listinfo.cgi/devel>
>>> Link to this post: 
>>> http://www.open-mpi.org/community/lists/devel/2016/04/18761.php 
>>> <http://www.open-mpi.org/community/lists/devel/2016/04/18761.php>
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org <mailto:de...@open-mpi.org>
>> Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/devel
>> Link to this post: 
>> http://www.open-mpi.org/community/lists/devel/2016/05/18915.php
> 

Reply via email to