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/