根据这个问题和答案 - Python multiprocessing.cpu_count()在4核Nvidia Jetson TK1上返回'1' - Python multiprocessing.cpu_count()
在某些系统上的功能输出反映了主动使用的CPU数量,而不是CPU的数量实际上能够经过调用Python程序使用。python
一个常见的Python习惯用法是使用return-value cpu_count()
来初始化a中的进程数Pool
。可是,在使用这种“动态CPU激活”策略的系统上,该习惯用法至关严重(至少在相对静止的系统上)。函数
是否有一些直接(和可移植)方式来获取Python 可用处理器的数量(与当前使用的数量相反)?编码
笔记:spa
这个问题是不被接受的答案来回答如何找出使用python CPU的数量,由于在上方挂了一个问题,说明这个问题,打印的内容/proc/self/status
显示全部4个内核为可用的程序。code
在我看来,“可移植”排除了涉及解析内容的任何方法/proc/self/status
,其格式可能因Linux的发行版本而异,而且在OS X上甚至不存在。(对于任何其余伪文件也是如此,一样。)进程
我不认为你会获得任何真正便携的答案,因此我会给出一个正确的答案。ip
正确*为Linux的回答是len(os.sched_getaffinity(pid))
,哪里pid
多是0
当前进程。这个函数在Python 3.3及更高版本中公开; 若是你之前须要它,你将不得不作一些奇特的cffi
编码。get
编辑:您可能会尝试查看是否可使用函数(int omp_get_num_procs();
若是存在),这是我在此问题上找到的惟一有意义的答案,但我尚未从Python中尝试过。
本文首发于Python黑洞网,博客园同步跟新
同步