Re: [hwloc-users] How are processor groups under Windows reported?

2017-11-29 Thread Brice Goglin


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?

2017-11-29 Thread David Creasy

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?

2017-11-29 Thread Brice Goglin
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?

2017-11-29 Thread David Creasy

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