【发布时间】:2015-09-29 13:39:35
【问题描述】:
根据这个问题和答案 -- Python multiprocessing.cpu_count() returns '1' on 4-core Nvidia Jetson TK1 -- Python 的 multiprocessing.cpu_count() 函数在某些系统上的输出反映了活跃的 CPU 数量正在使用,而不是实际的 CPU 数量可供调用的 Python 程序使用。
一个常见的 Python 习惯用法是使用cpu_count() 的返回值来初始化Pool 中的进程数。但是,在使用这种“动态 CPU 激活”策略的系统上,这种习惯用法的破坏性相当严重(至少在相对静止的系统上)。
是否有一些直接(且可移植)的方法可以从 Python 获取可用处理器的数量(而不是当前使用的数量)?
注意事项:
How to find out the number of CPUs using python 的已接受答案未回答此问题,因为如 此 问题顶部链接的问题中所述,打印
/proc/self/status的内容显示所有4 个内核可供程序使用。在我看来,“便携”不包括任何涉及解析
/proc/self/status内容的方法,其格式可能因 Linux 发行版而异,甚至在 OS X 上都不存在。(任何其他伪文件也是如此。)
【问题讨论】: