4

大規模なクラスターで問題なく動作する MPI コードをいくつか作成しました。クラスタ内の各ノードは同じ CPU アーキテクチャを持ち、ネットワーク化された (つまり「共通」) ファイル システムにアクセスできます (各ノードが実際のバイナリを実行できるようにするため)。ただし、次のシナリオを検討してください。

  • 私のオフィスには、デュアル コア プロセッサ (インテル) を搭載したマシンがあります。
  • 自宅にデュアル コア プロセッサ (amd) を搭載したマシンがあります。

両方のマシンで Linux が実行され、両方のマシンで MPI コードをローカルで正常にコンパイルおよび実行できます (つまり、2 つのコアを使用)。

さて、異なるアーキテクチャを念頭に置き、共有 (ネットワーク) ファイルシステムがないという事実を念頭に置いて、4 つのコアすべてを利用できるように、MPI を介して 2 台のマシンをリンクすることは可能ですか?

もしそうなら、どのように?

ありがとう、ベン。

4

2 に答える 2

5

これを行うことは可能です。ほとんどのMPI実装では、さまざまなマシンで実行するバイナリの場所を指定できます。または、両方のマシンのパスにあることを確認してください。両方のマシンのバイト順序が同じであるため、これは問題にはなりません。個々のプロセスが読み取る入力データが両方の場所で利用可能であることを確認する必要があります。

これを行うことには多くの問題があります。システム間のファイアウォールがプロセスの起動と通信を許可することを確認する必要があります。マシン間の通信は非常に遅くなるため、コードの通信が重い場合や遅延が許容されない場合は、おそらくかなり遅くなります。ほとんどの場合、4つのコアすべてで実行する実行時間は、1台のマシンで2つで実行するよりも長くなります。

于 2010-06-17T15:32:41.543 に答える
0

プロセスの配置場所に地理的な制限はありません。KeithB が言ったように、両方のマシンで共通のパスや同じバイナリを使用する必要さえありません。使用している MPI 実装によっては、同じエンディアンも必要ありません。

各マシンのバイナリへのパスを正確に指定して、2 つの独立したバイナリを作成することもできます。ただし、2 つのノード間の通信インフラストラクチャが十分に高速でない場合、プログラムの実行速度が遅くなることに注意してください。

于 2011-03-04T15:39:54.267 に答える