3

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

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

4

1 回答 1

2

是的,这是可能的,并且与使用mpirun. 关于确保您的代码需要在每个节点上运行的可执行文件、库和支持文件的所有通常注意事项同样适用于 python 和已编译的 MPI 应用程序。

Grid Engine 本身(或者至少是我使用过的 pre-Oracle、pre-commercial 版本)本身对 MPI 一无所知,因此在您从资源管理器获得插槽分配之后,您的 SGE 作业脚本可能需要为运行创建自己的机器文件(或运行启动脚本)并执行任何其他必要的咒语来准备将运行您的代码以执行的节点。旧的 SGE wiki 和邮件列表有很多有用的示例,用于在运行的 SGE 作业脚本中设置 MPI 机器文件。其内部细节几乎完全是 MPI 风格特有的,并且大部分独立于 SGE,因此提供细节有点困难,但最后在作业文件中运行 Python 应用程序的命令可以简单到

mpirun <options here> python yourapp.py

或者

mpirun <options here> yourapp.py

ifyourapp.py具有可执行权限和合适的shebang行。我已经用 MPICH2 和 SGE运行了一些相当大的 mpi4py应用程序,后者没有困难。

于 2012-02-02T10:16:01.897 回答