ProcessorCount
Этот модуль предоставляет команду для определения количества процессоров/ядер.
Загрузите этот модуль в CMake с помощью:
include(ProcessorCount)
Команды
Этот модуль предоставляет следующую команду:
-
ProcessorCount -
Определяет количество логических ядер ЦП, доступных на компьютере:
ProcessorCount(<variable>)
Эта команда задает переменную с именем
<variable>, равную количеству логических ядер ЦП, доступных на компьютере, если это значение можно определить. В случае успеха переменная гарантированно будет содержать положительное целое число (>=1). Если определить количество процессоров невозможно, переменной присваивается значение 0.В настоящее время эта функциональность реализована для AIX, Cygwin, FreeBSD, Haiku, HPUX, Linux, macOS, QNX, Sun и Windows.
Эта команда приблизительно определяет количество вычислительных ядер, доступных на текущем компьютере, и поэтому полезна для параллельной сборки и тестирования. Она предназначена для использования максимально возможных ресурсов компьютера, но перед задействованием всей его мощности для параллельных задач пользователям следует учитывать другие выполняющиеся на компьютере нагрузки.
Изменено в версии 3.15: В Linux возвращается количество процессоров контейнера, а не хоста.
Примечание
Этот модуль использует системно-зависимые команды для определения количества процессоров, которые в некоторых средах могут предоставлять неточные сведения. Более точное общее значение количества логических процессоров также можно получить с помощью cmake_host_system_information():
cmake_host_system_information(RESULT n QUERY NUMBER_OF_LOGICAL_CORES)
Примеры
В следующем примере этот модуль используется в скрипте панели мониторинга ctest -S для определения количества ядер, используемых для параллельного этапа сборки CTest:
include(ProcessorCount)
ProcessorCount(n)
if(NOT n EQUAL 0)
set(CTEST_BUILD_FLAGS -j${n})
set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${n})
endif()
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/module/ProcessorCount.html