之前记录过一个centos下编译安装openmpi,具体可以查看这个笔记:https://sulao.cn/post/987,目前在测试集群中设计到GPU和IB网卡,所以我们编译openmpi需要带上CUDA相关参数和一些通信方面可以优化的组件,所以此次编译时我们带上了hwloc/libevent/ucx/openpmix这些,还有注意编译顺序,最后编译openmpi,倒数第二个编译openpmix。
以下是编译过程,记录方便后面使用
1.编译hwloc
hwloc是一个开源项目,旨在简化并行架构中硬件资源的发现过程。它提供了命令行工具和 C API,用于查询这些资源、它们的局部性、属性和互连关系。
hwloc 主要面向高性能计算 (HPC) 应用,但也适用于任何希望在现代计算平台上利用代码和/或数据局部性的项目。
下载地址:https://github.com/open-mpi/hwloc
mkdir -p /use/local/hwloc
wget https://download.open-mpi.org/release/hwloc/v2.12/hwloc-2.12.1.tar.gz
tar -zxvf hwloc-2.12.1.tar.gz
cd hwloc-2.12.1
./autogen.sh
./configure --prefix=/usr/local/hwloc
make -j$(nproc)
make install
2.编译libevent
libevent 是一个用 C 语言编写的轻量级、高性能的事件通知库,广泛应用于服务器开发中。它支持多种 I/O 多路复用技术,如 epoll、poll、select、kqueue 等
下载地址:https://github.com/libevent/libeventmkdir -p /usr/local/libevent
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar -zxvf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable
./configure --prefix=/usr/local/libevent
make -j$(nproc)
make install
3.编译ucx
UCX
mkdir -p /usr/local/ucx
wget https://github.com/openucx/ucx/releases/download/v1.18.1/ucx-1.18.1.tar.gz
tar -zxvf ucx-1.18.1.tar.gz
cd ucx-1.18.1
./configure --prefix=/usr/local/ucx --with-mt --disable-numa
make -j$(nproc)
make install
4.编译openpmix
OpenPMIx 是一个开源项目,旨在提供一个可扩展的、高性能的消息传递接口(PMI)库,用于支持大规模并行计算环境。OpenPMIx 项目的目标是为开发者提供一个统一的接口,以便在不同的并行计算框架中实现高效的消息传递和资源管理。
下载地址:https://github.com/openpmix/openpmixmkdir -p /usr/local/pmix
wget https://github.com/openpmix/openpmix/releases/download/v5.0.8/pmix-5.0.8.tar.gz
tar -zxvf pmix-5.0.8.tar.gz
cd pmix-5.0.8
./configure --prefix=/usr/local/pmix \
--with-libevent=/usr/local/libevent \
--with-hwloc=/usr/local/hwloc
make -j$(nproc)
make install
5.编译openmpi
OpenMPI是一个开源的消息传递接口(Message Passing Interface,MPI)的实现,用于并行计算。它允许多个计算节点之间进行通信和数据交换,从而实现分布式计算。
下载地址:https://www.open-mpi.org/software/ompi/v5.0/mkdir -p /usr/local/openmpi
wget https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-5.0.8.tar.gz
tar -zxvf openmpi-5.0.8.tar.gz
cd openmpi-5.0.8
./configure --prefix=/usr/local/openmpi \
--with-pmix=/usr/local/pmix \
--with-ucx=/usr/local/ucx \
--with-hwloc=/usr/local/hwloc \
--with-libevent=/usr/local/libevent \
--with-cuda=/usr/local/cuda-12.1 \
--enable-mca-no-build=btl-uct
make -j$(nproc)
make install
编译openmpi时如果需要slurm支持,编译时可以添加--with-slurm参数
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/1066
评论列表