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では、自分が使いたいものの導入がうまく行かなかった。
なので、これを一旦消して、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
をインストールできる。CGAL
とboost
をdevtoolset-7の状態で入れるのがポイントなようだ。備忘録でやった作業を残しておく。
scl enable devtoolset-7 bash
- 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
- 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
を入れている。
- 仮想環境の起動 & HomCloud install
source $HOME/.venv/bin/activate pip3 install numpy pip3 install homcloud