Noam Bernstein
2017-11-16 14:44:46 UTC
Hi all - Iâm trying to run mixed MPI/OpenMP, so I ideally want binding of each MPI process to a small set of cores (to allow for the OpenMP threads). From the mpirun docs at
https://www.open-mpi.org//doc/current/man1/mpirun.1.php <https://www.open-mpi.org//doc/current/man1/mpirun.1.php>
I got the example that I thought corresponded to what I want,
% mpirun ... --map-by core:PE=2 --bind-to core
So I tried
mpirun -x OMP_NUM_THREADS --map-by core:PE=4 --bind-to core -np 32 python âŠ..
However, when I run this (with openmpi 3.0.0 or with 1.8.8) I get the following error:
A request for multiple cpus-per-proc was given, but a directive
was also give to map to an object level that cannot support that
directive.
Please specify a mapping level that has more than one cpu, or
else let us define a default mapping that will allow multiple
cpus-per-proc.
Am I doing something wrong, or is there a mistake in the docs, and it should bind to something other than core?
thanks,
Noam
https://www.open-mpi.org//doc/current/man1/mpirun.1.php <https://www.open-mpi.org//doc/current/man1/mpirun.1.php>
I got the example that I thought corresponded to what I want,
% mpirun ... --map-by core:PE=2 --bind-to core
So I tried
mpirun -x OMP_NUM_THREADS --map-by core:PE=4 --bind-to core -np 32 python âŠ..
However, when I run this (with openmpi 3.0.0 or with 1.8.8) I get the following error:
A request for multiple cpus-per-proc was given, but a directive
was also give to map to an object level that cannot support that
directive.
Please specify a mapping level that has more than one cpu, or
else let us define a default mapping that will allow multiple
cpus-per-proc.
Am I doing something wrong, or is there a mistake in the docs, and it should bind to something other than core?
thanks,
Noam