0

i'm using windows server 2012 on a machine with 2 processors-12 cores each, total of 24 cores. when i look in the task manager i see 24 cores. also when i run the command cpu get numberofcores,numberoflogicalprocessors /format:list on the WMIC i get:

NumberOfCores=12 NumberOfLogicalProcessors=12

NumberOfCores=12 NumberOfLogicalProcessors=12

however, in the environment variables i get: NUMBER_OF_PROCESSORS = 12 and when i run in the CMD: echo %NUMBER_OF_PROCESSORS% i get 12 also..

which means i get to use only half of the available processors.

ideas how to solve it?

IdoS
  • 63
  • 9
  • are you running 32 or 64 bit? – jgr208 Mar 09 '15 at 13:21
  • I'm running a 64-bit machine – IdoS Mar 09 '15 at 13:21
  • ok. hmmm one think i can think of is maybe it is only listing the number of cores on one cpu and not both, since they each have 12 and you are getting 12. – jgr208 Mar 09 '15 at 13:22
  • that might be the issue.. but how can i solve it? when i try to read the number of processors via java Runtime i get the wrong number.. i read somewhere that on win server 2008 there was an issue with AMD64 architecture (same architecture that my machine uses) that was solves by a hotfix - yet i couldn't find any reference to it on windows 2012 – IdoS Mar 09 '15 at 13:25

1 Answers1

1

We had exactly the same problem till now, but when I changed BIOS parameter "Node Interleaving" from Disabled to Enabled - WOW! 7z/winrar now see all and USE all cores (logical processors) and ENV variable "number of processors" is 24 now! But it is work-around. Other way - if you use HP DL3*0 G9 platform - there is another solution - you must change setting: "NUMA Group Size Optimization" from [Clustered - default] to [Flat]. I've got this solution from another thread at SO. That's helped me too and I think it right solution.

Community
  • 1
  • 1
exo
  • 11
  • 2
  • wow, that was long ago... i solved it back then by writing a dll file that checks the number of logical cores, and importing it using JNI – IdoS Feb 28 '17 at 14:46