gpt4 book ai didi

MPI:MPICH2 局域网内安装和编程,使用 Windows

转载 作者:行者123 更新时间:2023-12-04 15:12:03 24 4
gpt4 key购买 nike

我正在学习 MPI。我遵循的第一个教程是 here

我使用 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)。

现在我想在以太网 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 文件中每行写入每台机器的名称后,我还需要做其他事情还是只给出命令:
<path-to-mpich2>/bin/mpiexec.exe -machinefile hosts.cfg -n nPEs <your-executable>

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

最佳答案

将连接的机器添加到主机文件并将文件传递给 mpiexec :

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

检查 MPICH user's guide 中的第 5.4 和 9 节.

更新:

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

关于MPI:MPICH2 局域网内安装和编程,使用 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19332339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com