小编Bob*_*Bob的帖子

如何在python中获取可用核心数

我知道在 python 中获取核心数的标准方法是使用multiprocess.cpu_count

import multiprocessing
print(multiprocessing.cpu_count())
Run Code Online (Sandbox Code Playgroud)

此外,在创建任务时,我们可以使用taskset指定进程可以访问的一些核心。

显然cpu_count,总是获取机器的可用核心数量,无论该进程是否被限制为仅使用其中一些核心。

python nproc.py
taskset 7 python nproc.py
taskset 1 python nproc.py
Run Code Online (Sandbox Code Playgroud)

另一方面,nproc给出了该进程可用的核心数量。

taskset 7 nproc # gives at most 3
taskset 1 nproc # gives 1
Run Code Online (Sandbox Code Playgroud)

我知道我可以调用nproctaskset -p {os.getpid()}来获取正确的核心数量。有没有另一种方法可以做到这一点,而不依赖其他程序(阅读 /proc/{os.pid()}/*可能是一个解决方案)。

谢谢

python linux multiprocessing taskset

5
推荐指数
1
解决办法
1219
查看次数

标签 统计

linux ×1

multiprocessing ×1

python ×1

taskset ×1