编译环境
本次测试使用的
centos7
,因为是使用源码安装,按照道理来讲移植到其他操作系统是没有什么问题的。
- gcc
- make
- automake
- autoconf
- perl
- gcc-c++
- libtool
- openssl-devel
我是用的是centos的最小化安装,自己安装所需要的编译环境
yum install gcc gcc-c++ make automake autoconf perl libtool openssl-devel -y
安装的软件版本
软件名称 | 版本 | 下载地址 |
---|---|---|
openmpi | 4.0.5 | 下载地址 |
ucx | 1.9.0 | 下载地址 |
pmix | 3.1.4 | 下载地址 |
hwloc | 2.3 | 下载地址 |
libevent | 2.1.12 | 下载地址 |
编译过程(因为是测试环境,所以我就不在目录写版本号了)
- hwloc
cd hwloc-2.3.0
./autogen.sh
./configure --prefix=/usr/local/hwloc
make -j install
- libevent
cd libevent-2.1.12
./autogen.sh
./configure --prefix=/usr/local/libevent
make -j install
- ucx
cd ucx-1.9.0
./configure --prefix=/usr/local/ucx --with-mt --disable-numa
make -j install
- pmix
cd pmix-3.1.4
./configure --prefix=/usr/local/pmix3 \
--with-libevent=/usr/local/libevent \
--with-hwloc=/usr/local/hwloc
make -j install
- openmpi
cd openmpi-4.0.5
./configure --prefix=/usr/local/openmpi \
--with-pmix=/usr/local/pmix3 \
--with-ucx=/usr/local/ucx \
--with-hwloc=/usr/local/hwloc \
--with-libevent=/usr/local/libevent
make -j install
初始化运行环境
cat >env.sh <<EOF
#!/bin/bash
UCX=/usr/local/ucx
OPENMPI=/usr/local/openmpi
PMIX3=/usr/local/pmix3
LIBEVENT=/usr/local/libevent
HWLOC=/usr/local/hwloc
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
export PATH=$UCX/bin:$OPENMPI/bin:$PMIX3/bin:$LIBEVENT/bin:$HWLOC/bin:$PATH
export LD_LIBRARY_PATH=$UCX/lib:$OPENMPI/lib:$PMIX3/lib:$LIBEVENT/lib:$HWLOC/lib:$LD_LIBRARY_PATH
export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
EOF
测试
source env.sh
cd openmpi-4.0.5
cd examples
make hello_c
[root@mn0 examples]# mpirun -np 1 ./hello_c
Hello, world, I am 0 of 1, (Open MPI v4.0.5, package: Open MPI root@mn0 Distribution, ident: 4.0.5, repo rev: v4.0.5, Aug 26, 2020, 103)