Spec-Zone.ru › CMake

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API