2024-04-30 05:35:57 发布
网友
我编写了一个python脚本,它可以独立启动,也可以支持mpi。在
python myscript.py
与
我如何知道脚本内部是以什么方式启动脚本来执行一些条件操作的?在
如果您在Unix上,可以分析以下输出:
import os print os.popen("ps -p %d -oargs=" % os.getpid()).read().strip()
玩getpid()和{}(对于父对象)。对于可移植解决方案,您需要外部库,如psutil:
getpid()
您关心它是使用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处有一个要检查的变量列表,这可能也很有用。在
MPI_COMM_WORLD
PMI_RANK
如果您在Unix上,可以分析以下输出:
玩}(对于父对象)。对于可移植解决方案,您需要外部库,如psutil:
^{pr2}$getpid()
和{您关心它是使用MPI运行还是在一个MPI列组上运行?对于已编译的MPI代码,只运行该程序仍将在MPI下启动它,但只有一个列;因此您可能只需初始化MPI并检查}是通常设置的;微软MPI文档设置了它们。它们可能特定于特定的MPICH版本或配置。在http://www.roguewave.com/portals/0/products/threadspotter/docs/2012.1/linux/manual_html/apas03.html处有一个要检查的变量列表,这可能也很有用。在
MPI_COMM_WORLD
的大小。但是,如果在没有MPI的情况下运行,则可能是为了避免初始化MPI(或者甚至需要有一个MPI实现)。如果是这样,您可能需要检查特定的环境变量,这些变量似乎是特定于实现的。对于openmpi,列表位于http://www.open-mpi.org/faq/?category=running#mpi-environmental-variables。对于MPICH,各种来源都提到PMI_RANK
和{相关问题 更多 >
编程相关推荐