6

私はMPIを学んでいます。私が従った最初のチュートリアルはこちらです

MSVC 2010 を搭載した Windows 7 で正常に実行されたコードは次のとおりです。

#include "mpi.h"
#include "iostream.h"

int main(int argc,char *argv [])
{
   int numtasks, rank, rc; 
   rc = MPI_Init(&argc,&argv);
   if (rc != MPI_SUCCESS) {
       printf ("Error starting MPI program. Terminating.\n");
       MPI_Abort(MPI_COMM_WORLD, rc);
   } 
   MPI_Comm_size(MPI_COMM_WORLD,&numtasks);
   MPI_Comm_rank(MPI_COMM_WORLD,&rank);
   printf ("Number of tasks= %d My rank= %d\n", numtasks,rank);
   MPI_Finalize();
}

Pentium-4 マシンでこのコードを正常に実行しています (まだ Pentium-4 が 1 つあることに驚かないでください)。

ここで、イーサネット LAN に接続された複数のマシンでこのコード (またはその他の MPI コード) を実行したいと考えています。たとえば、各マシンが 1 から 1000 までの合計を出し、マスター ノードに送り返すと、マスター ノードはこれらすべての数値を加算して最終的な合計を取得します。

私の質問は、ネットワークで MPI プログラミングを開始する方法です。各マシンで実行する必要があるすべてのツール/ソフトウェア。

チュートリアルへのポインタを教えていただければ幸いです。

MPI Implemnetation: MPICH2 
O.S:each machine is having Windows 7, 32 bit CPU: Intel's Pentium 4 and Dual core 
Network: Ethernet 
IDE:MSVC2010

アップデート:

Jevの答えで疑問が解消されました。私の最近の質問は次のとおりです。

各マシンに MPICH2 をインストールしますか? cfg ファイルに 1 行ごとに各マシンの名前を書き込んだ後、他に何かする必要がありますか、それとも単に次のコマンドを実行する必要がありますか:

<path-to-mpich2>/bin/mpiexec.exe -machinefile hosts.cfg -n nPEs <your-executable>

アプリケーションがすべてのマシンで実行されていることをどのように確認できますか? アプリの実行中に、各マシンで特別な構成などを行う必要がありますか?

4

2 に答える 2

3

接続されたマシンをホストファイルに追加し、ファイルを に渡しますmpiexec

<path-to-mpich2>/bin/mpiexec.exe -machinefile hosts.cfg -n nPEs <your-executable>

MPICH ユーザー ガイドのセクション 5.4 および 9 を確認してください。

アップデート:

はい、各マシンに MPI ライブラリをインストールする必要があります。さらに、各マシンでプロセス マネージャー デーモンを起動し、自動リモート ログインを有効にする必要があります (例: ssh を使用)。mpdtrace次に、各マシンのホスト名を出力する単純な hello world プログラムを使用してテストを実行します。それが機能し、異なるホスト名が出力される場合。インストールがスムーズに行われる場合、特別な設定 (ライブラリへの正しいパスの設定など) は必要ありません。

于 2013-10-13T14:06:42.650 に答える
2

大変な努力の末、サポートチームに連絡することができ、得た答えは次のとおりです。

残念ながら、MPICH チームは Windows バージョンをサポートしていません。

ただし、MS-MPI を引き続き使用できるため、まだいくつかの希望が残っています。

http://wiki.mpich.org/mpich/index.php/Frequently_Asked_Questions#Q:_Why_can.27t_I_build_MPICH_on_Windows_anymore.3F

残念ながら、開発者のリソースと関心が不足しているため、Windows でサポートされていた MPICH の最後のバージョンは MPICH2 1.4.1p でした。このバージョンには最小限のサポートが残っていますが、ダウンロード ページで見つけることができます 。上記のダウンロードページにもリンクがあります。そのバージョンは、お使いのシステムで動作する可能性が高く、今後も更新され続けます。すべての Windows ユーザーが MS-MPI を使用するように移行することをお勧めします。

于 2013-10-22T05:24:06.730 に答える