note this is still suboptimal.
for example, if you run a job with two MPI tasks with two OpenMP threads
each on the same node,
then it is likely the OpenMP runtime will bind both thread 0 on core 0,
and both thread 1 on core 1, which one more time means time sharing.
Cheers,
Gilles
On 6/
mpirun binds a.out on a single core, so when you
OMP_NUM_THREADS=2 mpirun -np 1 a.out
the two OpenMP threads ends up doing time sharing.
you can confirm that by running
grep Cpus_allowed_list /proc/self/status
mpirun -np 1 grep Cpus_allowed_list /proc/self/status
here is what i get :
[gil