CentOS7であれこれを動かす

Published: Apr 15, 2022 by Emi Minamitani

年度末に研究室の一番ノード数が多いシステムをようやくCentOS7にした。 (作業自体はベンダーさんにしてもらった。) それまで化石のようなCentOS6を使っていたのだ。 計算機用途だと兎に角安定して動いていてほしいので、 OS更新をひたすら延ばし伸ばしにしていたのだが、 C++周りとかpython関係で、限界OS感がすごくてどうしようもなくなったので、ようやく乗り換えた。 乗り換えた先も8ではなく7である。なので、いろいろなもののバージョンが旧い。

gcc

gcc-4がデフォルトなので、いろんなもののコンパイルでコケる。 Fortranの数値計算コードも開発が続いているものは、最近の言語仕様を使ってたりして、gfortran 4.5ではコンパイルが通らないことがあった。 (配列に関する新しい言語仕様が出ているらしい)

gccはOSの中に組み込まれているので、デフォルトのを変えようとすると、 とんでもないトラブルが起きることがあるようなので、 コンパイラを一時的に切り替える devtoolsetを使うことにした。

devtoolset-7を入れる手順がこれ。 devtoolset-7の導入方法

git

gitもgit.1.8.Xとかめっちゃ旧い。しかもyumではこれ以上に新しいものが入らない。

以下のリンクのような、yumで2.24とかを入れる方法もあるのだが、プログラム側の問題かもしれないが、 この方法で入るバージョンのgitでは、自分が使いたいものの導入がうまく行かなかった。

yumでCentOS7のgitを更新

なので、これを一旦消して、version 2.9.5を指定してソースからコンパイルした。 (ちなみに、上のリンクで書いてある方法で入れたgit 2.24.Xは yum remove git では消えない。内部で管理されている名称がgit224なので、 yum remove git224 git224-core とする必要がある。これがわからなくて数十分苦戦した。)

wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz .
tar -zxvf git-2.9.5.tar.gz
cd git-2.9.5/
make prefix=/usr/local all
make prefix=/usr/local install

こんな感じ。最後にgit --versionで確認する。

あまり考えたくないが、また自力でgitのバージョンを上げるときはこのあたりを参考にすれば良さそう。 Qiita記事

やりたかったこと

このめんどくさいあれこれをなぜやっていたかというと、LAMMPS中で、機械学習ポテンシャルを使ってMDを動かせるパッケージ、QUIPを導入したかったからだ。 cmakeの不思議な仕様だかなんだかわからないが、intel compilerを使ったときはうまく行かなかった。 GNUコンパイラーならなんとかなりそうだったが、CentOS7のデフォルトの旧いバージョンのコンパイラではうまく行かずあれこれ試したのが上の作業である。

せっかくなので、QUIP+LAMMPSの場合のcmakeオプションをメモしておこうと思う。 pythonと組み合わせたかったので、python関係のオプションも入れている。

python3 -m venv .venv
export VIRTUAL_ENV=$PWD/.venv
git clone -b release https://github.com/lammps/lammps.git .
mkdir build
cd build
cmake -C ../cmake/presets/basic.cmake  -D CMAKE_INSTALL_PREFIX=$VIRTUAL_ENV -D PKG_MOLECULE=on -D WITH_PNG=yes -D WITH_JPEG=yes  -D BUILD_SHARED_LIBS=on -D BUILD_MPI=yes -D PKG_MPI=on -D LAMMPS_EXCEPTIONS=on -D PKG_PYTHON=on -D PKG_MANYBODY=on -D PKG_MPIIO=on -D PKG_PHONON=on -D PKG_ML-QUIP=yes -D DOWNLOAD_QUIP=yes ../cmake
cmake --build .
cmake --install .
make install-python

これでひとまずGAPポテンシャルを試せるようになったので、使って見ようと思う。

追記 HomCloudインストールメモ

CentOS7でも、上で設定したdevtoolset-7を使うことで、 パーシステントホモロジー解析のpythonパッケージ、HomCloudをインストールできる。CGALboostをdevtoolset-7の状態で入れるのがポイントなようだ。備忘録でやった作業を残しておく。

scl enable devtoolset-7 bash
  1. CGALをソースコンパイルする
     wget https://github.com/CGAL/cgal/releases/download/v5.3.1/CGAL-5.3.1.zip
    unzip CGAL-5.3.1.zip
    cd CGAL-5.3.1/
    su
    cmake .
    make install
    
  2. boostをソースコンパイルする
    wget https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.gz
    tar zxvf boost_1_79_0.tar.gz
    cd boost_1_79_0/
    ./bootstrap.sh
    su
    ./b2 install
    

    boostは/usr/local/libにインストールされるので、そこにパスを通す。 自分の場合は.bashrcで

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    

    を入れている。

  3. 仮想環境の起動 & HomCloud install
    source $HOME/.venv/bin/activate
    pip3 install numpy
    pip3 install homcloud
    

Share

Latest Posts

公式ページ

 新研究室の公式ページ作りました

異動と新年度

 いまさらですが異動の報告

トポロジカルデータ解析と熱伝導率

 ようやく出版