【问题标题】:Program does not finish when two nodes are used使用两个节点时程序未完成
【发布时间】:2015-10-25 23:07:25
【问题描述】:

当我在一台有 4 个进程的计算机上运行我的程序时,它几乎会立即终止。当我尝试在由两台计算机组成的集群中运行它时(集群已检查并且正常),它就是无法完成!

我很久以前在集群中运行过,我记得它比在一台电脑上运行要慢,但它会终止!

这是我的 run.sh:

#!/bin/bash

start=100
end=100
for ((i = $start; i <= $end; ++i )) ; 
do
        mpiexec -f machinefile -n 4 ./test ../../l_matrices/Lmat_755.mtx 1 755 755 $i $i 2 2 0 0
done

我确实检查了每个节点中是否产生了两个进程。

这是我的机器文件:

hostname1.gr:2
hostname2.gr:2

发生了什么?

【问题讨论】:

  • 这和c++到底有什么关系??
  • 哦,是的@πάνταῥεῖ,我也打算发布一些代码,但我没有,所以应该删除它,谢谢!
  • 您确定提交脚本正确吗?循环将在一次迭代后进入终止?故意的?
  • @Sidharth.N.Kashyap,是的,脚本是正确的。它在一台计算机上运行良好,只有在我使用两台时才会出现问题。

标签: mpi cluster-computing distributed intel-mkl mpiexec


【解决方案1】:

(假设脚本是正确的,并且 start 和 end 变量值是故意的,这不会做任何有意义的事情,因为 mpiexec 将执行一次具有相同参数的同一文件的两个副本)

检查路径 - 您使用了相对路径,这可能会导致问题,因为登录后执行发生在默认目录中,通常是您的主目录。

【讨论】:

  • 只是为了历史,我已经更改了代码中的某些内容,这导致了这种行为。我刚刚尝试了我的项目的旧版本,它工作得很好。
猜你喜欢
  • 1970-01-01
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-19
  • 2021-03-18
  • 1970-01-01
相关资源
最近更新 更多