Jor*_*rge 5 python conditional mpi
我已经编写了一个python脚本,可以以独立方式启动或在mpi支持下启动。
python myscript.py
Run Code Online (Sandbox Code Playgroud)
与
mpirun -np 2 python myscript.py
Run Code Online (Sandbox Code Playgroud)
我怎么知道在脚本内部以什么方式启动脚本来执行一些条件操作?
您关心它是使用 MPI 运行还是在一个 MPI 级别上运行?对于已编译的 MPI 代码,仅运行该程序仍将在 MPI 下启动它,但只有一级;因此您可能只需初始化 MPI 并检查MPI_COMM_WORLD. 不过,如果您在没有 MPI 的情况下运行,则可能是您试图避免初始化 MPI(或者甚至需要有可用的 MPI 实现)。如果是这样,您可能需要检查特定的环境变量,这些变量似乎是特定于实现的。对于 Open MPI,该列表位于http://www.open-mpi.org/faq/?category=running#mpi-environmental-variables。对于 MPICH,各种来源都提到了PMI_RANK和PMI_SIZE通常被设置;Microsoft MPI 记录了它设置的这些内容。它们可能特定于特定的 MPICH 版本或配置。http://www.roguewave.com/portals/0/products/threadspotter/docs/2012.1/linux/manual_html/apas03.html上有一个变量列表可供检查,这可能也很有用。