【发布时间】:2012-12-09 13:57:04
【问题描述】:
如何使用mpirun 的-machine 标志?
为了选择在哪个集群节点上执行,我想出像这样使用mpirun 的-machinefile 选项
> mpirun -machinefile $HOME/utils/Host_file -np <integer> <executable-filename>
Host_file 包含一个节点列表,每行一个。
但是我想提交一大堆具有不同参数的进程,并且我不希望它们在同一个节点上运行。也就是说,我想做类似的事情
> mpirun -machinefile $HOME/utils/Host_file -np 1 filename 1
nano Host_file % change the first node name
> mpirun -machinefile $HOME/utils/Host_file -np 1 filename 2
nano Host_file
> mpirun -machinefile $HOME/utils/Host_file -np 1 filename 3
nano Host_file
...
我可以使用-machine 标志,然后为每次执行键入不同的节点。但我无法让它工作。例如
> mpirun -machine node21-ib -np 1 FPU
> mpirun -machine node21 -np 1 FPU
始终在主节点上执行。
我也尝试了-nodes 选项
> mpirun -nodes node21-ib -np 1 FPU
> mpirun -nodes node21 -np 1 FPU
但这只是在我当前的节点上执行。
同样,我尝试了-nolocal 和-exclude 选项但没有成功。
所以我有一个简单的问题:如何使用-machine 选项?还是有更好的方法来做到这一点(对于 Linux 新手)?
我正在使用以下版本的 MPI,它在网络上的文档似乎出奇地少(到目前为止,我拥有的全部文档都来自 > mpirun --help)。
> mpichversion
MPICH Version: 1.2.7
MPICH Release date: $Date: 2005/06/22 16:33:49$
MPICH Patches applied: none
MPICH configure: --with-device=ch_gen2 --with-arch=LINUX -prefix=/usr/local/mvapich-gcc --with-romio --without-mpe -lib=-L/usr/lib64 -Wl,-rpath=/usr/lib64 -libverbs -libumad -lpthread
MPICH Device: ch_gen2
感谢您的帮助。
【问题讨论】:
-
您的集群不是在 SGE、LSF、Torque 等资源管理器的控制下运行吗?这些通常提供与 MPI 实现集成的方法,以便为每个作业自动提供正确的节点文件。
-
我不知道 SGE、LSF 或扭矩是什么。我怀疑我们有这些东西。该集群是一个简单的集群,由非计算机专家的数学教授拥有和管理。
-
所有者告诉我
torque已安装,但未激活。他没有计划让它活跃起来。