zoukankan      html  css  js  c++  java
  • MPI多机器实现并行计算

      最近使用一个系统的分布式版本搭建测试环境,该系统是基于MPI实现的并行计算,MPI是传统基于msg的系统,这个框架非常灵活,对程序的结构没有太多约束,高效实用简单,下面是MPI在多台机器上实现并行计算的过程。

      这里准备使用三台机器,假设为A,B,C,对应IP分别为:192.168.86.16(A),192.168.86.108(B),192.168.86.123(C)。在这三台机器上都有同一个用户名songhou2,这三台机器上安装了相同的MPI版本,并且确保都已经设置好了环境变量,我们这里把192.168.86.16作为主节点。

    我们首先完成机器A和机器B之间的设置。在机器A上进入songhou2用户目录下,执行如下命令:

      命令执行过程中可能要等待你的输入,全部直接选择回车即可,然后接着执行如下命令:

      执行完命令后,需要输入songhou2在机器B上的密码,输入密码后回车,继续执行下面的命令:

      登陆机器B

      继续执行下面的命令:

      遇到需要输入yes/no的地方就输入yes,其他一律输入回车,然后再执行如下命令:

      最后执行如下命令退出机器B:

      执行完上述所有命令后,就完成机器A和机器B之间的设置了,机器A和机器C之间的设置类似,这里就不再进行赘述了。现在我们回到机器A上,编译我们的源代码得到可执行程序:

      由于我们的三天机器是相互独立的,他们之间没有共享磁盘,所以如果你想让同一个程序使用MPI在多台机器上执行,就要把可执行程序分别拷贝到另外两台机器上,然后我们把可执行程序分别拷贝到机器B和机器C上,但是要保证可执行程序在三台机器上的文件路径完全相同:

      下面你要在可执行程序所在的文件夹下创建一个文本文件,命名为hosts.txt,然后分别把三台机器的IP写到hosts.txt中,然后就可以执行程序了。

  • 相关阅读:
    解决绘图中闪烁的问题(C#)
    创建XML文件以及XML中的节点和更新Xml文件中的节点的值
    在C#中SendMessage和PostMessage的参数传递
    [置顶]在C#中SendMessage和PostMessage的参数传递
    C#中使用DOS命令关闭当前正在运行的程序并重新启动
    Winform中扩展Panel使之具备双缓存,防止闪屏
    用C#调用Windows API向指定窗口发送
    界面控件
    观察站模式
    利用dataview为datatable排序
  • 原文地址:https://www.cnblogs.com/earthhouge/p/9275250.html
Copyright © 2011-2022 走看看