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