0
0

More than 3 years have passed since last update.

ルート権限の無いCentOSにOpenMPIを野良ビルドする

Last updated at Posted at 2020-08-10

はじめに

root権限の無いCentOS7.3&GCC-4.8.5の環境に野良ビルドしたGCC-9.3.0を基に,次はOpenMPI-3.1.6を構築してみたいと思います。

準備

OpenMPIとlibpciaccessを以下からダウンロードしておきます。

https://github.com/freedesktop/xorg-libpciaccess
https://www.open-mpi.org/

今回用いたバージョンは,libpciaccess-0.13.5,openmpi-3.1.6です。
私の環境では,ファイル操作用1つ,計算用2つの計3つのログインノードがありますが,計算用のログインノードでOpenMPIをビルドするとOmni-Pathが有効になるようです。また,計算用にはGPUもあるようです。詳しいことは良くわかりませんが,事前にlibpciaccessをビルドしておくと,OpenMPIのCUDAも有効にしてビルドできました。

libpciaccessのビルドとインストール

前回のGCC-9.3.0と同様に,$HOME/toolsにインストールを行います。

tar xfv libpciaccess-0.13.5.tar.bz2
mv libpciaccess-0.13.5 ~/tools/pciaccess_work
cd ~/tools/pciaccess_work
mkdir build
cd build
../configure --prefix=$HOME/tools/libpciaccess-0.13.5 CC=$HOME/bin/gcc93 CXX=$HOME/bin/g++93
make -j 12
make install

インストール完了後,.bash_profileに以下を追記します。

export PKG_CONFIG_PATH=$HOME/tools/libpciaccess-0.13.5/lib/pkgconfig:$PKG_CONFIG_PATH

OpenMPIのビルドとインストール

次に,OpenMPIも,$HOME/toolsにインストールを行います。"--with-cuda"オプションを設定してみました。

tar xjf openmpi-3.1.6.tar.bz2
mv openmpi-3.1.6 openmpi_work
cd openmpi_work
mkdir build
cd build
../configure --prefix=$HOME/tools/openmpi-3.1.6-gcc93 CC=$HOME/tools/gcc-9.3.0/bin/gcc CXX=$HOME/tools/gcc-9.3.0/bin/g++ F77=$HOME/tools/gcc-9.3.0/bin/gfortran FC=$HOME/tools/gcc-9.3.0/bin/gfortran LDFLAGS="-L$HOME/tools/gcc-9.3.0/lib64" CPPFLAGS="-I$HOME/tools/gcc-9.3.0/include" --with-cuda
make –j 48
make install

なお,configure完了後のメッセージは以下でした。よくわからないですが,ビルドは最後までできたので問題無いのではと思います。

Open MPI configuration:
-----------------------
Version: 3.1.6
Build MPI C bindings: yes
Build MPI C++ bindings (deprecated): no
Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08
MPI Build Java bindings (experimental): no
Build Open SHMEM support: yes
Debug build: no
Platform file: (none)

Miscellaneous
-----------------------
CUDA support: yes
PMIx support: internal

Transports
-----------------------
Cisco usNIC: yes
Cray uGNI (Gemini/Aries): no
Intel Omnipath (PSM2): yes
Intel SCIF: no
Intel TrueScale (PSM): yes
Mellanox MXM: no
Open UCX: no
OpenFabrics OFI Libfabric: yes
OpenFabrics Verbs: yes
Portals4: no
Shared memory/copy in+copy out: yes
Shared memory/Linux CMA: yes
Shared memory/Linux KNEM: no
Shared memory/XPMEM: no
TCP: yes

Resource Managers
-----------------------
Cray Alps: no
Grid Engine: no
LSF: no
Moab: no
Slurm: yes
ssh/rsh: yes
Torque: yes

OMPIO File Systems
-----------------------
Generic Unix FS: yes
Lustre: no
PVFS2/OrangeFS: no

インストール完了後,以下を.bash_profileに以下を追記しました。

MPIROOT=$HOME/tools/openmpi-3.1.6-gcc93
PATH=$MPIROOT/bin:$PATH
LD_LIBRARY_PATH=$MPIROOT/lib:$LD_LIBRARY_PATH
MANPATH=$MPIROOT/share/man:$MANPATH
export MPIROOT PATH LD_LIBRARY_PATH MANPATH

以上で,GCC-9.3.0ベースのC,C++,FortranのOpenMPIができました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0