MPI多机器实现并行计算

Posted earthhouge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中,然后就可以执行程序了。

技术分享图片

技术分享图片

以上是关于MPI多机器实现并行计算的主要内容,如果未能解决你的问题,请参考以下文章

大数据+并行计算+分布式计算知识点整理

小烨收藏MPI和Hadoop的区别

并行计算学习之用MPI实现梯形积分法

Python多核编程mpi4py实践及并行计算-环境搭建篇

MPI简介

MPI并行计算pi π