集群机器搭建多节点MPI运行环境

tech2025-12-15  2

1、各个节点安装MPI:

https://blog.csdn.net/liu_feng_zi_/article/details/94286438

2、软硬件环境:

1、节点:

3个节点:node1,node2,node3

2、系统

操作系统:Centos 7

3、多节点配置

1、host配置:

通过下面命令打开host文件 vim /etc/hosts 在每个节点的host文件内添加ip地址和主机名,例如: 10.10.1.12 node1 10.10.1.56 node2 10.10.1.23 node3 执行一下host文件 source /etc/hosts

配置成功后,可以使用ping来测试是否修改成功

2、配置节点间ssh免密登录

以node1和node2为例

1、ssh登录到node1,生成公钥,并发送给node2节点

cd ~/.ssh/ ssh-keygen -t rsa # 直接回车 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

2、ssh登录到node2,执行相同的操作,并将产生的公钥发送给node1

cd ~/.ssh/ ssh-keygen -t rsa scp ./id_rsa.pub node1:~/.ssh/node2_id_rsa.pub#避免名字重复加上对应节点的前缀

3、在node1节点,将发送过来的公钥追加到authorized_keys

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

4、修改文件权限并将authorized_keys文件发送给node2节点

chmod 600 ~/.ssh/authorized_keys #可能有时不修改也不影响无密登录但还是建议修改 scp ./authorized_keys node2:~/.ssh/authorized_keys

5、把"~/.ssh/"目录下的"node1_id_rsa.pub"等文件删除掉

rm ~/.ssh/node2_id_rsa.pub

6、验证ssh无密登录

3、MPI多节点执行

mpi可以多节点执行,但是需要保证在每个节点上的相同路径下都有可执行文件,所以每次都要把可执行文件进行远程拷贝

1、新建一个执行文件host,文件内容如下,表示每个节点执行3个进程

node1:3 node2:3 node3:3

 2、执行mpi文件

mpic++ test.cpp -o mpi #编译 scp ./mpi node2:/home/mpi #拷贝可执行程序到node2同路径下 scp ./mpi node3:/home/mpi #拷贝可执行程序到node3同路径下 mpirun -f host -n 9 ./mpi

4、配置NFS共享目录安装配置

服务端:node1

服务端:node2、node3

4.1 服务端配置

1、查看是否已经安装nfs

rpm -qa |grep nfs

2、没有安装则进行安装

yum -y install nfs-utils rpcbind

3、创建共享目录,一般在根目录下进行创建

mkdir /mpi

4、配置/etc/exports

vim /etc/exports /mpi 10.10.1.56(rw,sync,root_squash) /mpi 10.10.1.23(rw,sync,root_squash)

5、启动服务并设置开机启动

service rpcbind start service nfs start chkconfig --level 2345 rpcbind on chkconfig --level 2345 nfs on

4.2 客户端配置

1、查看是否安装nfs,没有则进行安装

2、查看服务端共享目录

showmount -e 10.10.1.12

若出现错误,可参考 这篇文章:

https://blog.csdn.net/liu_feng_zi_/article/details/108405064

3、挂载共享目录到本地,并测试

mount -t nfs 10.10.1.12:/mpi /mpi cd /mpi && touch test

4、设置开机自动挂载

vim /etc/fstab 10.10.1.12:/mpi /mpi nfs defaults 0 0

 

 

最新回复(0)