MPI 学习-环境搭建及测试DEMO
本文演示了如何在二台物理机上通过MPI实现多机通信,为了不破坏系统环境,分别在二台物理机上运行ubuntu22.04容器
1.网络配置
IP | 功能 |
---|---|
192.168.1.100 | NFS服务器 |
192.168.1.101 | 计算节点0 |
192.168.1.102 | 计算节点1 |
2.搭建NFS服务器,用于共享数据,使每个节点看到相同的内容
apt install nfs-kernel-server -y
echo "/mnt/disk/mpi *(rw,sync,no_root_squash,no_subtree_check)" > /etc/exports
service nfs-kernel-server restart
3.基于ubuntu22.04 docker容器,安装依赖(在计算节点上执行)
# 创建容器
mkdir mpi
cd mpi
docker stop mpi
docker rm mpi
docker run -ti --privileged --net=host -v $PWD:/home \
-w /home --name mpi ubuntu:22.04 /bin/bash
docker start mpi
docker exec -ti mpi /bin/bash
# 更新apt源
sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
apt update
# 安装依赖
apt install gcc g++ vim git wget curl unzip make -y
apt install -y pkg-config
apt install -y python3.10
apt install -y python3.10-dev
apt install -y python3-pip
apt install -y libsystemd*
apt install -y libabsl-dev
apt install -y libopencv-dev
apt install -y psmisc
apt install -y openssh-server
apt install -y gdb
apt install -y pciutils
apt install -y nfs-common
apt install -y openmpi-bin openmpi-doc libopenmpi-dev
# 设置ssh端口和密码(为避免跟host sshd冲突,修改了容器里sshd端口)
sed -i 's/^.*PermitRootLogin.*$/PermitRootLogin yes/g' /etc/ssh/sshd_config
sed