这个python脚本是由mpirun还是mpiexec启动的?

2024-04-30 05:35:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个python脚本,它可以独立启动,也可以支持mpi。在

python myscript.py

^{pr2}$

我如何知道脚本内部是以什么方式启动脚本来执行一些条件操作的?在


Tags: py脚本方式条件mpimyscriptpr2
2条回答

如果您在Unix上,可以分析以下输出:

import os 
print os.popen("ps -p %d -oargs=" % os.getpid()).read().strip()

getpid()和{}(对于父对象)。对于可移植解决方案,您需要外部库,如psutil

^{pr2}$

您关心它是使用MPI运行还是在一个MPI列组上运行?对于已编译的MPI代码,只运行该程序仍将在MPI下启动它,但只有一个列;因此您可能只需初始化MPI并检查MPI_COMM_WORLD的大小。但是,如果在没有MPI的情况下运行,则可能是为了避免初始化MPI(或者甚至需要有一个MPI实现)。如果是这样,您可能需要检查特定的环境变量,这些变量似乎是特定于实现的。对于openmpi,列表位于http://www.open-mpi.org/faq/?category=running#mpi-environmental-variables。对于MPICH,各种来源都提到PMI_RANK和{}是通常设置的;微软MPI文档设置了它们。它们可能特定于特定的MPICH版本或配置。在http://www.roguewave.com/portals/0/products/threadspotter/docs/2012.1/linux/manual_html/apas03.html处有一个要检查的变量列表,这可能也很有用。在

相关问题 更多 >