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


当前回答

Python 3.4+: os.cpu_count()。

multiprocessing.cpu_count()是根据这个函数实现的,但如果os.cpu_count()返回None(“不能确定cpu数量”)则会引发NotImplementedError。

其他回答

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

import torch.multiprocessing as mp

mp.cpu_count()

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

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

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

Python 3.4+: os.cpu_count()。

multiprocessing.cpu_count()是根据这个函数实现的,但如果os.cpu_count()返回None(“不能确定cpu数量”)则会引发NotImplementedError。

不知道如何添加到代码或回复消息,但这里有对jython的支持,你可以在放弃之前添加进去:

# jython
try:
    from java.lang import Runtime
    runtime = Runtime.getRuntime()
    res = runtime.availableProcessors()
    if res > 0:
        return res
except ImportError:
    pass

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

import multiprocessing

multiprocessing.cpu_count()

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

这可能适用于我们这些使用不同操作系统的人,但想要获得所有世界的最好:

import os
workers = os.cpu_count()
if 'sched_getaffinity' in dir(os):
    workers = len(os.sched_getaffinity(0))