MPI集群搭建-Ubuntu16.04

本文档详细介绍了如何在Ubuntu16.04上搭建MPI集群,包括配置SSH免秘钥登录,MPI集群的搭建步骤,以及集群测试。首先,通过安装和配置SSH实现节点间的免密登录,接着安装MPICH并进行编译和安装。最后,通过简单的测试验证MPI环境的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一:配置SSH免秘钥登录

1.1 ssh 的安装

ssh分为客户端openssh-client和服务器端openssh-server。首先确认各个节点间是否可以进行ssh登录,为方便说明,我们将节点称为master和slave。ssh user@master_ip,输入密码进行登录,如果显示master拒绝访问,则一般就是master只安装openssh-client,而没有安装openssh-server。可以通过命令:dpkg -l | grep ssh 进行确认。

因为MPI集群里,最好各个节点都可免密登录,所以我们在每个节点上都安装openssh-server。

sudo apt-get install openssh-server

安装之后可再进行ssh登录测试,进行输密码登录。

1.2 host设置

host文件配置可以让我们直接输入计算机名就可以访问主机,可以理解成一个IP和主机名的宏定义。在host文件中添加其他各个节点的IP信息:

sudo vim /etc/hosts

 结果如下所示:

 

1.3 ssh免秘钥登录配置

### 如何在 Ubuntu搭建 MPI 集群 #### 准备工作 对于集群中的每台机器,建议通过虚拟机复制方式快速部署相同配置的操作环境,这能节省大量时间并减少错误发生概率[^1]。 #### 安装必要的软件包 确保所有节点上的操作系统是最新的,并且安装了所需的开发工具和库。可以通过以下命令完成基本的更新与安装操作: ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential libopenmpi-dev openmpi-bin openssh-server nfs-kernel-server nfs-common -y ``` #### 设置无密码 SSH 登录 为了让各个节点之间能够顺利通信,在主节点上生成SSH密钥对并向其他节点分发公钥,从而实现免交互登录功能。 #### 编译安装 PMIx 库 (针对 Slurm 使用场景) 当计划利用 Slurm 调度器管理作业时,则需事先编译好 PMIx 库以便后续支持 srun 启动 MPI 程序[^2]。 #### 测试 MPI 运行状况 编写简单的测试程序验证集群是否正常运作。下面是一个典型的 C++ 版本 Hello World 实例: ```cpp #include <mpi.h> #include <iostream> int main(int argc, char *argv[]) { int rank; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); std::cout << "Hello world from process " << rank << "\n"; MPI_Finalize(); } ``` 保存上述代码至文件 `hello_mpi.cpp` 并执行如下指令进行编译运行: ```bash mpicxx hello_mpi.cpp -o hello_mpi.out mpirun --hostfile hosts.txt ./hello_mpi.out ``` 其中 `hosts.txt` 文件应包含参与计算的所有主机名列表。 #### 自动化挂载远程存储空间(可选) 为了方便数据交换以及资源共享,可以在 `/etc/fstab` 中加入相应条目使得每次开机都能自动连接到指定位置下的网络磁盘资源[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值