判断 Python 程序是不是并行运行
Posted
技术标签:
【中文标题】判断 Python 程序是不是并行运行【英文标题】:Determine if Python program is running in parallel判断 Python 程序是否并行运行 【发布时间】:2019-09-21 21:28:30 【问题描述】:有没有办法通过mpirun
或mphexec
查明Python 程序是否在并行运行。我以为我可以通过获取sys.argv
来获取此信息,但它不存在。有什么方法可以让我获得这些信息,也许是通过查看mpi4py
模块?
【问题讨论】:
【参考方案1】:如果你使用mpi4py
包,你可以检查MPI_COMM_WORLD通信器的大小是否大于1。如果是,则您正在并行运行。如果没有,您只在一个进程上运行。请注意,即使您使用 mpirun 命令(例如 mpirun -n 1 python test.py
)运行脚本,也只能在一个进程上运行
您可以通过以下代码行获取 MPI_COMM_WORLD 通信器的大小:
from mpi4py import MPI
comm = MPI.COMM_WORLD
size = comm.Get_size()
【讨论】:
【参考方案2】:注意:此答案适用于不使用mpi4py
但使用multiprocessing
的人。
import multiprocessing
if multiprocessing.current_process().name == 'MainProcess':
print('Running on main process')
else:
rank = multiprocessing.current_process()._identity[0]
print(f'Running on process: rank')
【讨论】:
以上是关于判断 Python 程序是不是并行运行的主要内容,如果未能解决你的问题,请参考以下文章