系统信息 - 如何使用python查找CPU数量
我想知道使用Python的本地机器上的CPU数量。 当使用最佳扩展的仅用户空间程序调用时,结果应为user/real,作为time(1)的输出。
11个解决方案
650 votes
如果你有一个版本> = 2.6的python你可以简单地使用
import multiprocessing
multiprocessing.cpu_count()
[http://docs.python.org/library/multiprocessing.html#multiprocessing.cpu_count]
Nadia Alramli answered 2019-01-07T03:59:04Z
151 votes
如果您对当前进程可用的处理器数量感兴趣,则必须先检查cpuset。 否则(或者如果cpuset未被使用),multiprocessing.cpu_count()是Python 2.6及更高版本的方法。 以下方法回溯到旧版Python中的几种替代方法:
import os
import re
import subprocess
def available_cpu_count():
""" Number of available virtual or physical CPUs on this system, i.e.
user/real as output by time(1) when called with an optimally scaling
userspace-only program"""
# cpuset
# cpuset may restrict the number of *available* processors
try:
m = re.search(r'(?m)^Cpus_allowed:\s*(.*)$',
open('/proc/self/status').read())
if m:
res = bin(int(m.group(1).replace(',', ''), 16)).count('1')
if res > 0:
return res
except IOError:
pass
# Python 2.6+
try:
import multiprocessing
return multiprocessing.cpu_count()
except (Imp