帮同事在arm机器上编译 OpenMPI 环境,本文简要记录一下构建过程,其中所有道的 bash 命令适用于 RHEL 8及衍生系统。
首先,安装必要的工具:
dnf install wget cmake python perl git environment-modules glibc-devel
接着,启用 module
命令:
source /etc/profile
由于所需OpenMPI需要由ArmFlang而非gcc编译,因此需要先安装 ArmFlang:
bash <(curl -L https://developer.arm.com/-/media/Files/downloads/hpc/arm-compiler-for-linux/install.sh)
如果你的系统被上述脚本支持,该命令直接会运行安装。否则,需要手动安装:
tar -xf 安装包.tar cd <package_name> bash ./<package_name>.sh -a
更新模块文件配置:
# 可将命令写入到 ~/.bashrc 文件内
export MODULEPATH=$MODULEPATH:/opt/arm/modulefiles
接下来就可以用 module avail
命令查看安装的 ArmFlang 编译器。
我们安装的是 ArmFlang 24.04,以及 GCC 13.2.0,加载这两个模块:
module load acfl/24.04
module load gnu/13.2.0
最后是下载OpenMPI以及编译安装:
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.gz tar -xzf openmpi-4.1.2.tar.gz
cd openmpi-4.1.2 CC=armclang CXX=armclang++ FC=armflang ./configure --prefix=/opt/openmpi make -j8 make install
一切顺利的话,使用 ArmFlang 编译的 OpenMPI 程序就构建好了。