阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux虚拟机中配置多节点MPI实现并行计算完整版

143次阅读
没有评论

共计 2185 个字符,预计需要花费 6 分钟才能阅读完成。

虚拟机 CentOS 中配置 MPI 多节点并行计算完整版,这是一个新手教程,从一个空白的 CentOS 到能正常运行的基础环境,尽量详细写了每个步骤

我的环境如下:

宿主机:Windows 10 Pro

虚拟机:VMware 12 + CentOS 6.6

一、虚拟机网络配置实现多节点互访

硬件资源有限,所以我只开了两台虚拟机均为 Centos 6.6。

1.修改网卡配置文件

/etc/sysconfig/network-scripts/ifcfg-eth0 将其中内容修改如下:

DEVICE=eth0
HWADDR=00:0C:29:A0:3A:CA
TYPE=Ethernet
UUID=bf583745-f834-451c-890c-39821a590543
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.207.128
NETMASK=255.255.255.0
DNS1=192.168.207.2

将每一台虚拟机都如此配置,IPADDR 是 ip 地址,不要重复

2.修改网关及主机名

/etc/sysconfig/network
 
ETWORKING=yes
HOSTNAME=node1
NTPSERVERARGS=iburst
GATEWAY=192.168.207.2

一些文章中提到还需要修改 VMware 的设置(关闭本地 DHCP 服务),实际上,Centos 中设置好后就不需要动 VMware 的设置了

二、在虚拟机中添加同名用户

在不同节点中需要有同名的用户以方便免密码 SSH 连接

node1 和 node2 中以 root 用户执行下列命令
 
# useradd mpiuser

三、实现免密码 SSH 登陆

当前节点为 node1,用户为 mpiuser,工作目录为 ~ 家目录

1.生成 SSH 私钥对

$ ssh-keygen -t rsa 一路回车就好

2.进入 .ssh 目录

$ cd ./.ssh

3.生成 authorized_keys 文件

$ cp id_rsa.pub authorized_keys

4.回到 mpiuser 的家目录

$ cd ~

5.建立本身的信任连接

$ ssh node1
 
6.设置 node2

$ ssh-keygen -t rsa 生成.ssh 文件夹
$ scp node1:~/.ssh/* ./ 拷贝 node1 上的.ssh 文件夹到 node2
# scp node1:/etc/hosts /etc/hosts 拷贝 node1 上的 hosts 文件到 node2,可能需要 root 权限
$ ssh node2
$ ssh node1

7.如果还有其他节点,设置方法同 node2

设置成功后,在任意节点执行 SSH 连接其他节点都不需要密码,注意必需每个节点都有 mpiuser 这个用户,之所以使用一个普通用户,是为了避免 root 执行 mpi 程序时遇到风险。在一些 mpi 实现中,也不允许以 root 用户执行。

四、配置 MPI 运行环境

1. 下载 mpich

官方网站 http://www.mpich.org 下载其中的 mpich-3.2.tar.gz

2. 解压并进入目录

# tar xvf mpich-3.2.tar.gz
# cd mpich-3.2
# ./configure –prefix=/usr/local/mpich
# make
# make install

3. 设置环境变量,修改 /etc/profile,加入下面几行代码

PATH=$PATH:/usr/local/mpich/bin
MANPATH=$MANPATH:/usr/local/mpich/man
export PATH MANPATH

4. 使刚刚的修改生效

# source /etc/profile

5. mpi 多节点配置

新建一个配置文件

# touch /usr/local/mpich/servers

修改其中内容为:

node1:2 #在 node1 上运行两个进程
node2:2

如果有多个节点继续往下写

五、单节点测试

将源码包中的 examples 拷贝到 mpich 的安装目录

# cp -r ./examples /usr/local/mpich/

用示例程序进行测试

$ mpirun -np 4 /usr/local/mpich/examples/cpi
Process 1 of 4 is on node1
Process 0 of 4 is on node1
Process 3 of 4 is on node1
Process 2 of 4 is on node1
pi is approximately 3.1415926544231239, Error is 0.0000000008333307
wall clock time = 0.081049

得到如图的回显结果证明 mpich 的运行环境正常

六、多节点测试

$ mpiexec -np 4 -f /usr/local/mpich/servers /usr/local/mpich/examples/cpi
Process 1 of 4 is on node1
Process 0 of 4 is on node1
Process 3 of 4 is on node2
Process 2 of 4 is on node2
pi is approximately 3.1415926544231239, Error is 0.0000000008333307
wall clock time = 0.139722

如上,在两个节点上分别运行了两个进程,配置过程到此结束

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-09/135483.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2185字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中