ubuntu22.04编译安装hwloc/libevent/ucx/openpmix/openmpi

之前记录过一个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/libevent
mkdir -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是Unified Communication X的简称,主要提供RDMA通信的高级API以加速应用开发,在隐藏底层细节的同时还实现了一些优化和最佳实践以保持高性能和可扩展。

下载地址:https://github.com/openucx/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/openpmix
mkdir -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

评论列表