Re: [hwloc-users] How are processor groups under Windows reported?
Le 29/11/2017 15:21, David Creasy a écrit : > Hello Brice, > > That makes perfect sense, and yes I do see group objects on larger > systems. I was hoping to use the number of groups to see if it was > safe to call hwloc_set_proc_cpubind(), but I obviously can't. I can of > course simply call the Windows GetActiveProcessorGroupCount() function > instead. > > As I'm sure you know, the windows implementation of > hwloc_set_proc_cpubind has: > > hwloc_win_set_proc_cpubind(hwloc_topology_t topology...) > { > assert(nr_processor_groups == 1); This internal function should not be called at all when nr_processor_groups>1. Calling the API hwloc_set_proc_cpubind() should return an error and never cause that assertion failure. > Guess it might help to clarify when groups are assigned in the > documentation. I'll look at it, thanks. Brice > > Thank you, > > David > > On 29/11/2017 13:35, Brice Goglin wrote: >> Hello >> >> We only add hwloc Group objects when necessary. On your system, each >> processor group contains a single NUMA node, so these Groups would not >> really bring additional information about the hierarchy of resources. >> If you had a bigger system with, let's say, 4 NUMA nodes, with 2 of them >> in each processor groups, hwloc would report those as hwloc Group >> objects. >> >> Does this help? I can clarify the FAQ if needed. >> >> Brice >> >> >> >> Le 29/11/2017 14:25, David Creasy a écrit : >>> Hello, >>> >>> Thank you to all contributors to hwloc - very useful. >>> >>> In the FAQ, under the section "What are these Group objects in my >>> topology?" it says that they are used for "Windows processor groups". >>> However, I'm either not seeing this, or I'm looking in the wrong >>> place. On a system with two processor groups, I get: >>> >>> C:\temp\hwloc-win64-build-1.11.8\bin>hwloc-info.exe >>> depth 0:1 Machine (type #1) >>> depth 1: 2 NUMANode (type #2) >>>depth 2: 2 Package (type #3) >>> depth 3: 2 L3Cache (type #4) >>> depth 4:12 L2Cache (type #4) >>> depth 5: 12 L1dCache (type #4) >>>depth 6: 12 L1iCache (type #4) >>> depth 7: 12 Core (type #5) >>> depth 8:24 PU (type #6) >>> >>> C:\temp\hwloc-win64-build-1.11.8\bin>hwloc-ls.exe >>> Machine (1506MB total) >>>NUMANode L#0 (P#0 346MB) + Package L#0 + L3 L#0 (12MB) >>> L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 >>>PU L#0 (P#0) >>>PU L#1 (P#1) >>> L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 >>>PU L#2 (P#2) >>>PU L#3 (P#3) >>> L2 L#2 (256KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 >>>PU L#4 (P#4) >>>PU L#5 (P#5) >>> L2 L#3 (256KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 >>>PU L#6 (P#6) >>>PU L#7 (P#7) >>> L2 L#4 (256KB) + L1d L#4 (32KB) + L1i L#4 (32KB) + Core L#4 >>>PU L#8 (P#8) >>>PU L#9 (P#9) >>> L2 L#5 (256KB) + L1d L#5 (32KB) + L1i L#5 (32KB) + Core L#5 >>>PU L#10 (P#10) >>>PU L#11 (P#11) >>>NUMANode L#1 (P#1 1160MB) + Package L#1 + L3 L#1 (12MB) >>> L2 L#6 (256KB) + L1d L#6 (32KB) + L1i L#6 (32KB) + Core L#6 >>>PU L#12 (P#64) >>>PU L#13 (P#65) >>> L2 L#7 (256KB) + L1d L#7 (32KB) + L1i L#7 (32KB) + Core L#7 >>>PU L#14 (P#66) >>>PU L#15 (P#67) >>> L2 L#8 (256KB) + L1d L#8 (32KB) + L1i L#8 (32KB) + Core L#8 >>>PU L#16 (P#68) >>>PU L#17 (P#69) >>> L2 L#9 (256KB) + L1d L#9 (32KB) + L1i L#9 (32KB) + Core L#9 >>>PU L#18 (P#70) >>>PU L#19 (P#71) >>> L2 L#10 (256KB) + L1d L#10 (32KB) + L1i L#10 (32KB) + Core L#10 >>>PU L#20 (P#72) >>>PU L#21 (P#73) >>> L2 L#11 (256KB) + L1d L#11 (32KB) + L1i L#11 (32KB) + Core L#11 >>>PU L#22 (P#74) >>>PU L#23 (P#75) >>> >>> I definitely have 2 processor groups: >>> C:\Windows\system32>bcdedit /enum | find "group" >>> groupsize 6 >>> maxgroupYes >>> >>> And you can see this because the processor numbers above in the second >>> numa node start at 64. Also, calling GetActiveProcessorGroupCount() >>> returns 2. >>> >>> I was expecting to get "2" back from: >>> hwloc_get_nbobjs_by_type(hwlocTopology_, HWLOC_OBJ_GROUP) >>> >>> but that returns 0. Am I doing something wrong? >>> >>> Thank you! >>> >>> David >>> >> >> ___ >> hwloc-users mailing list >> hwloc-users@lists.open-mpi.org >> https://lists.open-mpi.org/mailman/listinfo/hwloc-users >> > ___ hwloc-users mailing list hwloc-users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/hwloc-users
Re: [hwloc-users] How are processor groups under Windows reported?
Hello Brice, That makes perfect sense, and yes I do see group objects on larger systems. I was hoping to use the number of groups to see if it was safe to call hwloc_set_proc_cpubind(), but I obviously can't. I can of course simply call the Windows GetActiveProcessorGroupCount() function instead. As I'm sure you know, the windows implementation of hwloc_set_proc_cpubind has: hwloc_win_set_proc_cpubind(hwloc_topology_t topology...) { assert(nr_processor_groups == 1); Guess it might help to clarify when groups are assigned in the documentation. Thank you, David On 29/11/2017 13:35, Brice Goglin wrote: Hello We only add hwloc Group objects when necessary. On your system, each processor group contains a single NUMA node, so these Groups would not really bring additional information about the hierarchy of resources. If you had a bigger system with, let's say, 4 NUMA nodes, with 2 of them in each processor groups, hwloc would report those as hwloc Group objects. Does this help? I can clarify the FAQ if needed. Brice Le 29/11/2017 14:25, David Creasy a écrit : Hello, Thank you to all contributors to hwloc - very useful. In the FAQ, under the section "What are these Group objects in my topology?" it says that they are used for "Windows processor groups". However, I'm either not seeing this, or I'm looking in the wrong place. On a system with two processor groups, I get: C:\temp\hwloc-win64-build-1.11.8\bin>hwloc-info.exe depth 0:1 Machine (type #1) depth 1: 2 NUMANode (type #2) depth 2: 2 Package (type #3) depth 3: 2 L3Cache (type #4) depth 4:12 L2Cache (type #4) depth 5: 12 L1dCache (type #4) depth 6: 12 L1iCache (type #4) depth 7: 12 Core (type #5) depth 8:24 PU (type #6) C:\temp\hwloc-win64-build-1.11.8\bin>hwloc-ls.exe Machine (1506MB total) NUMANode L#0 (P#0 346MB) + Package L#0 + L3 L#0 (12MB) L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 PU L#0 (P#0) PU L#1 (P#1) L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 PU L#2 (P#2) PU L#3 (P#3) L2 L#2 (256KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 PU L#4 (P#4) PU L#5 (P#5) L2 L#3 (256KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 PU L#6 (P#6) PU L#7 (P#7) L2 L#4 (256KB) + L1d L#4 (32KB) + L1i L#4 (32KB) + Core L#4 PU L#8 (P#8) PU L#9 (P#9) L2 L#5 (256KB) + L1d L#5 (32KB) + L1i L#5 (32KB) + Core L#5 PU L#10 (P#10) PU L#11 (P#11) NUMANode L#1 (P#1 1160MB) + Package L#1 + L3 L#1 (12MB) L2 L#6 (256KB) + L1d L#6 (32KB) + L1i L#6 (32KB) + Core L#6 PU L#12 (P#64) PU L#13 (P#65) L2 L#7 (256KB) + L1d L#7 (32KB) + L1i L#7 (32KB) + Core L#7 PU L#14 (P#66) PU L#15 (P#67) L2 L#8 (256KB) + L1d L#8 (32KB) + L1i L#8 (32KB) + Core L#8 PU L#16 (P#68) PU L#17 (P#69) L2 L#9 (256KB) + L1d L#9 (32KB) + L1i L#9 (32KB) + Core L#9 PU L#18 (P#70) PU L#19 (P#71) L2 L#10 (256KB) + L1d L#10 (32KB) + L1i L#10 (32KB) + Core L#10 PU L#20 (P#72) PU L#21 (P#73) L2 L#11 (256KB) + L1d L#11 (32KB) + L1i L#11 (32KB) + Core L#11 PU L#22 (P#74) PU L#23 (P#75) I definitely have 2 processor groups: C:\Windows\system32>bcdedit /enum | find "group" groupsize 6 maxgroupYes And you can see this because the processor numbers above in the second numa node start at 64. Also, calling GetActiveProcessorGroupCount() returns 2. I was expecting to get "2" back from: hwloc_get_nbobjs_by_type(hwlocTopology_, HWLOC_OBJ_GROUP) but that returns 0. Am I doing something wrong? Thank you! David ___ hwloc-users mailing list hwloc-users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/hwloc-users -- David Creasy Matrix Science 64 Baker Street London W1U 7GB, UK Tel: +44 (0)20 7486 1050 Fax: +44 (0)20 7224 1344 dcre...@matrixscience.com http://www.matrixscience.com Matrix Science Ltd. is registered in England and Wales Company number 3533898 ___ hwloc-users mailing list hwloc-users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/hwloc-users
Re: [hwloc-users] How are processor groups under Windows reported?
Hello We only add hwloc Group objects when necessary. On your system, each processor group contains a single NUMA node, so these Groups would not really bring additional information about the hierarchy of resources. If you had a bigger system with, let's say, 4 NUMA nodes, with 2 of them in each processor groups, hwloc would report those as hwloc Group objects. Does this help? I can clarify the FAQ if needed. Brice Le 29/11/2017 14:25, David Creasy a écrit : > Hello, > > Thank you to all contributors to hwloc - very useful. > > In the FAQ, under the section "What are these Group objects in my > topology?" it says that they are used for "Windows processor groups". > However, I'm either not seeing this, or I'm looking in the wrong > place. On a system with two processor groups, I get: > > C:\temp\hwloc-win64-build-1.11.8\bin>hwloc-info.exe > depth 0:1 Machine (type #1) > depth 1: 2 NUMANode (type #2) > depth 2: 2 Package (type #3) >depth 3: 2 L3Cache (type #4) > depth 4:12 L2Cache (type #4) > depth 5: 12 L1dCache (type #4) > depth 6: 12 L1iCache (type #4) >depth 7: 12 Core (type #5) > depth 8:24 PU (type #6) > > C:\temp\hwloc-win64-build-1.11.8\bin>hwloc-ls.exe > Machine (1506MB total) > NUMANode L#0 (P#0 346MB) + Package L#0 + L3 L#0 (12MB) > L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 > PU L#0 (P#0) > PU L#1 (P#1) > L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 > PU L#2 (P#2) > PU L#3 (P#3) > L2 L#2 (256KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 > PU L#4 (P#4) > PU L#5 (P#5) > L2 L#3 (256KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 > PU L#6 (P#6) > PU L#7 (P#7) > L2 L#4 (256KB) + L1d L#4 (32KB) + L1i L#4 (32KB) + Core L#4 > PU L#8 (P#8) > PU L#9 (P#9) > L2 L#5 (256KB) + L1d L#5 (32KB) + L1i L#5 (32KB) + Core L#5 > PU L#10 (P#10) > PU L#11 (P#11) > NUMANode L#1 (P#1 1160MB) + Package L#1 + L3 L#1 (12MB) > L2 L#6 (256KB) + L1d L#6 (32KB) + L1i L#6 (32KB) + Core L#6 > PU L#12 (P#64) > PU L#13 (P#65) > L2 L#7 (256KB) + L1d L#7 (32KB) + L1i L#7 (32KB) + Core L#7 > PU L#14 (P#66) > PU L#15 (P#67) > L2 L#8 (256KB) + L1d L#8 (32KB) + L1i L#8 (32KB) + Core L#8 > PU L#16 (P#68) > PU L#17 (P#69) > L2 L#9 (256KB) + L1d L#9 (32KB) + L1i L#9 (32KB) + Core L#9 > PU L#18 (P#70) > PU L#19 (P#71) > L2 L#10 (256KB) + L1d L#10 (32KB) + L1i L#10 (32KB) + Core L#10 > PU L#20 (P#72) > PU L#21 (P#73) > L2 L#11 (256KB) + L1d L#11 (32KB) + L1i L#11 (32KB) + Core L#11 > PU L#22 (P#74) > PU L#23 (P#75) > > I definitely have 2 processor groups: > C:\Windows\system32>bcdedit /enum | find "group" > groupsize 6 > maxgroupYes > > And you can see this because the processor numbers above in the second > numa node start at 64. Also, calling GetActiveProcessorGroupCount() > returns 2. > > I was expecting to get "2" back from: > hwloc_get_nbobjs_by_type(hwlocTopology_, HWLOC_OBJ_GROUP) > > but that returns 0. Am I doing something wrong? > > Thank you! > > David > ___ hwloc-users mailing list hwloc-users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/hwloc-users
[hwloc-users] How are processor groups under Windows reported?
Hello, Thank you to all contributors to hwloc - very useful. In the FAQ, under the section "What are these Group objects in my topology?" it says that they are used for "Windows processor groups". However, I'm either not seeing this, or I'm looking in the wrong place. On a system with two processor groups, I get: C:\temp\hwloc-win64-build-1.11.8\bin>hwloc-info.exe depth 0: 1 Machine (type #1) depth 1: 2 NUMANode (type #2) depth 2: 2 Package (type #3) depth 3: 2 L3Cache (type #4) depth 4: 12 L2Cache (type #4) depth 5: 12 L1dCache (type #4) depth 6: 12 L1iCache (type #4) depth 7: 12 Core (type #5) depth 8: 24 PU (type #6) C:\temp\hwloc-win64-build-1.11.8\bin>hwloc-ls.exe Machine (1506MB total) NUMANode L#0 (P#0 346MB) + Package L#0 + L3 L#0 (12MB) L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 PU L#0 (P#0) PU L#1 (P#1) L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 PU L#2 (P#2) PU L#3 (P#3) L2 L#2 (256KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 PU L#4 (P#4) PU L#5 (P#5) L2 L#3 (256KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 PU L#6 (P#6) PU L#7 (P#7) L2 L#4 (256KB) + L1d L#4 (32KB) + L1i L#4 (32KB) + Core L#4 PU L#8 (P#8) PU L#9 (P#9) L2 L#5 (256KB) + L1d L#5 (32KB) + L1i L#5 (32KB) + Core L#5 PU L#10 (P#10) PU L#11 (P#11) NUMANode L#1 (P#1 1160MB) + Package L#1 + L3 L#1 (12MB) L2 L#6 (256KB) + L1d L#6 (32KB) + L1i L#6 (32KB) + Core L#6 PU L#12 (P#64) PU L#13 (P#65) L2 L#7 (256KB) + L1d L#7 (32KB) + L1i L#7 (32KB) + Core L#7 PU L#14 (P#66) PU L#15 (P#67) L2 L#8 (256KB) + L1d L#8 (32KB) + L1i L#8 (32KB) + Core L#8 PU L#16 (P#68) PU L#17 (P#69) L2 L#9 (256KB) + L1d L#9 (32KB) + L1i L#9 (32KB) + Core L#9 PU L#18 (P#70) PU L#19 (P#71) L2 L#10 (256KB) + L1d L#10 (32KB) + L1i L#10 (32KB) + Core L#10 PU L#20 (P#72) PU L#21 (P#73) L2 L#11 (256KB) + L1d L#11 (32KB) + L1i L#11 (32KB) + Core L#11 PU L#22 (P#74) PU L#23 (P#75) I definitely have 2 processor groups: C:\Windows\system32>bcdedit /enum | find "group" groupsize 6 maxgroup Yes And you can see this because the processor numbers above in the second numa node start at 64. Also, calling GetActiveProcessorGroupCount() returns 2. I was expecting to get "2" back from: hwloc_get_nbobjs_by_type(hwlocTopology_, HWLOC_OBJ_GROUP) but that returns 0. Am I doing something wrong? Thank you! David -- David Creasy ___ hwloc-users mailing list hwloc-users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/hwloc-users