Windows集群MPICH2

1 下载、安装MPICH2及在Visual Studio上编译设置

前人已经终结得很详尽了:https://blog.csdn.net/cjsh_123456/article/details/80285887

单机验证安装成功:

  1. 首次安装,可能需要运行 SMPD:smpd -install -phrase behappy
  2. 点击运行 wmpiregister.exe,注册Windows账户的用户名和密码
  3. 点击运行 wmpiexec.exe,运行安装目录中的 D:\Program Files (x86)\MPICH2\examples\cpi.exe

2 Windows集群配置

为测试程序成功在集群上运行,这里使用了一个打印主机名的 MPI 程序,读者可以自行编译(出处在这里),假设编译后得到 D:\mpi\test.exe

#include 
#include 

int main(int argc, char** argv) {
    // 初始化 MPI 环境
    MPI_Init(NULL, NULL);

    // 通过调用以下方法来得到所有可以工作的进程数量
    int world_size;
    MPI_Comm_size(MPI_COMM_WORLD, &world_size);

    // 得到当前进程的秩
    int world_rank;
    MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);

    // 得到当前进程的名字
    char processor_name[MPI_MAX_PROCESSOR_NAME];
    int name_len;
    MPI_Get_processor_name(processor_name, &name_len);

    // 打印一条带有当前进程名字,秩以及
    // 整个 communicator 的大小的 hello world 消息。
    printf("Hello world from processor %s, rank %d out of %d processors\n",
           processor_name, world_rank, world_size);

    // 释放 MPI 的一些资源
    MPI_Finalize();
}

2.1 添加Windows账户

一台Windows上可以有多个管理员账户,这里采用的方法是,首先添加新账户,再将账户类型修改为管理员:
https://jingyan.baidu.com/article/7082dc1c629264e40a89bd34.html

在集群上的每一台Windows上添加同一管理员权限账户,密码也要相同。

2.2 注册账户

点击运行 wmpiregister.exe,注册前一步添加的Windows账户的用户名和密码。

2.3 配置MPICH2,检测集群

点击运行 wmpiconfig.exe

假设集群通过同一个网络,位于 WORKGROUP 的工作组中。选择 Domain 为 WORKGROUP ,扫描工作组中的主机名和 MPICH2 版本。如果扫描不到某一个机器的版本,建议检查该台机器是否能单机运行MPICH2,可能是因为没有运行 SMPD。

2.4 命令行运行

首先写配置文件 config.mpi :

-n 2 192.168.1.15 D:\mpi\test.exe
-n 2 192.168.1.55 D:\mpi\test.exe

写明了节点的 IP 地址和同一执行文件在该结点上的路径,以及每个节点的运行参数。

然后命令行运行:

D:\Program Files (x86)\MPICH2\bin> mpiexec -configfile "D:\mpi\config.mpi"

2.5 更详细的介绍

前人的总结:mpich2多机协同作业

你可能感兴趣的:(MPI)