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
を実行しようとしましたが、両方で、操作不許可のエラーが発生しました
通常、NFSでは、すべてのノードでユーザーIDとグループIDが同一であることを確認する必要があります。関連する共有フォルダの権限、特に 'machinefile'を見てください。それらがすべてのノードで一貫していることを確認し、ここに投稿してください。 – Zulan
@Zulan確かに、私はそれをもっと喜んで提供するでしょう。ファイルのパーミッションを確認するコンソールコマンドとは何ですか? – philm
'machinefile'を含む共有ディレクトリで' ls -l'を実行することができます。各ファイルの所有者、グループ、およびアクセス許可が一覧表示されます。すべてのノードでこれを実行して、一貫性があるかどうかを確認します。 – Zulan