我想用Python知道本地机器上cpu的数量。当使用一个优化伸缩的仅用户空间的程序调用时,结果应该是user/real作为时间(1)的输出。
当前回答
如果你有版本为>= 2.6的python,你可以简单地使用
import multiprocessing
multiprocessing.cpu_count()
http://docs.python.org/library/multiprocessing.html#multiprocessing.cpu_count
其他回答
如果你没有Python 2.6,另一个选择:
import commands
n = commands.getoutput("grep -c processor /proc/cpuinfo")
你也可以使用“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()
对于python 3.4以上版本,可以使用
import os
os.cpu_count()
如果你正在寻找linux命令nproc的等价物。你有这个选项
len(os.sched_getaffinity(0))
另一种选择是使用psutil库,它在这些情况下总是很有用:
>>> import psutil
>>> psutil.cpu_count()
2
这应该可以在psutil支持的任何平台上工作(Unix和Windows)。
注意在某些情况下多处理。cpu_count可能引发NotImplementedError,而psutil将能够获得cpu的数量。这只是因为psutil首先尝试使用多处理所使用的相同技术,如果这些技术失败,它还会使用其他技术。
如果你使用手电筒,你可以做:
import torch.multiprocessing as mp
mp.cpu_count()
torch中的mp库具有与python主库相同的接口,所以你也可以这样做,正如评论者所提到的:
python -c "import multiprocessing; print(multiprocessing.cpu_count())"
希望这能有所帮助!;)有多个选择总是好的。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录