我想用Python知道本地机器上cpu的数量。当使用一个优化伸缩的仅用户空间的程序调用时,结果应该是user/real作为时间(1)的输出。


当前回答

你也可以使用“joblib”来达到这个目的。

import joblib
print joblib.cpu_count()

此方法将为您提供系统中的cpu数量。但是Joblib需要安装。更多关于joblib的信息可以在这里找到https://pythonhosted.org/joblib/parallel.html

或者,您可以使用python的numexpr包。它有很多简单的功能,有助于获取关于系统cpu的信息。

import numexpr as ne
print ne.detect_number_of_cores()

其他回答

如果你使用手电筒,你可以做:

import torch.multiprocessing as mp

mp.cpu_count()

torch中的mp库具有与python主库相同的接口,所以你也可以这样做,正如评论者所提到的:

python -c "import multiprocessing; print(multiprocessing.cpu_count())"

希望这能有所帮助!;)有多个选择总是好的。

multiprocessing.cpu_count()将返回逻辑CPU的数量,因此如果您有一个带有超线程的四核CPU,它将返回8。如果你想要物理cpu的数量,使用hwloc的python绑定:

#!/usr/bin/env python
import hwloc
topology = hwloc.Topology()
topology.load()
print topology.get_nbobjs_by_type(hwloc.OBJ_CORE)

hwloc被设计为跨操作系统和架构可移植。

如果你没有Python 2.6,另一个选择:

import commands
n = commands.getoutput("grep -c processor /proc/cpuinfo")

如果你有版本为>= 2.6的python,你可以简单地使用

import multiprocessing

multiprocessing.cpu_count()

http://docs.python.org/library/multiprocessing.html#multiprocessing.cpu_count

你也可以使用“joblib”来达到这个目的。

import joblib
print joblib.cpu_count()

此方法将为您提供系统中的cpu数量。但是Joblib需要安装。更多关于joblib的信息可以在这里找到https://pythonhosted.org/joblib/parallel.html

或者,您可以使用python的numexpr包。它有很多简单的功能,有助于获取关于系统cpu的信息。

import numexpr as ne
print ne.detect_number_of_cores()