有没有一种方法可以确定Python程序是通过mpirun
还是mphexec
并行运行。我以为可以通过获取sys.argv
来获取此信息,但是它不存在。可以通过查看mpi4py
模块来获取这些信息吗?
答案 0 :(得分: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()