无法在 Beowulf 集群上正确 运行 个人作业。示例工作正常
Unable to correctly run a personal job on the Beowulf cluster. Example job works fine
我最近使用一个主节点和两个客户端节点设置了一个 Beowulf 集群。客户端节点都共享主节点的 /home/mpiuser/
目录,并在主节点上的目录更改时自动更新。我已经成功 运行 使用以下命令
下载 MPICH2 时给出的示例编译 cpi
文件
$ mpiexec -f hosts -n 3 /home/mpiuser/mpich2-1.4.1/examples/cpi
给出以下输出
Process 0 of 3 is on Master
Process 2 of 3 is on Slave2
Process 1 of 3 is on Slave1
pi is approximately 3.1415926544231318, Error is 0.0000000008333387
wall clock time = 0.001477
然后当我尝试 运行 我在此处创建的 python 文件时:/home/mpiuser/Development/fact_test.py
,使用此命令
$ mpiexec -f hosts -n 3 /home/mpiuser/Development/fact_test.py
我收到以下错误
[proxy:0:0@Master] HYDU_create_process (./utils/launch/launch.c:69): execvp error on file /home/mpiuser/Development/fact_test.py (Permission denied)
[proxy:0:1@Slave1] HYDU_create_process (./utils/launch/launch.c:69): execvp error on file /home/mpiuser/Development/fact_test.py (Permission denied)
[proxy:0:2@Slave2] HYDU_create_process (./utils/launch/launch.c:69): execvp error on file /home/mpiuser/Development/fact_test.py (Permission denied)
此外,我还可以通过此输入输出正确获取主节点和客户端节点的名称:
$ mpirun --machinefile hosts hostname
Master
Slave1
Slave2
我不太确定错误是从哪里来的。一些附加信息:
MPICH2 版本:1.4.1
Python版本:3.5.2
fact_test.py:
import scipy as sp
import time
def factorial_func(i):
return sp.math.factorial(i)
if __name__ == "__main__":
i = 1e5
t0 = time.time()
fac = factorial_func(i)
t1 = time.time()
print(t1-t0)
如果您需要更多信息,我很乐意提供。谢谢!
您可以 运行 /home/mpiuser/Development/fact_test.py
在您的登录节点上吗?
我对此表示怀疑,因为
- 没有魔法头来使用 python 解释器
- 文件可能不可执行
一个选项是在文件的开头添加
#!/usr/bin/python
然后
chmod 755 /home/mpiuser/Development/fact_test.py
和其他选项是手动使用 python 解释器,您的 mpiexec
命令将变为
mpiexec -f hosts -n 3 python /home/mpiuser/Development/fact_test.py
我最近使用一个主节点和两个客户端节点设置了一个 Beowulf 集群。客户端节点都共享主节点的 /home/mpiuser/
目录,并在主节点上的目录更改时自动更新。我已经成功 运行 使用以下命令
cpi
文件
$ mpiexec -f hosts -n 3 /home/mpiuser/mpich2-1.4.1/examples/cpi
给出以下输出
Process 0 of 3 is on Master
Process 2 of 3 is on Slave2
Process 1 of 3 is on Slave1
pi is approximately 3.1415926544231318, Error is 0.0000000008333387
wall clock time = 0.001477
然后当我尝试 运行 我在此处创建的 python 文件时:/home/mpiuser/Development/fact_test.py
,使用此命令
$ mpiexec -f hosts -n 3 /home/mpiuser/Development/fact_test.py
我收到以下错误
[proxy:0:0@Master] HYDU_create_process (./utils/launch/launch.c:69): execvp error on file /home/mpiuser/Development/fact_test.py (Permission denied)
[proxy:0:1@Slave1] HYDU_create_process (./utils/launch/launch.c:69): execvp error on file /home/mpiuser/Development/fact_test.py (Permission denied)
[proxy:0:2@Slave2] HYDU_create_process (./utils/launch/launch.c:69): execvp error on file /home/mpiuser/Development/fact_test.py (Permission denied)
此外,我还可以通过此输入输出正确获取主节点和客户端节点的名称:
$ mpirun --machinefile hosts hostname
Master
Slave1
Slave2
我不太确定错误是从哪里来的。一些附加信息: MPICH2 版本:1.4.1 Python版本:3.5.2
fact_test.py:
import scipy as sp
import time
def factorial_func(i):
return sp.math.factorial(i)
if __name__ == "__main__":
i = 1e5
t0 = time.time()
fac = factorial_func(i)
t1 = time.time()
print(t1-t0)
如果您需要更多信息,我很乐意提供。谢谢!
您可以 运行 /home/mpiuser/Development/fact_test.py
在您的登录节点上吗?
我对此表示怀疑,因为 - 没有魔法头来使用 python 解释器 - 文件可能不可执行
一个选项是在文件的开头添加
#!/usr/bin/python
然后
chmod 755 /home/mpiuser/Development/fact_test.py
和其他选项是手动使用 python 解释器,您的 mpiexec
命令将变为
mpiexec -f hosts -n 3 python /home/mpiuser/Development/fact_test.py