研究を始めたての4年生〜大学院生向けにLinux (CentOS7)での並列計算環境構築についてまとめる。
この記事ではIntel Fortranで並列版HDF5をソースからビルド(コンパイル)します。もちろん、Intel Cコンパイラも動きます。
余裕があるときに行ってください。3-4時間作業は覚悟!
(追記) Windows10 Linux Subsystem UbuntuではaptでIntelOneAPIをインストールできるが、HDF5をビルドするときに改行コードの問題でconfigureでエラーが出て通らないので、工夫する必要がある(調査中)。
とりあえず、簡単に並列環境(gfortran + MPI + parallel HDF5)を構築するならば、以下でOK (Ubuntu用).
$ sudo apt install mpich libhdf5-mpich-dev
base toolkit と HPC toolkit のダウンロードとインストール
こちらの記事を参考に頑張る(1時間位かかる)。(インストール方法は Web & localで良い。)
出くわしたトラブルと対処については以下のようにメモを残しておくので、参考にしてください。
nss.x86_64, nss-devel.x86_64を探してインストール.
まだ,nssライブラリがないと言われるが無視してインストールを継続
GPUを使うにはOpenCVなどのインストールが必要だそうだが,時間がかかりそうなのでスキップ.
$source /opt/intel/oneapi/setvars.sh
でIntelの環境を読み込んだあとに
$which mpiifort
でmpiifortへのパスが通っているところまで確認して以下へお進みください。
parallel HDF5を自分でコンパイルしてIntel 環境で利用する
HDF5 source codeを以下からダウンロード
https://www.hdfgroup.org/downloads/hdf5/source-code/
解凍する
tar zxvf hdf5-1.12.1.tar.gz
解凍フォルダへ移動
cd hdf5-1.12.1
インストールフォルダの指定, オプションを設定
$./configure --prefix=/opt/hdf5-1.12.1_oneAPI --enable-shared --enable-fortran --enable-parallel CC=mpiicc FC=mpiifort
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
というエラーには$sudo yum install gcc-c++
$make
makeには時間がかかるので5分くらい放置
インストールをsuで行い、他のユーザーも利用できるようにする。
$su -
rootになってから mpiへのパスを通っているかを確認しておく.
rootでパスが通ってなければ、ライブラリのリンクに失敗するので、rootになった後でも
$source /opt/intel/oneapi/setvars.sh
$make install
うまくいかない場合は、/opt/hdf5-1.** のフォルダを消して再度やり直す。
やり直す場合は、
./configure
の前に$make clean
をしてから。hdf5-1.**/binへのパスを.bashrcに書いてしまっていたらパスを元に戻してターミナルを再起動してやり直す。
.bashrc
にパスの設定を書く
最後に、パスの設定
export PATH="/opt/hdf5-1.12.1_oneAPI/bin/:$PATH"
これで完了です。
$ which h5pfc
で確認。
intel のコンパイルオプション-xCORE-AVX512
が使えたらOK.