2017-09-11 5 views
1

最近、1つのマスターノードと2つのクライアントノードを使用してBeowulfクラスターをセットアップしました。クライアントノードはすべてマスタノードの/home/mpiuser/ディレクトリを共有し、マスタノードでディレクトリが変更されると自動的に更新されます。私は正常例では、私が試してみて、私はここで作成したPythonのファイルを実行するとその後、次の出力Beowulfクラスタで個人ジョブを正しく実行できません。ジョブの例が正常に動作する

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 

を与え、次のコマンド

$ mpiexec -f hosts -n 3 /home/mpiuser/mpich2-1.4.1/examples/cpi 

とMPICH2をダウンロードするときに与えられたcpiファイルをコンパイルして実行しています:このコマンドを使用して/home/mpiuser/Development/fact_test.py

$ mpiexec -f hosts -n 3 /home/mpiuser/Development/fact_test.py 

は、私は、次のエラーを取得

[proxy:0:[email protected]] HYDU_create_process (./utils/launch/launch.c:69): execvp error on file /home/mpiuser/Development/fact_test.py (Permission denied) 
[proxy:0:[email protected]] HYDU_create_process (./utils/launch/launch.c:69): execvp error on file /home/mpiuser/Development/fact_test.py (Permission denied) 
[proxy:0:[email protected]] 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) 

私はそれを提供させていただきます。ありがとう!

答えて

3

ログインノードで/home/mpiuser/Development/fact_test.pyを実行できますか?

iは ので、それを疑う - 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 
+0

ありがとう、これは問題を解決しました! –

関連する問題