See screenshot
Subject changed from 129 dev 6 SQX only sees cores on one socket on dual socket server cpu to 129 dev 6 SQX only sees cores on one socket of dual socket server cpu
FYI:
When the system starts, the operating system creates processor groups and assigns logical processors to the groups. If the system is capable of hot-adding processors, the operating system allows space in groups for processors that might arrive while the system is running. The operating system minimizes the number of groups in a system. For example, a system with 128 logical processors would have two processor groups with 64 processors in each group, not four groups with 32 logical processors in each group.
==> As you described you see half of processors.
https://docs.microsoft.com/en-us/windows/win32/procthread/processor-groups
Just curious.. Is that a VM ? Do you have CPU hot-add ? Possible to disable it? It should create two unequal processor groups.
Workaround is to install two separate instances of SQX and then I can set affinity in the task manager for the other socket. It seems like all is well going this route. However there has been no way for me to yet confirm if the two programs are actually using the different sockets after changing affinity of CPUs for one of them.
This can be closed.
Indeed it's not actual limit. It's by default that apps are running in a single processor group. Extra processor groups has to be enable programmatically. It can be fixed for sure but it's developers that need to take care (I am not from core team). It's absolutely possible but not a quick fix.
You can check here: https://bitsum.com/portfolio/groupextend.Never tried but is a good start. I am sure it's doable and it's worth to use all cores.
Enyx
It became interesting discussion, I am interested in both Win and Lnx affinity code so I will check native SQX library.. Stay tuned.
Step 1) The problem is that native runtime call does not properly report total cores (but just withing associated PG). SQX use that number as hard limit which explains why Bitsum hack did not worked out plus other symptoms.
Problem simulated with 4 cores/2 numa nodes divided in 2 processor groups. Same initial manifestation like 64+ cores
16:00:52.193 [main] WARN c.s.g.utils.CoreUsagesEvaluator - Number of cores is higher that available cores. Using 2 core.
16:00:52.193 [main] INFO c.s.g.utils.CoreUsagesEvaluator - Total cores available: 2, using: 2
16:00:52.197 [main] DEBUG c.s.g.c.p.MultithreadComputePerformer - Using: 2 cores.
Step 2) Once this code is fixed (even though not really a bug but works as designed) need to be validated build in affinity code which "should work"
Really so far does not seem like something developers cannot fix.. we will see.
Enyx
Is this a regression in comparison to a previous version ?
My bet. I think you are hitting well known windows processor group limit. Unmodified applications support only a single processor group which may be presented in weird way as you see it. To be clear, It's not SQX problem by a windows design.
As a current workaround either disable threading or find external app to modify app processor group to see all processors. Future LNX versions may not have this limit.