2012-02-02 51 views
3

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

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

回答

2

是的,这是可能的,它与mpirun运行编译MPI代码没有任何不同。所有关于确保代码需要在每个节点上运行的可执行文件,库和支持文件的所有常用命令对编译的MPI应用程序同样适用于python。网格引擎本身(或至少在我之前使用过的Oracle之前的商业版本)并不知道MPI的任何内容,本身,所以在你的工作从资源管理器获得槽位分配之后, SGE作业脚本可能需要为运行创建自己的机器文件(或运行启动脚本),并执行其他任何必要的咒语来准备要运行代码执行的节点。旧的SGE wiki和邮件列表中有很多有用的示例,在正在运行的SGE作业脚本中设置MPI机器文件。这个内部细节几乎完全是MPI特定的风格,并且大多独立于SGE,所以提供细节有点困难,但最终在作业文件中运行Python应用程序的命令可以像

mpirun <options here> python yourapp.py 
mpirun <options here> python yourapp.py 

mpirun <options here> yourapp.py 

如果yourapp.py具有可执行权限并在它的合适的shebang线。我已经用MPICH2和SGE运行了一些相当大的应用程序,并且毫不费力地完成后者。

+0

+1,并且想要特别为mpi4py添加一个投票,这非常好。 – 2012-02-02 12:44:11

相关问题