在Sun Grid Engine中运行Python MPI程序

时间:2012-02-02 09:49:22

标签: python mpi sungridengine

我一直用C编写非常简单的MPI程序。我不是很擅长C,但对Python非常有信心。我开始知道Python有MPI绑定。我使用Sun Grid Engine作为DRMS(分布式资源管理系统)。在进入python MPI之前,我想知道是否可以向Sun Grid Engine提交python mpi程序,以利用系统所有可用分布式处理器的强大功能。

那么,是否可以将python mpi程序提交给Sun Grid Engine?

1 个答案:

答案 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应用程序而没有遇到后者。