MPI:MPICH2使用Windows在LAN中安装和编程

gpu*_*guy 6 mpi mpich

我正在学习MPI.我遵循的第一个教程就在这里

我在Windows 7上使用MSVC 2010成功运行的代码是:

#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();
}
Run Code Online (Sandbox Code Playgroud)

我在Pentium-4机器上成功运行了这个代码(不要惊讶我还有一台Pentium-4).

现在我想在以太网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
Run Code Online (Sandbox Code Playgroud)

更新:

我用Jev的答案清除了一些疑虑.我最近的问题是:

我是否在每台机器上安装MPICH2.在cfg文件中每行写入每台机器的名称后,我是否还需要执行其他操作或只是给出命令:

<path-to-mpich2>/bin/mpiexec.exe -machinefile hosts.cfg -n nPEs <your-executable>
Run Code Online (Sandbox Code Playgroud)

我怎么知道我的应用程序在每台机器上运行?在运行应用程序时,我是否需要在每台机器上进行一些特殊配置?

jev*_*jev 3

将连接的计算机添加到主机文件并将文件传递到mpiexec

<path-to-mpich2>/bin/mpiexec.exe -machinefile hosts.cfg -n nPEs <your-executable>
Run Code Online (Sandbox Code Playgroud)

查看MPICH 用户指南的第 5.4 节和第 9 节。

更新:

是的,您需要在每台机器上安装 MPI 库。此外,您需要在每台机器上启动进程管理器守护程序并启用自动远程登录(例如使用ssh)。mpdtrace然后使用简单的 hello world 程序运行测试,该程序打印出每台计算机的主机名。如果它有效,您将打印不同的主机名。如果安装顺利进行,则无需进行特殊配置(例如设置库的正确路径)。