Hallo,

We seem to be unable to to set the cpu binding on a cluster consisting of
Dell M420/M610 systems:

[jallan@hpc21 ~]$ cat report-bindings.sh #!/bin/sh

bitmap=`hwloc-bind --get -p`
friendly=`hwloc-calc -p -H socket.core.pu $bitmap`

echo "MCW rank $OMPI_COMM_WORLD_RANK (`hostname`): $friendly"
exit 0


[jallan@hpc27 ~]$ hwloc-bind -v  socket:0.core:0 -l ./report-bindings.sh
using object #0 depth 2 below cpuset 0x000000ff
using object #0 depth 6 below cpuset 0x00000080
adding 0x00000080 to 0x0
adding 0x00000080 to 0x0
assuming the command starts at ./report-bindings.sh
binding on cpu set 0x00000080
MCW rank  (hpc27): Socket:0.Core:10.PU:7
[jallan@hpc27 ~]$ hwloc-bind -v  socket:1.core:0 -l ./report-bindings.sh
object #1 depth 2 (type socket) below cpuset 0x000000ff does not exist
adding 0x0 to 0x0
assuming the command starts at ./report-bindings.sh
MCW rank  (hpc27): Socket:0.Core:10.PU:7


The topology of this system looks a bit strange:

[jallan@hpc21 ~]$ lstopo --no-io
Machine (24GB)
 NUMANode L#0 (P#0 24GB)
 NUMANode L#1 (P#1) + Socket L#0 + L3 L#0 (15MB) + L2 L#0 (256KB) + L1
L#0 (32KB) + Core L#0 + PU L#0 (P#11)
[jallan@hpc21 ~]$


Using Open MPI 1.4.4:

http://pastebin.com/VsZS2q3R

For some reason the binding cannot be set. We also tried Open MPI 1.6.5 and
1.7.3 with similar results.

This is the output from a local SMP system:

[panos@demo ~]$ hwloc-bind -v  socket:1.core:0 -l ./report-bindings.sh
using object #1 depth 2 below cpuset 0x00000003 using object #0 depth 6
below cpuset 0x00000002 adding 0x00000002 to 0x0 adding 0x00000002 to 0x0
assuming the command starts at ./report-bindings.sh binding on cpu set
0x00000002 MCW rank  (demo): Socket:1.Core:0.PU:1 [panos@demo ~]$
hwloc-bind -v  socket:0.core:0 -l ./report-bindings.sh using object #0
depth 2 below cpuset 0x00000003 using object #0 depth 6 below cpuset
0x00000001 adding 0x00000001 to 0x0 adding 0x00000001 to 0x0 assuming the
command starts at ./report-bindings.sh binding on cpu set 0x00000001 MCW
rank  (demo): Socket:0.Core:0.PU:0


The MPI binding output is formatted a bit different as this nodes runs Open
MPI 1.6.5:

[panos@demo ~]$ `which  mpiexec` --report-bindings --bind-to-core
--bycore -mca btl ^openib -np 4   -hostfile ./hplnodes2 -x
LD_LIBRARY_PATH -x PATH    /cm/shared/apps/hpl/2.1/xhpl
[demo:25615] MCW rank 0 bound to socket 0[core 0]: [B][.] [demo:25615] MCW
rank 2 bound to socket 1[core 0]: [.][B] [node003:08454] MCW rank 1 bound
to socket 0[core 0]: [B .] [node003:08454] MCW rank 3 bound to socket
0[core 1]: [. B] [panos@demo ~]$ module load hwloc



[panos@demo ~]$ lstopo -l
Machine (4095MB)
 NUMANode L#0 (P#0 2048MB) + Socket L#0 + L2 L#0 (1024KB) + L1d L#0
(64KB) + L1i L#0 (64KB) + Core L#0 + PU L#0 (P#0)
 NUMANode L#1 (P#1 2048MB) + Socket L#1 + L2 L#1 (1024KB) + L1d L#1
(64KB) + L1i L#1 (64KB) + Core L#1 + PU L#1 (P#1)

Any help will be appreciated.

Kind Regards,
  Panos Labropoulos

Reply via email to