Ah, yes, my example was for 10 cores per socket, good catch :)

2016-01-06 21:19 GMT+01:00 Ralph Castain <r...@open-mpi.org>:

> I believe he wants two procs/socket, so you’d need ppr:2:socket:pe=7
>
>
> On Jan 6, 2016, at 12:14 PM, Nick Papior <nickpap...@gmail.com> wrote:
>
> I do not think KMP_AFFINITY should affect anything in OpenMPI, it is an
> MKL env setting? Or am I wrong?
>
> Note that these are used in an environment where openmpi automatically
> gets the host-file. Hence they are not present.
> With intel mkl and openmpi I got the best performance using these, rather
> long flags:
>
> export KMP_AFFINITY=verbose,compact,granularity=core
> export KMP_STACKSIZE=62M
> export KMP_SETTINGS=1
>
> def_flags="--bind-to core -x OMP_PROC_BIND=true --report-bindings"
> def_flags="$def_flags -x KMP_AFFINITY=$KMP_AFFINITY"
>
> # in your case 7:
> ONP=7
> flags="$def_flags -x MKL_NUM_THREADS=$ONP -x MKL_DYNAMIC=FALSE"
> flags="$flags -x OMP_NUM_THREADS=$ONP -x OMP_DYNAMIC=FALSE"
> flags="$flags -x KMP_STACKSIZE=$KMP_STACKSIZE"
> flags="$flags --map-by ppr:1:socket:pe=7"
>
> then run your program:
>
> mpirun $flags <app>
>
> A lot of the option flags are duplicated (and strictly not needed), but I
> provide them for easy testing changes.
> Surely this is application dependent, but for my case it was performing
> really well.
>
>
> 2016-01-06 20:48 GMT+01:00 Erik Schnetter <schnet...@gmail.com>:
>
>> Setting KMP_AFFINITY will probably override anything that OpenMPI
>> sets. Can you try without?
>>
>> -erik
>>
>> On Wed, Jan 6, 2016 at 2:46 PM, Matt Thompson <fort...@gmail.com> wrote:
>> > Hello Open MPI Gurus,
>> >
>> > As I explore MPI-OpenMP hybrid codes, I'm trying to figure out how to do
>> > things to get the same behavior in various stacks. For example, I have a
>> > 28-core node (2 14-core Haswells), and I'd like to run 4 MPI processes
>> and 7
>> > OpenMP threads. Thus, I'd like the processes to be 2 processes per
>> socket
>> > with the OpenMP threads laid out on them. Using a "hybrid Hello World"
>> > program, I can achieve this with Intel MPI (after a lot of testing):
>> >
>> > (1097) $ env OMP_NUM_THREADS=7 KMP_AFFINITY=compact mpirun -np 4
>> > ./hello-hybrid.x | sort -g -k 18
>> > srun.slurm: cluster configuration lacks support for cpu binding
>> > Hello from thread 0 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 0
>> > Hello from thread 1 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 1
>> > Hello from thread 2 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 2
>> > Hello from thread 3 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 3
>> > Hello from thread 4 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 4
>> > Hello from thread 5 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 5
>> > Hello from thread 6 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 6
>> > Hello from thread 0 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 7
>> > Hello from thread 1 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 8
>> > Hello from thread 2 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 9
>> > Hello from thread 3 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 10
>> > Hello from thread 4 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 11
>> > Hello from thread 5 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 12
>> > Hello from thread 6 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 13
>> > Hello from thread 0 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 14
>> > Hello from thread 1 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 15
>> > Hello from thread 2 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 16
>> > Hello from thread 3 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 17
>> > Hello from thread 4 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 18
>> > Hello from thread 5 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 19
>> > Hello from thread 6 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 20
>> > Hello from thread 0 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 21
>> > Hello from thread 1 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 22
>> > Hello from thread 2 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 23
>> > Hello from thread 3 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 24
>> > Hello from thread 4 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 25
>> > Hello from thread 5 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 26
>> > Hello from thread 6 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 27
>> >
>> > Other than the odd fact that Process #0 seemed to start on Socket #1
>> (this
>> > might be an artifact of how I'm trying to detect the CPU I'm on), this
>> looks
>> > reasonable. 14 threads on each socket and each process is laying out its
>> > threads in a nice orderly fashion.
>> >
>> > I'm trying to figure out how to do this with Open MPI (version 1.10.0)
>> and
>> > apparently I am just not quite good enough to figure it out. The closest
>> > I've gotten is:
>> >
>> > (1155) $ env OMP_NUM_THREADS=7 KMP_AFFINITY=compact mpirun -np 4 -map-by
>> > ppr:2:socket ./hello-hybrid.x | sort -g -k 18
>> > Hello from thread 0 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 0
>> > Hello from thread 0 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 0
>> > Hello from thread 1 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 1
>> > Hello from thread 1 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 1
>> > Hello from thread 2 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 2
>> > Hello from thread 2 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 2
>> > Hello from thread 3 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 3
>> > Hello from thread 3 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 3
>> > Hello from thread 4 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 4
>> > Hello from thread 4 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 4
>> > Hello from thread 5 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 5
>> > Hello from thread 5 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 5
>> > Hello from thread 6 out of 7 from process 0 out of 4 on borgo035 on CPU
>> 6
>> > Hello from thread 6 out of 7 from process 1 out of 4 on borgo035 on CPU
>> 6
>> > Hello from thread 0 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 14
>> > Hello from thread 0 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 14
>> > Hello from thread 1 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 15
>> > Hello from thread 1 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 15
>> > Hello from thread 2 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 16
>> > Hello from thread 2 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 16
>> > Hello from thread 3 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 17
>> > Hello from thread 3 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 17
>> > Hello from thread 4 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 18
>> > Hello from thread 4 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 18
>> > Hello from thread 5 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 19
>> > Hello from thread 5 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 19
>> > Hello from thread 6 out of 7 from process 2 out of 4 on borgo035 on CPU
>> 20
>> > Hello from thread 6 out of 7 from process 3 out of 4 on borgo035 on CPU
>> 20
>> >
>> > Obviously not right. Any ideas on how to help me learn? The man mpirun
>> page
>> > is a bit formidable in the pinning part, so maybe I've missed an obvious
>> > answer.
>> >
>> > Matt
>> > --
>> > Matt Thompson
>> >
>> > Man Among Men
>> > Fulcrum of History
>> >
>> >
>> > _______________________________________________
>> > users mailing list
>> > us...@open-mpi.org
>> > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> > Link to this post:
>> > http://www.open-mpi.org/community/lists/users/2016/01/28217.php
>>
>>
>>
>> --
>> Erik Schnetter <schnet...@gmail.com>
>> http://www.perimeterinstitute.ca/personal/eschnetter/
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> Link to this post:
>> http://www.open-mpi.org/community/lists/users/2016/01/28218.php
>>
>
>
>
> --
> Kind regards Nick
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post:
> http://www.open-mpi.org/community/lists/users/2016/01/28219.php
>
>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post:
> http://www.open-mpi.org/community/lists/users/2016/01/28221.php
>



-- 
Kind regards Nick

Reply via email to