1

こんにちは: パスワードなしの認証などを使用して 3 つの仮想マシンをセットアップした OpenMPI 環境をセットアップしているところです。単純な「Hello World」スタイルのプログラムを正常にコンパイル/リンクしました。

#include <stdio.h>
#include <mpi.h>

int main(int argc, char *argv[]) {
  int numprocs, rank, namelen;
  char processor_name[MPI_MAX_PROCESSOR_NAME];

  MPI_Init(&argc, &argv);
  MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  MPI_Get_processor_name(processor_name, &namelen);

  printf("Process %d on %s out of %d\n", rank, processor_name, numprocs);

  MPI_Finalize();
}

私が観察したのは、「マシン ファイル」に 3 つの異なるノードのホスト名がある場合、ジョブがハングすることです。個々のノードはそれぞれ正常に機能しています。2 つのノード (つまり、3 つのノードのうち任意の 2 つ) の組み合わせも試しましたが、問題なく動作します。したがって、いずれかのノードが機能しない可能性を割り引くことができます。

どうすればこれをさらに調査できますか? ありがとう!

4

2 に答える 2

0

ここでは、printf またはファイル IO は問題になりません。

これに関するセクションを Open MPI README チェックアウトhttps://svn.open-mpi.org/trac/ompi/browser/branches/v1.5/README#L1404に追加しました。短いバージョン: 最初に、ホスト名や稼働時間など、いくつかの非 MPI アプリケーションを mpirun してみてください。それらが機能しない場合は、OMPI のランタイム環境が適切に起動することすら妨げている何かがあります (これがここで起こっていると思われます)。

(表示される SSL 警告が怖い場合は、サイトの CA SSL 証明書を取得してください: http://www.cs.indiana.edu/Facilities/FAQ/Mail/csci.crt。米国インディアナ州の CA です。大学のコンピュータ サイエンス学部; 彼らは私たちのホスティング プロバイダーです)

ファイアウォールを無効にしましたか? または、偏執的である場合は、ファイアウォールを有効のままにして、Open MPI ジョブを実行するすべてのノード間でランダム TCP ポート通信を有効にしますか? (iptables を正しく構成するのは難しいです。最初に無効にしてみてください。それが機能する場合は、信頼できるノード間でランダムな TCP ポート通信を許可する方法を見つけてください)

于 2012-03-01T18:28:19.097 に答える
0

Machinefile にスロットがなく、ノード数 (4 ジョブ、3 ノード) よりも多くのジョブを実行していることに気付きました (後で)。それが理由でした。すみません、それはばかげていました。

于 2012-03-22T03:36:00.900 に答える