自宅PC（GPU有）にGROMACSをインストール

#はじめに
* 中古で買ったデスクトップPCにGROMACSをインストールする。
* グラフィックボードのせいか、CentOSのインストールに苦労してしまった。

#PC構成
CPU：Intel Core i7-4770
グラフィックボード：Nvidia GeForce GTX1650
メモリ：16GB
外付けSSD:240GB
※もともとはWindowsPCのため、外付けSSDにCentOSをインストールする

#CentOS7のインストール

##下準備

* インストールメディアの作成
* PCシャットダウンし、（電源ケーブルを抜いた後、）WindowsをインストールしているSSDのコネクタを引き抜く

##インストール中に出くわしたエラー
普通にインストールメディアからインストールしようとすると、

```
can't evaluate _CRS: 12311
A TPM error (7) occurredattempting to read a pcr value
```

のような表示になり、動作がストップする。
NvidiaのGPUが入っていることが原因なのか、苦しんだ。

##うまくいった方法
結論としては、以下を参考にセットアップすることで無事インストールできた。

https://sikeda107.hatenablog.jp/entry/2018/08/23/053122

このとき、CUDA Driver, CUDA Toolkitもインストールしている。
なお、CUDA Toolkitのバージョンは__10.2__を選択した。

デスクトップ環境はMATEではなくGNOMEをインストールした。
デフォルトはCUI環境にしておき、必要に応じて__startx__でGUIに切り替える

#GROMACSのインストール
##参考にした文献
本当にありがとうございます。

https://www.ag.kagawa-u.ac.jp/charlesy/2020/02/06/%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%B0%8E%E5%85%A5%E3%81%AE%E8%A8%98%E9%8C%B2%E3%80%81feb-6-2020-%E3%80%82/

https://qiita.com/lilybrevec/items/f800cfc98811e2d0bda6

##devtoolset7のインストール
gccの比較的新しいバージョンを利用するため、devtoolset7をインストール。
GROMACSインストールはgccが古すぎてもエラーになるし、新しすぎてもエラーになるのでほどほどのバージョンを選ぶ。

```bash

sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-7
```

__インストール作業中は有効にしておくこと__

```bash
$ scl enable devtoolset-7 bash
```

devtoolsetについては下記リンクを参照

https://www.hpc.co.jp/tech-blog/2019/11/08/software_collections/


##OpenMPI のインストール

1ノードしかないので基本的には必要ない。
レプリカ交換を行う際には必要となるのでインストールしておく。

```bash

./configure --prefix=/usr/local/open-mpi/3.1.4_gcc7.3.1 CC=gcc CXX=g++
make -j 4
make install
```

.bashrcの末尾に下記を追記

```bash

MPIROOT=/usr/local/open-mpi/3.1.4_gcc7.3.1
export PATH=$MPIROOT/bin:$PATH
export LD_LIBRARY_PATH=$MPIROOT/lib:$LD_LIBRARY_PATH
```

##cmake インストール

```bash
$ wget https://github.com/Kitware/CMake/releases/download/v3.16.4/cmake-3.16.4.tar.gz
$ tar xvzf cmake-3.16.4.tar.gz
$ cd cmake-3.16.4
$ ./bootstrap --prefix=/usr/local/cmake --no-system-libs
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) 
```

OpenSSL関係で注意されている。

http://www.secat-blog.net/wordpress/install-cmake-on-centos7/

こちらを参考に__openssl-devel__をインストール

```bash

$ yum install openssl-devel
$ ./bootstrap --prefix=/usr/local/cmake --no-system-libs
$ make
$ make install
```



##GROMACS 2020.6 のインストール

###thread-MPI版
まずはMPI無しでインストールする。

```bash
$ wget ftp://ftp.gromacs.org/pub/gromacs/gromacs-2020.6.tar.gz
$ tar zxvf gromacs-2020.6.tar.gz
$ cd gromacs-2020.6
$ mkdir build
$ cd build
$ cmake .. -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/gromacs/2020.6_GPU \
-DGMX_BUILD_OWN_FFTW=ON
$ make -j 4
$ make check
$ make install
```
普段の計算には、上でできたgmxを使う。 
例えば、gmx mdrunなど

###MPI版
MPI有でインストール
-DGMX_BUILD_MDRUN_ONLY=ONにすることで、
mdrunのみをインストールする

```bash
$ mkdir build_mpi
$ cd build_mpi
$ cmake .. -DGMX_BUILD_MDRUN_ONLY=ON -DREGRESSIONTEST_DOWNLOAD=OFF \
-DGMX_GPU=ON -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs/2020.6_GPU \
-DGMX_BUILD_OWN_FFTW=ON -DGMX_BUILD_SHARED_LIBS=OFF -DGMX_MPI=ON
$ make -j 4
$ make check
$ make install
```
make checkでエラー発生したが、これについては末尾に記す。


make installで/usr/local/gromacs/2020.6_GPU/bin下にmdrun_mpiが生成されるので、MPI並列計算を行うときに使う


最後に.bashrcに以下を追記する。

```
source /usr/local/gromacs/2020.6_GPU/bin/GMXRC
```


#その他のソフト
##VMD
トラジェクトリーの可視化に使う                   






#make check 時のエラー

Failedしたテストのメッセージは

```
mpiexec has detected an attempt to run as root.

Running as root is *strongly* discouraged as any mistake (e.g., in
defining TMPDIR) or bug can result in catastrophic damage to the OS
file system, leaving your system in an unusable state.

We strongly suggest that you run mpiexec as a non-root user.

You can override this protection by adding the --allow-run-as-root
option to your command line.  However, we reiterate our strong advice
against doing so - please do so at your own risk.

```
rootユーザーであることを怒られている
しかし、rootから抜けて実行すると、ファイルアクセスができないと怒られる

```
CMake Error: Could not open file for write in copy operation /usr/local/src/gromacs-2020.6/build_mpi/VersionInfo.cmake.tmp
CMake Error: : System Error: Permission denied
CMake Error at cmake/gmxGenerateVersionInfoRelease.cmake:141 (configure_file):
  configure_file Problem configuring file
```

適当にやって解決を試みる

```
sudo chmod -R a+w build_mpi
```
として、一般ユーザーでmake check
今度はTest1でエラーが起こっていたが、たぶん大丈夫