1 修改hosts文件,每个node计算机都要改
$sudo gedit /etc/hosts:
127.0.0.1 localhost
192.168.1.1 node1 server
192.168.1.2 node2
2. 安装NFS文件系统和共享目录
在主机和从机都需要执行以下命令
sudo apt-get install nfs-kernel-server nfs-common
根目录下:
sudo mkdir /mirror
sudo chown node:node /mirror
主节点:
sudo gedit /etc/exports :
最后两行添加:
/mirror node1(rw,sync)
/mirror node2(rw,sync)
然后
$sudo /etc/init.d/nfs-kernel-server restart
从节点:
$sudo mount node1:/mirror /mirror #这里是命令行挂载共享目录
或 :
经过第二步,/mirror文件的文件在节点间能够共享权限,可相互编辑相互更改和删除。sudo gedit /etc/fstab 在末尾添加
node0:/mirror /mirror nfs rw, async, auto, exec, nouser, suid 0 0 ##这里是在配置文件下挂载共享目录
3. ssh无密码互通,每个node计算机都要执行
$ssh-keygen-t rsa #生成公钥和密钥
一路回车生成.ssh/id_rsa等文件
在node1节点上
cd .ssh cat id_rsa.pub >>authorized_keys
将authorized_keys发送到node2节点的.ssh文件夹(可通过文件共享实现)或如下:
scp authorized_keys node2:/home/cluster/.ssh #cluster指cluster@node1:/mirror/mpich-3.1/examples$
ssh-add~/.ssh/id_rsa #这一步很重要,以前实现ssh互访是不需要这一步的
在node2上
将id_rsa.pub内容复制到copy过来的authorized_keys
scp authorized_keys node1:/home/cluster/.ssh
ssh-add~/.ssh/id_rsa #这一步很重要
完毕。
实现ssh无密码访问需要关闭防火墙:sudo ufw disable
~# mpiexec -n 6 -machinefile ~/machinefile ~/mpich-3.1/examples/cpi # ~/machinefile指上面创建的 machinefile 的文件路径4. mpich3的安装与配置到网站http://www.openssl.org/source/下载安装包***.tar.gzcd /mirrormkidr mpich3tar zxvf mpich-3.1.tar.gz./configure --prefix=/mirror/mpich3 --disable-f77 --disable-fc 2>&1 | tee c.txt --disable-f77 --disable-fc是为了禁止fortran,否则安装会出问题,会导致MPICH2安装不完全而出错,所以这里建议不用的选上。 make 2>&1 | tee m.txt make install 2>&1 | tee mi.txt
sudo gedit .bashrc #配置环境
在最后面添加:export PATH=/mirror/mpich3/bin:$PATH
souce .bashrc
配置多台集群需要创建machinefile文档 (可在任意目录下),文档内容为各台计算机的节点名,一行一个节点名。如:
node1
node2
node3
5. 运行测试程序
有如下类似输出则说明平台搭建成功了
Process 2 of 6 is on node1
Process 5 of 6 is on node1
Process 0 of 6 is on node2
Process 3 of 6 is on node2
Process 1 of 6 is on node3
Process 4 of 6 is on node3
pi is approximately 3.1415926544231243, Error is 0.0000000008333312
wall clock time = 0.001908