先记录在单机MacBook上的搭建,实验室集群的搭建流程是一样的,不过每台机器都需要做一次。

MacBook:

1、安装mpich3:

$ ./configure --prefix=/Users/xin/sftwr/mpich3 --disable-fortran
$ make
$ make install

2、修改环境变量
打开/etc/bashrc
输入:
export MPI=/Users/xin/sftwr/mpich3
export PATH=${PATH}:${MPI}/bin

3、测试是否正确安装
查看命令是否是我们安装目录下的命令

重启终端,输入:
$ which mpiexec

4、用主机名表示ip地址
打开 /etc/hosts,定义 ip 地址和主机名之间的对应关系:
添加:
127.0.0.1         node0

note: 每个主机中都需要添加所有主机的ip,并赋予每个ip相同的名字 (相当于主机名字是主机ip的别名). 主机之间要设置免密码登录,从而才能登录到其它主机运行 mpiexec 进程

5、创建machinefile文件
在 ~/conf/目录中创建文件
输入:
node0

note: 每台主机需要相同的machinefile文件,文件中的名字可以用ip代替

6、测试:计算圆周率
mpiexec -n 3 -machinefile ~/conf/machinefile /Users/xin/sftwr/mpich3-source/examples/cpi

测试结果:
Process 0 of 3 is on xindeMacBook-Pro.local
Process 1 of 3 is on xindeMacBook-Pro.local
Process 2 of 3 is on xindeMacBook-Pro.local
pi is approximately 3.1415926544231318, Error is 0.0000000008333387
wall clock time = 0.004443

7、安装mpi4py

$ sudo python setup.py install

装好Python MPI后,使用dir()函数查看所有的MPI通信函数

from mpi4py import MPI
comm = MPI.COMM_WORLD
dir(comm)
help(comm.Allreduce)
help(comm.allreduce)

实验室集群:

过程基本没有差别,区别只在于hosts文件中需要记录更多的ip地址(以及主机名,可以任意赋予一个名字)

集群一共8台服务器:

30格子: computer-10 ip地址: 10.1.1.10, 20.1.1.10
28格子: computer-11 ip地址: 10.1.1.11, 20.1.1.11
26格子: computer-12 ip地址: 10.1.1.12, 20.1.1.12
24格子: computer-13 ip地址: 10.1.1.13, 20.1.1.13
22格子: computer-14 ip地址: 10.1.1.14, 20.1.1.14
20格子: computer-15 ip地址: 10.1.1.15, 20.1.1.15
18格子: computer-16 ip地址: 10.1.1.16, 20.1.1.16
16格子: computer-17 ip地址: 10.1.1.17, 20.1.1.17

其中四台服务器上安装了虚拟机:

实体服务器computer-10 上安装了4台虚拟机:10.1.1.50;10.1.1.51;10.1.1.52;10.1.1.53;
实体服务器computer-11 上安装了4台虚拟机:10.1.1.60;10.1.1.61;10.1.1.62;10.1.1.63;
实体服务器computer-12 上安装了4台虚拟机:10.1.1.70;10.1.1.71;10.1.1.72;10.1.1.73;
实体服务器computer-13 上安装了4台虚拟机:10.1.1.80;10.1.1.81;10.1.1.82;10.1.1.83;

尽量只在虚拟机上操作,所以hosts文件的内容是:

10.1.1.50 node0
10.1.1.51 node1
10.1.1.52 node2
10.1.1.53 node3
10.1.1.60 node4
10.1.1.61 node5
10.1.1.62 node6
10.1.1.63 node7
10.1.1.70 node8
10.1.1.71 node9
10.1.1.72 node10
10.1.1.73 node11
10.1.1.80 node12
10.1.1.81 node13
10.1.1.82 node14
10.1.1.83 node15

其它问题:

mpich3的更多的命令参数可参看官网文档:http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4-userguide.pdf。

在所有的服务器上运行的mpi版本必须一致,否则也会出错。

有时有些问题是由于防火墙导致的,在运行mpi程序时,我们可以关掉防火墙:

关闭防火墙

#service iptables stop

查看防火墙状态

#service iptables status

最新文章

  1. 在 Sublime Text 3 中配置编译和运行 Java 程序
  2. Mysql使用mysqldump按时间导出时的一个注意事项
  3. 敏捷开发方法-Scrum
  4. 关于 fir.im 你可能不知道的实用小工具
  5. 第十二章:window对象
  6. 05 Linux下开发JSP项目(Hello world)
  7. Git diff (---和+++具体解释)
  8. SharePoint 2010 用Event Receiver将文件夹自动变成approved状态 (1)
  9. BarTender 通过ZPL命令操作打印机打印条码, 操作RFID标签
  10. Jmeter性能测试,新手上路篇
  11. js jquery 获取元素(父节点,子节点,兄弟节点),元素筛选
  12. winform登录功能
  13. h5跳转
  14. Jmeter之模拟文件上传、下载接口操作
  15. Nginx完美解决前后端分离端口号不同导致的跨域问题
  16. jquery初级接触-----链式操作
  17. jQuery插件EasyDrag轻松实现JS拖动的效果
  18. Fetch API 接口参考
  19. redis 命令行查看修改配置文件项、配置文件说明
  20. Chrome浏览器控件安装方法

热门文章

  1. ExtJs布局之border
  2. Jenkins+Maven+Git CI环境搭建手册
  3. 李洪强iOS开发之OC[009] -OC无参方法的声明实现和调用
  4. Project Euler P105:Special subset sums: testing 特殊的子集和 检验
  5. iOS App 唤醒另一个App
  6. Linux(CentOS)文件操作命令
  7. ES6入门之set和map
  8. 测试用例生成工具ALLPAIRS(转)
  9. AbsListView.OnScrollListener 使用注意事项
  10. 运行javascript的方式