Bot*_*ond 7 python multiprocessing cpu-cores python-multiprocessing
multiprocessing我正在使用 SLURM 在集群上测试 Python 的模块。我想绝对确保我的每个任务实际上都按照我的意图在单独的 cpu 核心上运行。由于配置 SLURM 的可能性有很多,因此这一点并不明显。
因此,我想知道是否有一种方法可以从正在运行的Python任务中获取核心特定信息。我需要我的 Python 脚本来获取有关其运行的核心的信息,以便区分各个核心。
考虑以下脚本。已启动 10 个任务。有没有办法让它们每个人打印有关它们所分配到的核心的核心特定信息?
import multiprocessing
def hello():
print "Hello World"
pool = multiprocessing.Pool()
jobs = []
for j in range(10):
p = multiprocessing.Process(target = hello)
jobs.append(p)
p.start()
Run Code Online (Sandbox Code Playgroud)
在 Linux、FreeBSD、SunOS 上,您可以使用psutil模块:
psutil.Process().cpu_num()
Run Code Online (Sandbox Code Playgroud)
请注意,只要您不设置 cpu 亲和性,您的操作系统就会任意将执行迁移到不同的核心。默认情况下,进程不会分配给特定的核心,通常最好让操作系统决定在哪个核心上运行某些内容。
| 归档时间: |
|
| 查看次数: |
5514 次 |
| 最近记录: |