Mpi 在sun grid engine(SGE)中将作业分散到集群的不同节点上

Mpi 在sun grid engine(SGE)中将作业分散到集群的不同节点上,mpi,sungridengine,Mpi,Sungridengine,我正在尝试让sun gridending(sge)在集群的所有节点上运行MPI作业的单独进程 每个节点都有12个处理器,因此SGE将60个进程中的12个分配给5个单独的节点 我希望它为30个可用节点中的每个节点分配2个进程,因为每个节点上运行12个进程(dna序列比对),节点内存不足 所以我想知道是否有可能显式地让SGE将进程分配给给定的节点 谢谢 Paul.检查并行环境配置中的“分配规则”;使用该选项,或者通过为分配规则指定$pe\U插槽,然后使用-pe选项qsub,您应该能够执行上面要求的操

我正在尝试让sun gridending(sge)在集群的所有节点上运行MPI作业的单独进程

每个节点都有12个处理器,因此SGE将60个进程中的12个分配给5个单独的节点

我希望它为30个可用节点中的每个节点分配2个进程,因为每个节点上运行12个进程(dna序列比对),节点内存不足

所以我想知道是否有可能显式地让SGE将进程分配给给定的节点

谢谢

Paul.

检查并行环境配置中的“分配规则”;使用该选项,或者通过为分配规则指定$pe\U插槽,然后使用-pe选项qsub,您应该能够执行上面要求的操作。

从管理主机运行“qconf-msconf”编辑调度程序配置。它将在编辑器中显示配置选项列表。寻找一个叫做“负荷系数”的参数。将值设置为“-slots”(不带引号)

这会告诉调度程序,当机器使用的插槽最少时,它的负载最少。如果exec主机的每个插槽数量相似,则会得到均匀分布。如果您有一些exec主机的插槽比其他主机多,那么它们将是首选,但您的分布仍将比load_factor的默认值更均匀(我不记得了,很久以前在集群中更改了这个值)


您可能需要在每个主机上设置插槽。我自己这么做是因为我需要限制一组特定盒子上的作业数量,使其小于最大值,因为它们没有其他盒子那么多内存。我不知道这种负载因数配置是否需要它,但如果需要,您可以为每个主机添加一个插槽。使用“qconf-me hostname”执行此操作,在“复杂_值”中添加一个类似于“slots=16”的值,其中16是您希望主机使用的插槽数。

您可以通过创建一个队列来完成此操作,在该队列中,您可以定义队列在每个节点中仅使用12个处理器中的2个处理器

您可以使用命令查看当前队列的配置

 qconf -sq queuename
您将在队列配置中看到以下内容。此队列的命名方式使其仅使用5个执行主机和4个插槽(处理器)

使用以下命令更改队列配置

qconf -mq queuename

然后将4改为2。

这是我从系统管理员那里学到的。将此SGE资源请求放在作业脚本中:

#$-l节点=30,ppn=2


请求2个MPIp进程pernode(ppn)和30个节点。我认为,如果其他用户也运行大量作业,则无法保证此30x2布局在30节点集群上工作,但也许您可以尝试一下。

这看起来像是在运行PBS兼容性问题。它在开箱即用的SGE上不起作用。
qconf -mq queuename