You can always specify a particular number of cpus to use for each process by 
adding it to the map-by directive:

 mpirun -np 8 --map-by ppr:2:socket:pe=5 --use-hwthread-cpus -report-bindings 
--mca plm_rsh_agent "qrsh" ./myid

would map 2 processes to each socket, binding each process to 5 HTs on that 
socket (since you told us to treat HTs as independent cpus). If you want us to 
bind to you 5 cores, then you need to remove that --use-hwthread-cpus directive.

As I said earlier in this thread, we are actively working with the OpenMP folks 
on a mechanism by which the two sides can coordinate these actions so it will 
be easier to get the desired behavior. For now, though, hopefully this will 
suffice.

> On Apr 13, 2017, at 6:31 AM, Heinz-Ado Arnolds <arno...@mpa-garching.mpg.de> 
> wrote:
> 
> On 13.04.2017 15:20, gil...@rist.or.jp wrote:
> ...
>> in your second case, there are 2 things
>> - MPI binds to socket, that is why two MPI tasks are assigned the same 
>> hyperthreads
>> - the GNU OpenMP runtime looks unable to figure out 2 processes use the 
>> same cores, and hence end up binding
>>  the OpenMP threads to the same cores.
>> my best bet is you should bind a MPI tasks to 5 cores instead of one 
>> socket.
>> i do not know the syntax off hand, and i am sure Ralph will help you 
>> with that
> 
> Thanks, would be great if someone has that syntax.
> 
> Cheers,
> 
> Ado
> 
> 
> _______________________________________________
> users mailing list
> users@lists.open-mpi.org
> https://rfd.newmexicoconsortium.org/mailman/listinfo/users

_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users

Reply via email to