Hi Brice,
I have one question regarding thread id:
=======================================
./hwloc-calc --physical --list core proc:60
11
is matching with
core id : 11 from /proc/cpuinfo
./hwloc-calc --physical --list socket proc:60
0
is matching with
physical id : 0 from /proc/cpuinfo
and obviously --physical proc:60 corresponds to
processor : 60 from /proc/cpuinfo
On Itanium there is also
thread id : 0
line in /proc/cpuinfo
===================================================
In our current code (based solely on /proc/cpuinfo, we are moving it to use
hwloc instead) we are using "thread id". Currently, on boxes with hyper
threading enabled I parse lstopo output and map "physical thread id" following
way:
NUMANode #2 (phys=3 2048MB) + Socket #3 + L3 #3 (24MB)
L2 #24 (256KB) + L1 #24 (32KB) + Core #24
PU #48 (phys=3) => thread id 0
PU #49 (phys=35) => thread id 1
L2 #25 (256KB) + L1 #25 (32KB) + Core #25
PU #50 (phys=7) => thread id 0
PU #51 (phys=39) => thread id 1
(You can think of it as doing logical_CPU modulo <number of HW threads on
given Core>)
I know that such mapping is artificial. However, it enables me to see that
hyper threading is enabled. I use it in my reports only.
I wonder if some similar concept exists in hwloc. To be honest, I don't know
what the future of "thread id" in /proc/cpuinfo file is. It seems to be only in
/proc/cpuinfo for ia64.
Thanks for your opinion!
Jirka
PS: I have included /proc/cpuinfo from IA64 box.
processor : 0
vendor : GenuineIntel
arch : IA-64
family : Itanium 2
model : 1
revision : 1
archrev : 0
features : branchlong, 16-byte atomic ops
cpu number : 0
cpu regs : 4
cpu MHz : 1415.000276
itc MHz : 399.167638
BogoMIPS : 2834.43
siblings : 2
physical id: 0
core id : 0
thread id : 0
processor : 1
vendor : GenuineIntel
arch : IA-64
family : Itanium 2
model : 1
revision : 1
archrev : 0
features : branchlong, 16-byte atomic ops
cpu number : 0
cpu regs : 4
cpu MHz : 1415.000276
itc MHz : 399.167638
BogoMIPS : 2826.24
siblings : 2
physical id: 0
core id : 1
thread id : 0