Как узнать количество физических процессоров в Linux, используя C? - PullRequest
4 голосов
/ 25 февраля 2011

Я знаю, что sysconf(_SC_NPROCESSORS_ONLN) даст мне количество логических процессоров.Но как узнать количество физических процессоров?

Ответы [ 4 ]

3 голосов
/ 25 февраля 2011

@ Havoc P: автономные процессоры не отображаются в / proc / cpuinfo.

Топология процессора описывается в / sys / devices / system / cpu / cpu * / topology / *

1 голос
/ 25 февраля 2011

Я думаю, что лучший способ получить эту информацию - использовать hwloc: http://www.open -mpi.org / projects / hwloc / .

Они предоставляют набор пользовательских инструментов, которыеПозвольте вам получить топологию процессора системы, но они также предоставляют библиотеку, которую вы можете использовать из C: http://www.open -mpi.org / projects / hwloc / doc / v1.1.1 / # interface

1 голос
/ 25 февраля 2011

Вы можете проанализировать / proc / cpuinfo и посчитать количество отдельных строк "физического идентификатора:".Вроде раздражает, но я не знаю, есть ли лучший вариант.Если вы используете GLib или другую библиотеку с поддержкой регулярных выражений, это будет проще.Или вы можете использовать popen () в командной строке, если вы чувствуете себя действительно хакером.пример командной строки по адресу: http://www.brandonhutchinson.com/Understanding_proc_cpuinfo.html

0 голосов
/ 25 февраля 2011

Возможно этот ответ на аналогичный вопрос помогает.Есть комментарий о неправильности кода, но это может быть хорошей отправной точкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...