【发布时间】:2020-05-01 16:34:48
【问题描述】:
我试图在我的 16 核机器上将一个 python 程序 (program_to_parallelize.py) 并行化为 16 个子进程。我使用这段代码,它是 Python 脚本的一部分:
import subprocess
subprocess.call("mpiexec -n 16 python program_to_parallelize.py", shell=True)
这运行没有任何错误,但是当我查看 CPU 使用率时,我发现所有子进程都在一个 CPU 上运行。 (点击 here 看看我在命令行中输入“top 1”时得到了什么)但我更希望 16 个进程每个都占用一个 CPU 的 100%,而不是全部共享第一个。
我正在开发 16 核 Ubuntu 16.04.6 LTS。
我使用 3.0.3 版的 mpi4py
我使用 3.3.2 版的 mpiexec
【问题讨论】:
-
我使用multiprocessing 取得了一些成功。也许您可以试一试,当您有问题时,可以在此处回复。
标签: python-3.x parallel-processing mpi4py mpiexec