ubuntu下mpich的安装与使用

在Ubuntu下安装mpich

1、安装mpich

在装之前,请确保以下软件都已经安装

$ gcc --version 
$ g++ --version 
$ python --version

如果缺少相应的软件,先安装。
安装好以后,即可进入用以下命令安装mpich

$ sudo apt-get install mpich

等待安装完成后,测试安装结果

$ which mpicc
$ which mpiexec

到这里,单机下的已经安装完毕,如果想实现真正多机运行,可按后面的步骤继续配置。

2、配置多环运行环境

这里假设有两台处于同一网络的主机master和slave
1、安装ssh

sudo apt-get install ssh

2、修改各自的主机名称

sudo vim /etc/hostname

在打开的文件中分别输入主机名保存即可,我设置的两台主机名称分别为:master和slave。设置完后重启机器。
3、分别配置两台机器的hosts文件
到这里需要确定主机的IP地址,如果主机采用dhcp方式,则每次启动时Ip地址可能会改变,如果采用静态IP的方式,则可以固定主机IP地址。在配置好hosts文件以后,如果重启主机以后IP地址发生改变,则需要重新修改hosts文件。这里采用设置静态IP的方式,设置方式参考:http://blog.csdn.net/wanna_wsl/article/details/70740114
两台主机的IP地址为:
master:192.168.0.100
slave : 192.168.0.101
修改两台主机的hosts文件

sudo vim /etc/hosts

修改文件内容为:

192.168.0.100 master
192.168.0.101 slave

两台主机的hosts文件相同
4、设置两台主机root的密码,接下来会用到

passwd root

5、设置ssh允许root登录

$ sudo vim /etc/ssh/sshd_config

找到PermitRootLogin no一行,改为PermitRootLogin yes
重启 openssh server

$ sudo service ssh restart

6、配置ssh使两台机器可以无需密码互相访问
在master上(slave同理)通过ssh-keygen指令生产公钥和私钥:

ssh-keygen -t rsa

在输入过程中需要输入参数,一直按回车即可。
结束后,cd到 ~/.ssh目录,ls一下即可看到产生的公钥(id_rsa.pub)和私钥(id_rsa):

cd ~/.ssh
ls

看到有id_rsa 和 id_rsa.pub文件
接下来通过两台机器的公钥(id_rsa.pub)来制作授权文件(authorized_keys)。
将slave的公钥传送到master中(并重命名为rsa_from_slave.pub),来制作授权文件。
在slave的终端输入:

scp ~/.ssh/id_rsa.pub master:~/.ssh/rsa_from_slave.pub

在传输期间需要输入master的密码,输入之前设置好的密码即可。
传输完成后,在master的~/.ssh/id_rsa.pub目录下ls一下即可看到传入的文件rsa_from_slave.pub。
将master的公钥另复制一份并且重命名为authorized_keys,在master的~/.ssh/目录下输入:

cp ~/.ssh/id_rsa.pub authorized_keys

将rsa_from_slave.pub添加到authorized_keys从而完成authorized_keys的制作

cat ~/.ssh/rsa_from_slave.pub >> authorized_keys

然后将在master上制作好的authorized_keys发送一份给slaves

scp ~/.ssh/authorized_keys slave:~/.ssh/

最后,为了要让两台机器之间无密码访问,需要设置公钥、私钥和授权文件的权限(两台机器都要设置)

chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pubpub

权限设置完毕后,两台机器就可以不需密码互相访问了,在master上输入指令:

ssh slave

可以看到,master不需输入密码就能访问到slave。通过exit指令返回到master。
至此,MPICH的安装工作以及多机环境配置工作全部完成,接下来就可以多机之间运行MPI程序了。

3、多机之间运行MPI程序

首先,在home根目录(也可以是其他目录)下新建一个文件:mpi_config_file。
mpi_config_file是在运行MPI程序时参考的配置文件,它显式注明每台机器各有几个CPU核。

cd /home
touch mpi_config_file

接下来在每台机器上查看各自的CPU核数:
lscpu
编辑mpi_config_file:

sudo gedit mpi_config_file

因为我的两台板子的CPU核数均为2,所以在mpi_config_file中输入一下内容并保存:

master:2
slave:2

接下来就可以找一个MPI程序在多机之间运行了
在我们之前解压的mpi-3.2文件夹下的examples目录下就有现成的可执行程序:cpi,我们运行它:

cd /home/mpi_install/mpich-3.2/examples
mpiexec -n 8 -f /home/mpi_config_file ./cpi

注: 参数-n 8表示改程序分将拆分为8个并行过程执行
参数-f /home/mpi_config_file 表示运行过程参考配置文件mpi_config_file
屏幕上显示运行结果:
Process 4 of 8 is on master
Process 5 of 8 is on master
Process 2 of 8 is on slave
Process 0 of 8 is on master
Process 3 of 8 is on slave
Process 6 of 8 is on slave
Process 7 of 8 is on master
Process 1 of 8 is on slave
表示运行成功。

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值