我想用Python知道本地机器上cpu的数量。当使用一个优化伸缩的仅用户空间的程序调用时,结果应该是user/real作为时间(1)的输出。
当前回答
如果你使用手电筒,你可以做:
import torch.multiprocessing as mp
mp.cpu_count()
torch中的mp库具有与python主库相同的接口,所以你也可以这样做,正如评论者所提到的:
python -c "import multiprocessing; print(multiprocessing.cpu_count())"
希望这能有所帮助!;)有多个选择总是好的。
其他回答
对于python 3.4以上版本,可以使用
import os
os.cpu_count()
如果你正在寻找linux命令nproc的等价物。你有这个选项
len(os.sched_getaffinity(0))
如果你使用手电筒,你可以做:
import torch.multiprocessing as mp
mp.cpu_count()
torch中的mp库具有与python主库相同的接口,所以你也可以这样做,正如评论者所提到的:
python -c "import multiprocessing; print(multiprocessing.cpu_count())"
希望这能有所帮助!;)有多个选择总是好的。
如果你想知道物理内核的数量(不是虚拟超线程内核),这里有一个独立于平台的解决方案:
psutil.cpu_count(logical=False)
https://github.com/giampaolo/psutil/blob/master/INSTALL.rst
注意,logical的默认值是True,所以如果你想包含超线程核心,你可以使用:
psutil.cpu_count()
这将给出与os.cpu_count()和multiprocessing.cpu_count()相同的数字,这两个都没有逻辑关键字参数。
另一种选择是使用psutil库,它在这些情况下总是很有用:
>>> import psutil
>>> psutil.cpu_count()
2
这应该可以在psutil支持的任何平台上工作(Unix和Windows)。
注意在某些情况下多处理。cpu_count可能引发NotImplementedError,而psutil将能够获得cpu的数量。这只是因为psutil首先尝试使用多处理所使用的相同技术,如果这些技术失败,它还会使用其他技术。
不知道如何添加到代码或回复消息,但这里有对jython的支持,你可以在放弃之前添加进去:
# jython
try:
from java.lang import Runtime
runtime = Runtime.getRuntime()
res = runtime.availableProcessors()
if res > 0:
return res
except ImportError:
pass
推荐文章
- 如何从macOS完全卸载蟒蛇
- 是否有可能键入提示一个lambda函数?
- 'dict'对象没有has_key属性
- 使用Pandas groupby连接来自几行的字符串
- Pandas:给定列的数据帧行之和
- 如何避免在为Python项目构建Docker映像时重新安装包?
- 如何激活蟒蛇环境
- 省略[…]意思是在一个列表里?
- 为什么我得到“'str'对象没有属性'读取'”当尝试使用' json。载入字符串?
- 不区分大小写的列表排序,没有降低结果?
- 排序后的语法(key=lambda:…)
- 在烧瓶中返回HTTP状态代码201
- 使用python创建一个简单的XML文件
- APT命令行界面式的yes/no输入?
- 如何打印出状态栏和百分比?