2016-07-12 31 views
1

SSHとMPICHの実行にいくつか問題があります。私が尋ねた以前のいくつかの質問から、私はmpi_hello.cプログラムを実行したところまで進んできました。参考のため実行時にrootとしてMPIを実行する方法/

は、私がMPICHを設定するには、このチュートリアルの次に取り組んでいます:https://help.ubuntu.com/community/MpichCluster

私はclusterFilesと呼ばれるルートディレクトリを作成し、私はclusterUser(clusteruser)と呼ばれる、すべてのノード上のユーザーを作成しました。私はclusterFilesをエクスポートし、すべてのノードにclusterFilesをマウントしました。また、マスターノードでclusterFilesの所有権をclusterUserに変更しました。また、clusterUserのホームディレクトリを/ clusterFilesに変更しました。

マスターノードでclusterUserのsshキーを作成し、そのキーを許可リストに追加しました。私はすべてのノードとマスターノードにキーチェーンをインストールしました。私はガイドに書かれているように.bashrcを編集しました。(私は.bashrcにあるガイドをコピーしました)

私はすべてのノードにMPICH2とGCCもインストールしました。

私の特定のクラスタのマシンファイルを編集しました。

しかし、MPI hello_world.cプログラムを実行すると、エラーが発生します。

ガイド上のコードをコピーして.cファイルに貼り付け、mpi_hello.cという名前を付けました(これはマスターノードで行われました)。

ガイドでは、彼はちょうどmpicc [arguments]mpiexec [arguments]と呼ぶ最後の部分です。しかし、私がmpiccに電話をするときは、sudo mpicc [arguments]が必要です。これは私が気にするべき問題か、これが実行されるべき正しい方法でしょうか?

私は(須藤なし)のmpiexecを実行すると、私は次のエラーことを受け取る:

[email protected]:~$ mpiexec -n 7 -f machinefile ./mpi_hello 

[[email protected]] HYDU_parse_hostfile (./utils/args/args.c:323): unable to open host file: machinefile 

[[email protected]] mfile_fn (./ui/mpich/utils.c:341): error parsing hostfile 

[[email protected]] match_arg (./utils/args/args.c:153): match handler returned error 

[[email protected]] HYDU_parse_array (./utils/args/args.c:175): argument matching returned error 

[[email protected]] parse_args (./ui/mpich/utils.c:1609): error parsing input array 

[[email protected]] HYD_uii_mpx_get_parameters (./ui/mpich/utils.c:1660): unable to parse user arguments 

[[email protected]] main (./ui/mpich/mpiexec.c:153): error parsing parameters 

は、これらのファイルをインストールするのを忘れて何かありますか?最初は、mpiexecの前でsudoが必要だと思っています。だから私が実行するとき:sudo mpiexec [arguments]それは "実行"が、私はそれがclusteruserとして接続するために必要なときにrootとしてSSHクラスタに接続します。

私の主な関心事は、彼がルートとして彼のコマンドを実行していないということです。暗黙のうちに実行されているが、実行されていないコマンドがあるかどうか疑問に思っていますか?

また、他のノードでclusterFilesの所有権をclusterUserに変更しようとすると、操作できないというエラーが発生することに気付きました(このコマンドを実行したときにはrootでした)。私はマスターノードの所有権を変更したので、同じユーザー名を持っているので他のノードに伝播していたと私は考えています。だから私は所有権を効果的に自分自身に変えていた。これは正しい考えですか、それともそれ以上はありますか?

編集:ユーザーZulanの提案から

が、私は興味深いことにmachinefileのパーミッションをチェックして、それはまだrgcluster2blade1に設定されています。 ClusterFiles内のすべてのファイル/フォルダをclusteruserが所有するようにするには、コマンドsudo chown -R clusteruser /clusterFilesを実行することにしました。私はマスターノードでのみこれを行っています。他のノードをチェックします。

編集2:

OK(私は全部を行う前に、今4でexpermineting AM)クラスタの残りの部分をチェックした後、私は、ノードの2がclusteruser以外の別のユーザーに許可を与えていたことがわかったので、 。彼らはユーザーレンダリングにそれを与えていました。私はsudo chown commandを実行しようとしましたが、両方で、操作不許可のエラーが発生しました

+0

通常、NFSでは、すべてのノードでユーザーIDとグループIDが同一であることを確認する必要があります。関連する共有フォルダの権限、特に 'machinefile'を見てください。それらがすべてのノードで一貫していることを確認し、ここに投稿してください。 – Zulan

+0

@Zulan確かに、私はそれをもっと喜んで提供するでしょう。ファイルのパーミッションを確認するコンソールコマンドとは何ですか? – philm

+0

'machinefile'を含む共有ディレクトリで' ls -l'を実行することができます。各ファイルの所有者、グループ、およびアクセス許可が一覧表示されます。すべてのノードでこれを実行して、一貫性があるかどうかを確認します。 – Zulan

答えて

1

アップデートと同様です。私はGIDとUIDがすべて乱れていることを発見したので、私はそのユーザーを削除して新しいアカウントを作成することに決めました。何かをする前に、必ずすべてのノードで同じものになるようにユーザーのUIDとGIDを確認し、必要に応じて変更しました。私は頭の上から命令を覚えていない。後でそれを探します。見つけたら、私はこの答えを更新します。

私はガイドを先に進め、すべてうまくいった。

関連する問題