概述
当【并行计算】涉及多个实例(实例数大于 1)时,实例间需通过网络协议实现数据交互;而在下发任务前,需确保运行环境已适配对应框架的通信协议,否则任务将无法正确运行。
框架适配
MPI框架
MPI 程序的运行依赖 “启动器”(如mpirun、mpiexec、srun等),其核心任务是在分布式节点(多台计算机)上启动多个 MPI 进程(每个进程对应一个rank),并将它们纳入同一个通信子(如MPI_COMM_WORLD)。
要在远程节点上启动进程,启动器需要远程登录到目标节点并执行命令(例如启动mpiexec分配的子进程)。此时,SSH 作为标准的远程登录与命令执行工具,为这一过程提供支持。
因此,使用MPI框架时,需确保运行环境中已安装好SSH服务端并且配置当前环境的SSH免密访问。
您可以直接使用科研助手预置的MPI基础环境镜像,简化配置流程:
ehub.ctcdn.cn/esx-batchcom/mpi-base:v1如需手动部署环境,请执行以下步骤:
#安装SSH服务端和客户端
apt-get update
apt install -y --no-install-recommends \
openssh-server \
openssh-client \
libcap2-bin \
&& rm -rf /var/lib/apt/lists/*
sed -i "s/[ #]\(.*StrictHostKeyChecking \).*/ \1no/g" /etc/ssh/ssh_config \
&& echo " UserKnownHostsFile /dev/null" >> /etc/ssh/ssh_config \
&& sed -i "s/[ #]\(.*Port \).*/ \1$2222/g" /etc/ssh/ssh_config \
&& sed -i "s/#\(StrictModes \).*/\1no/g" /etc/ssh/sshd_config \
&& sed -i "s/#\(Port \).*/\1$2222/g" /etc/ssh/sshd_config
echo "Port 2222" >> /home/batchcom/.sshd_config
#配置免密
ssh-keygen -t rsa -N '' -f /home/batchcom/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#用于解析多实例hostname的IP地址
sudo apt install -y dnsutilsMPI框架+IB网络
在使用 MPI 进行多机多卡并行计算时,建议优先采用 InfiniBand(IB)网络以提升多机协同的加速比。尤其对于涉及大量跨节点数据交换的任务,若未使用 IB 网络,其通信瓶颈可能导致多机集群的性能反而不及单机,无法充分发挥并行计算的优势。
MPI(如 OpenMPI、MPICH 等实现)支持 IB 网络的方式多样,以下以 UCX 作为通信后端为例,说明相关依赖的安装步骤:
# 安装IBverbs相关依赖(提供IB硬件访问支持)
sudo apt update && sudo apt install -y ibverbs-providers libibumad3 libibverbs1 libnl-3-200 libnl-route-3-200 librdmacm1
# 安装UCX(高性能通信框架,适配IB与MPI)
wget https://jiangsu-10.zos.ctyun.cn/bucket-7262/ucx-1.18.1-rc3.deb && sudo dpkg -i ucx-1.18.1-rc3.deb注意:以上仅为 MPI 基于 UCX+IB 的依赖安装流程,需确保 MPI 本身已编译并集成 UCX 和 OpenIB 模块(例如 OpenMPI 可通过以下命令检查):
ompi_info | grep ucx
ompi_info | grep openib
# 若返回空内容,说明未编译相关模块,需重新编译MPI并启用对应功能此外,也可直接使用研助手预置的 OpenMPI+UCX+IB 网络运行环境镜像,简化配置流程:
ehub.ctcdn.cn/esx-batchcom/openmpi-ib:v1
PyTorch框架+IB网络
与 MPI(如 OpenMPI、MPICH 等实现)相比,PyTorch 的分布式通信默认采用 TCP 协议,其通信过程不依赖 SSH 服务端;而在大规模训练场景中,借助 InfiniBand(IB)网络,PyTorch 的节点间 AllReduce 可显著提升吞吐量。
因此,在使用 PyTorch 执行多机多卡任务时,若需借助 IB 网络优化通信性能,可预先安装 IB 相关依赖。
您可直接使用科研助手预置的 PyTorch+IB 网络运行环境镜像,简化配置流程:
ehub-bc.ctcdn.cn/esx-batchcom/jupyter-pytorch2.3.1-cuda12.1-cudnn8:ib如需手动部署环境,可执行以下步骤安装 IB 基础依赖:
apt-get update && apt-get install -y --reinstall libibverbs1 ibverbs-providers rdma-core ibverbs-utils libibverbs-dev libibumad-dev