> There shouldn't be a difference between running a job via 
>    ./executable 
> and 
>    mpirun -n 1 ./executable. 
>
> Are your timing results reproducible? 
>
>
>
My timing results are reproducible. As expected, there is no difference 
between  ./executable and mpirun -n 1 ./executable. 

Although if I run in the same 16 core machine:

   - 16 instances of  ./executable 
   - 16 instances of mpirun -n 1 ./executable

Then the results are different. I think that the reason is that mpirun 
(OpenMPI) will bound all the instances by default to the the same cores, ex 
all the MPI jobs will be bound to the first core. That means that all the 
instances of mpirun will run in the same core(s), while other cores of the 
machine will be idle. OpenMPI does not know which cores you want to use, 
you have to tell OpenMPI. I think that the workload distribution is the job 
of Slurm/PBS. In order to tune the processor affinity these options have to 
be used:
https://www.open-mpi.org/faq/?category=tuning#paffinity-defs
https://www.open-mpi.org/faq/?category=tuning#using-paffinity-v1.3

It turns out that slurm and problaby pbs manage MPI affinity for you. If 
you use srun (slurm command) instead of mpiexec the workload is distributed 
properly.

You will only encounter this issue if you want to run several MPI jobs in 
the same machine at the same time. Probably most of the people don't do 
this. If you run a single instance of mpiexec you will not encounter these 
issues.

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to