c #ВСЕ ЕЩЕ возвращают неправильное количество ядер

Итак, я разместил в In C #GetEnvironmentVariable («ЧИСЛО _ИЗ _ПРОЦЕССОРОВ» )возвращает неправильное число с вопросом о том, как получить правильное количество ядер в С #. Некоторые полезные люди направили меня на пару вопросов, где были заданы похожие вопросы, но я уже пробовал эти решения. Затем мой вопрос был закрыт как такой же, как и другой вопрос, и это правда, но решение, данное там, не сработало. Поэтому я открываю еще один, надеясь, что кто-то сможет помочь понять, что другие решения НЕ работают.

Этот вопрос был Как найти количество ядер ЦП через.NET/C #? , который использовал WMI, чтобы попытаться получить правильное количество ядер. Ну вот вывод из приведенного там кода:

Number Of Cores: 32
Number Of Logical Processors: 32
Number Of Physical Processors: 4

Что касается моего последнего вопроса, машина представляет собой 64-ядерный процессор AMD Opteron 6276 (4x16 ядер )под управлением Windows Server 2008 R2 HPC edition.

Независимо от того, что я делаю, Windows всегда возвращает 32 ядра, хотя доступно 64. Я подтвердил, что машина использует только 32, и если я жестко запрограммирую 64 ядра, машина использует их все. Мне интересно, может ли быть проблема с тем, как обнаруживаются процессоры AMD.

К вашему сведению, на случай, если вы не читали последний вопрос, если я наберу в командной строке echo %NUMBER _OF _PROCESSORS", будет возвращено 64. Этого просто не будет в среде программирования.

Спасибо, Джастин

ОБНОВЛЕНИЕ :Вывод ПРОЦЕССОР _АРХИТЕКТУРА возвращает AMD64 из командной строки, но x86 из программы. Программа 32 -битная, работающая на 64 -битном оборудовании.Меня попросили скомпилировать его в 64 -бит, но он по-прежнему показывает 32 ядра.

5
задан Community 23 May 2017 в 12:20
поделиться