I tried to assign 4 tasks to 4 processors. Output of hwloc-ls --of console
is:
L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0
PU L#0 (P#0)
PU L#1 (P#2)
L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1
PU L#2 (P#1)
PU L#3 (P#3)
from which I deduce that there are 2 cores and totally 4 processors. Graphically,
I made a rankfile according to Hristo:
Rankfile:
rank 0=localhost slot=p0
rank 1=localhost slot=p2
rank 2=localhost slot=p1
rank 3=localhost slot=p3
and also added -use-hwthread-cpus
option according to Gilles resulting in the following command:
mpirun -use-hwthread-cpus -n 4 -H localhost -rf rankfile ./a.out
However, I got error message:
There are not enough slots available in the system to satisfy the 2 slots that were requested by the application.
I kept trying different rankfiles as Hamy hoping that the problem is related to way of referencing processors but still I got the error message for each combination. My OpenMPI version is 3.0.1.