Определить количество ядер на окнах

Если я запускаю R на linux или на mac, я могу определить количество доступных ядер с помощью multicore:::detectCores(). Тем не менее, нет оконной версии многоядерных функций, поэтому я не могу использовать эту технику в окнах.

Как я могу программно определить количество ядер на машине Windows, из R?

Ответ 1

Параллельный пакет теперь имеет функцию для определения количества ядер: parallel:::detectCores().

Ответ 2

В этом thread есть ряд предложений, в том числе:

Sys.getenv('NUMBER_OF_PROCESSORS')

Обратите внимание на публикацию в этой статье профессора Рипли, в которой говорится о трудностях с этим.

Ответ 3

Если вам действительно нужно различать фактические ядра, чипы и логические процессоры, API для вызова GetLogicalProcessInformation

GetSystemInfo, если просто хотите узнать, сколько логических процессоров на машине (без дифференциации для гиперпотока.).

Как вы называете это от "R", это вне меня. Но я бы предположил, что у R есть средство для вызова кода из собственных DLL файлов Windows.

Ответ 4

GetSystemInfo предоставит вам структуру с числом "процессоров", которая соответствует общему количеству ядер.

В теории это будет то же значение, что и переменная среды, рекомендуемая в другом ответе, но пользователь может изменять (или удалять) переменную окружения. Это может быть ошибка или функция в зависимости от ваших намерений.