我一直用C编写非常简单的MPI程序。我不是很擅长C,但对Python非常有信心。我开始知道Python有MPI绑定。我使用Sun Grid Engine作为DRMS(分布式资源管理系统)。在进入python MPI之前,我想知道是否可以向Sun Grid Engine提交python mpi程序,以利用系统所有可用分布式处理器的强大功能。
那么,是否可以将python mpi程序提交给Sun Grid Engine?
答案 0 :(得分:2)
是的,这可能与使用mpirun
运行已编译的MPI代码没有任何不同。关于确保代码需要在每个节点上运行的可执行文件,库和支持文件的所有通常的软件都同样适用于python和编译的MPI应用程序。
Grid Engine本身(或者至少是我使用过的Oracle之前的商用版本)对MPI本身一无所知本身,所以在你的工作获得了来自资源管理器你的SGE作业脚本可能需要为运行创建自己的机器文件(或运行启动脚本),并做任何其他咒语来准备运行代码以执行的节点。旧的SGE维基和邮件列表有很多在运行的SGE作业脚本中设置MPI机器文件的有用示例。这个内部细节几乎完全是MPI风格特定的,并且大部分独立于SGE,因此提供细节有点困难,但最后在作业文件中运行Python应用程序的命令可以像
一样简单mpirun <options here> python yourapp.py
或
mpirun <options here> yourapp.py
如果yourapp.py
具有可执行权限且其中包含合适的shebang行。我已经用MPICH2和SGE运行了一些相当大的mpi4py应用程序而没有遇到后者。