Как я получаю количество процессоров на C / Linux?

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

Единственным путем я могу думать, должен проанализировать/proc/cpuinfo. Какие-либо другие полезные предложения?

15
задан Andrei Ciobanu 27 August 2013 в 11:18
поделиться

2 ответа

Ниже приведен код, который я использовал для вычисления количества ядер ... он может вам помочь

//Finding the number of cores(logical processor) using cpuid instruction.....
    __asm
    {
        mov eax,01h //01h is for getting number of cores present in the processor
        cpuid
        mov t,ebx
    }

(t >> 16) & 0xff содержит количество ядер ........

Думаю, это может вам помочь http://lists.gnu.org/archive/html/autoconf/2002-08/msg00126.html

4
ответ дан 1 December 2019 в 03:04
поделиться
machine:/sys/devices/system/cpu$ ls
cpu0  cpu3  cpu6     kernel_max  perf_counters  sched_mc_power_savings
cpu1  cpu4  cpu7     offline     possible
cpu2  cpu5  cpuidle  online      present

Если у вас есть машина с sysfs, возьмите загляните в / sys / devices / system / cpu.

Убедитесь, что вы запрашиваете то, что вам нужно - процессоры, ядра, гиперпотоки и т. Д.

4
ответ дан 1 December 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: