Amber24 x cuda12.4 x ubuntu22.0.4

### amberとは
Amberは、分子動力学シミュレーションのためのソフトウェアパッケージで、主に生物分子（例えば、タンパク質、核酸、脂質など）のシミュレーションに使われます。研究者はAmberを使って分子の構造と動きを調べ、例えばタンパク質の折りたたみやリガンドの結合など、生物学的な過程を理解するために利用します。既に20年以上前からあり、久々にamberのインストレーションやってみました。

今回は当時無かったGPUやminicondaのオプション設定などありましたが、比較的？インストールは
楽に出来ましたが、ちょこちょこ躓く点があったので記載します。

本来は有償コンパイラやMPI,innfinibandなどの設定も必要ではありますが、
そこは省き、今回はGPU(CUDA)のオプションを有効する程度です。

### 参考資料

![amberインストールオプション](https://ambermd.org/pmwiki/pmwiki.php/Main/CMake-Common-Options)

![amber24マニュアル](https://ambermd.org/doc12/Amber24.pdf)


<iframe width="560" height="315" src="https://www.youtube.com/embed/6fRzzUatCkU?si=-w0gxaCiwGnrCtL_" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

GPUを使わないならほぼこの動画の通りにやれば出来ますが、GPUを使う場合はエラーになります。
その点を補足していきます。


### nvidia ドライバーのインストール
こちらを参考にインストール
![cudaインストール](https://qiita.com/koki2022/items/b26cef2a2287344f8e6a)

ほぼおまじないようなblacklist nouveauの設定
```bash:/etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
```
```bash
sudo update-initramfs -u
sudo reboot
```

再起動後 nvidia-driverのインストール
```bash
buntu-drivers devices
# recommendedと表記されているドライバーをインストール
# 私の場合は550だったので550をインストール
sudo apt install -y nvidia-driver-550
sudo reboot
# インストール後再起動し、nvidia-smiが表示出来たらOK
nvidia-smi
```

###  cudaのインストール

nvidia-smiで表示されたcudaのバージョンでインストールします。

!(このサイトでCUDAバージョン一覧が見れます)[https://developer.nvidia.com/cuda-toolkit-archive]

下図のように対応するアーキテクチャとOSのバージョンを選択し、インストールはネットを選択するとインストールコマンドを教えてくれます。
![スクリーンショット 2024-10-13 20.44.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3856269/b9d5599a-1bd1-2767-f106-a91406524c2b.png)


以下がページに記載されていたインストールコマンド。
```bash
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4

```

インストール後は、環境の設定を行います。
下記の順番で設定しないと古いバージョンが参照されるので気をつけてください。
```bash:/etc/profile.d/cuda.sh
export PATH=/usr/local/cuda-12.4/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:${LD_LIBRARY_PATH}
```
設定が終わったら一度ログアウトして設定が反映されたか再ログインして確認してください

```bash
echo $PATH
echo $LD_LIBRARY_PATH
```

### 関連ライブラリのインストール
動画の中で抜けているパッケージと不要なパッケージは削除しています。
```bash
sudo apt update
sudo apt-get install cmake
sudo install wget build-essential checkinstall
sudo apt install libncursesw5-dev libssl-dev ¥
   libsqlite3-dev tk-dev libgdbm-dev libc6-dev libffi-dev zlib1g-dev
sudo apt-get install gfortran
sudo apt-get install flex
sudo apt-get install bison

#sudo apt-get install python-distutils-extra
#これはpython2用なのでカット

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

sudo apt install python3
sudo apt-get install python-setuptools

#sudo apt-get install-cuda-toolkit
#これを行うと11.5がインストールされる。
#比較的新しいcuda12.4をインストールするため今回はカット

```
### minicondaのインストール
amberのインストールオプションではminocondaをダウンロードする設定がされていますが、今回はオフにするため、先にインストールします。

今回は詳細は省きます。
こちらを参考に微調整をお願いします。
https://qiita.com/jsasaki/items/c807e155753468a0cfbc


```bash
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

bash Miniconda3-latest-Linux-x86_64.sh
#基本　デフォルトでenterかyesで進めてください
#そうすると個人ディレクトリの直下にminiconda3がインストールされます
#インストール後一度ログアウトして再度ログインすると
#(base)とプロンプトに表示されています。
```

今回はbase環境で進めちゃいます。
pythonのライブラリもインストールします
```bash
conda install numpy scipy matplotlib
````

### amberのダウンロード
下記サイトからambertools24とamber24のソースをダウンロードしてください。

https://ambermd.org/GetAmber.php

以下の2つのファイルがダウンロードされます
```plaintext
Amber24.tar.bz2
AmberTools24.tar.bz2
```
ダウンロード後は両方とも解凍してください。
```bash
tar xvf AmberTools24.tar.bz2
tar xvf Amber24.tar.bz2
cd amber24_src/build
```

### cmakeの編集
解凍したフォルダ[amber24_src]のbuildに移動しrun_cmakeを編集します。

```bash:amber24_src/build/run_cmake
#以下の箇所にあるオプション2箇所を修正
# -DCUDA=TRUE
# DDOWNLOAD_MINICONDA=FALSE


#  Assume this is Linux:

  cmake $AMBER_PREFIX/amber24_src \
    -DCMAKE_INSTALL_PREFIX=$AMBER_PREFIX/amber24 \
    -DCOMPILER=GNU  \
    -DMPI=FALSE -DCUDA=TRUE -DINSTALL_TESTS=TRUE \
    -DDOWNLOAD_MINICONDA=FALSE \
    2>&1 | tee  cmake.log
```

### amberのインストール

あとはすんなり行くはずです。

```bash
./run_cmake

make
make install
source ~/amber24/amber.sh
```