昔amberを使って自由エネルギー計算を行った事があった。
学術機関/非営利団体/政府機関 なら無償で使えるみたい.
ハードウエアメーカーがベンチ目的で使うなら 500ドル
以前は政府機関なら500$と聞いていたのだが変更になったみたい
AmberToolsとAmberがあってpmemdの存在可否くらい?

ソースコードが必要なら https://ambermd.org/GetAmber.php にて取得します
っがコンパイルとか面倒なら conda 経由でインストール可能のようで、この場合は AmberTools版が対象です.

対象計算機

インストール対象の計算機は rockylinux9 なマシンです

[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.4 (Blue Onyx)
 
[root@rockylinux9 ~]# cat /cat /proc/driver/nvidia/version
cat: /cat: No such file or directory
NVRM version: NVIDIA UNIX x86_64 Kernel Module  535.179  Fri Apr 26 21:43:18 UTC 2024
GCC version:  gcc version 11.4.1 20231218 (Red Hat 11.4.1-3) (GCC)
 
[root@rockylinux9 ~]# ls /usr/local/cuda
ls: cannot access '/usr/local/cuda': No such file or directory
 
[root@rockylinux9 ~]#

nvidiaドライバーはありますが、cudaライブラリは入れていないです

condaで入手

ここではcrYOLOPyEMの構築にpyenv/anaconda環境を作っているのでそれを踏襲して環境を作る
ここではanacondaを使ってますが、ライセンスの問題があるなら miniconda をお使いください

[root@rockylinux9 ~]# source /apps/pyenv/versions/anaconda3-2024.06-1/etc/profile.d/conda.sh

その後に

[root@rockylinux9 ~]# conda create --name AmberTools
[root@rockylinux9 ~]# conda activate AmberTools
 
(AmberTools) [root@rockylinux9 ~]#
(AmberTools) [root@rockylinux9 ~]# conda search ambertools -c conda-forge
Loading channels: done
# Name                       Version           Build  Channel
ambertools                        19      h0d7ec52_0  conda-forge
 :
ambertools                      23.6 cuda_11.8_openmpi_py312h755114c_5  conda-forge
 :
ambertools                      23.6 openmpi_py312ha276755_2  conda-forge
 :
ambertools                      23.6 py312h7fdaf08_1  conda-forge
 :
(AmberTools) [root@rockylinux9 ~]#

いろいろ種類がありますが、cudaと付いていてもmdエンジンがcuda対応ではなく cpptraj とかの解析エンジンの一部がcuda対応な感じ.
あとopenmpiと付くのはmpi対応な感じ. ambertoolsでのmdエンジン(minimizationも含む)は sander でこれはcpu演算のみです.
gpu対応なプログラムは pmemd で、これは amber パッケージに含まれている. ambertoolsには入ってないよ

ここではノーマル版を入れてみた.

(AmberTools) [root@rockylinux9 ~]# conda install ambertools=23.6 -c conda-forge
 
(AmberTools) [root@rockylinux9 ~]# conda list
 :
ambertools                23.6            cuda_None_nompi_py312h41aabf6_105    conda-forge
amberutils                21.0                     pypi_0    pypi
 :
python                    3.12.5          h2ad013b_0_cpython    conda-forge
 :
(AmberTools) [root@rockylinux9 ~]#
(AmberTools) [root@rockylinux9 ~]# conda list |grep pypi
amberutils                21.0                     pypi_0    pypi
edgembar                  0.2                      pypi_0    pypi
mmpbsa-py                 16.0                     pypi_0    pypi
packmol-memgen            2024.2.9                 pypi_0    pypi
pdb4amber                 22.0                     pypi_0    pypi
pymsmt                    22.0                     pypi_0    pypi
pytraj                    2.0.6                    pypi_0    pypi
sander                    22.0                     pypi_0    pypi
(AmberTools) [root@rockylinux9 ~]# 
(AmberTools) [root@rockylinux9 ~]# ls -l /apps/pyenv/versions/anaconda3-2024.06-1/envs/AmberTools/bin/sander*
-rwxr-xr-x. 2 root root 9184696 Jun 15 05:58 /apps/pyenv/versions/anaconda3-2024.06-1/envs/AmberTools/bin/sander
-rwxr-xr-x. 2 root root 9210320 Jun 15 05:58 /apps/pyenv/versions/anaconda3-2024.06-1/envs/AmberTools/bin/sander.LES
 
(AmberTools) [root@rockylinux9 ~]#

っが、cuda付きがインストールされるみたい.
ただ、、アプリ名.cuda なるファイルがない... amberならcuda対応なアプリは アプリ名.cuda という名称なのだが...

EnvironmentModules

「/apps/modulefiles/ambertools/23.6」

#%Module1.0
set          root       /apps/pyenv/versions/anaconda3-2024.06-1/envs/AmberTools
prepend-path PATH       $root/bin

amber をソースから作ってみる

ソースコードをhttps://ambermd.org/GetAmber.phpから取得します. 取得するのは ambertools と amber の両方です.
準備
amber24はgcc 12 より上は未サポートなので rockylinux9 の標準GCCは 11.4.1 なのでok. もし 12 で行きたいなら RockyLinux の gcc-toolset で12にすればいいかな.
あと構築に必要なパッケージを入れます。それとcudaライブラリも入れます。

[root@rockylinux9 ~]# dnf install cmake gfortran libXt-devel libXext-devel perl-ExtUtils-MakeMaker bzip2-devel gcc-toolset-12
[root@rockylinux9 ~]# module load cuda/12.2
[root@rockylinux9 ~]# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Jul_11_02:20:44_PDT_2023
Cuda compilation tools, release 12.2, V12.2.128
Build cuda_12.2.r12.2/compiler.33053471_0
 
[root@rockylinux9 ~]# gcc --version
gcc (GCC) 11.4.1 20231218 (Red Hat 11.4.1-3)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
[root@rockylinux9 ~]# source scl_source enable gcc-toolset-12
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# gcc --version
gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# cd /apps/src
[root@rockylinux9 src]# tar xf /Public/em/AmberTools24.tar.bz2
[root@rockylinux9 src]# tar xf /Public/em/Amber24.tar.bz2
 
[root@rockylinux9 src]# cd amber24_src/
 
[root@rockylinux9 amber24_src]# ls -CF
AmberTools/  benchmarks/  build/  cmake/  CMakeLists.txt  cmake-packaging/  dat/  examples/  README  recipe_at/  src/  test/  update_amber*  updateutils/
 
[root@rockylinux9 amber24_src]# ./update_amber --update
Preparing to apply updates... please wait.
Downloading updates for AmberTools 24
Downloading AmberTools 24/update.1 (3.06 KB)
Applying AmberTools 24/update.1
Downloading AmberTools 24/update.2 (887 Bytes)
Applying AmberTools 24/update.2
Downloading AmberTools 24/update.3 (12.66 MB)
Downloading: [::::::::::::::::::::::::::::::::::::::::::::::::::] 100.0% Done.
Applying AmberTools 24/update.3
Downloading AmberTools 24/update.4 (1.00 KB)
Applying AmberTools 24/update.4
Downloading updates for Amber 24
Downloading Amber 24/update.1 (1.10 KB)
Applying Amber 24/update.1
Downloading Amber 24/update.2 (317.64 KB)
Downloading: [::::::::::::::::::::::::::::::::::::::::::::::::::] 100.0% Done.
Applying Amber 24/update.2
 
NOTE: update_amber only updates the raw source code! You must recompile if you want
      any changes to take effect!
 
[root@rockylinux9 amber24_src]#

cmakeを使ってコンパイル設定を行いmake/make installな流れ
一応簡単に作れるシェルスクリプトが build/ に用意されてますが、
ここではcmakeを直に使って設定を行います
cmakeのオプションは https://ambermd.org/pmwiki/pmwiki.php/Main/CMake-Common-Options にある.

[root@rockylinux9 amber24_src]# ls -CF build/
clean_build*  configure_cmake.py*  run_cmake*  run_cmake.sample*
 
[root@rockylinux9 amber24_src]# mkdir build24
[root@rockylinux9 amber24_src]# cd build24/
 
[root@rockylinux9 build24]# cmake ..  -DCMAKE_INSTALL_PREFIX=/apps/amber/24 \
   -DCOMPILER=GNU  -DMPI=FALSE -DCUDA=TRUE \
   -DINSTALL_TESTS=TRUE -DDOWNLOAD_MINICONDA=TRUE -DOPENMP=TRUE -DBUILD_GUI=TRUE
 :
 :
--                                Features:
-- MPI:                               OFF
-- MVAPICH2-GDR for GPU-GPU comm.:    OFF
-- OpenMP:                            ON
-- CUDA:                              ON
-- NCCL:                              OFF
-- Build Shared Libraries:            ON
-- Build GUI Interfaces:              ON
-- Build Python Programs:             ON
--  -Python Interpreter:              Internal Miniconda (version 3.11)
-- Build Perl Programs:               ON
-- Build configuration:               RELEASE
-- Target Processor:                  x86_64
-- Build Documentation:               ON
-- Sander Variants:                   normal LES API LES-API QUICK-CUDA
-- Install location:                  /apps/amber/24/
-- Installation of Tests:             ON
 :
 :
[root@rockylinux9 build24]# make; make install
 
[root@rockylinux9 build24]# ls /apps/amber/24/bin/*.cuda
/apps/amber/24/bin/cpptraj.cuda  /apps/amber/24/bin/pbsa.cuda   /apps/amber/24/bin/quick.cuda         /apps/amber/24/bin/test-api.cuda
/apps/amber/24/bin/mdgx.cuda     /apps/amber/24/bin/pmemd.cuda  /apps/amber/24/bin/sander.quick.cuda
 
[root@rockylinux9 build24]# ls /apps/amber/24/bin/sander*
/apps/amber/24/bin/sander  /apps/amber/24/bin/sander.LES  /apps/amber/24/bin/sander.OMP  /apps/amber/24/bin/sander.quick.cuda
 
[root@rockylinux9 build24]# ls /apps/amber/24/bin/pmemd*
/apps/amber/24/bin/pmemd  /apps/amber/24/bin/pmemd.cuda  /apps/amber/24/bin/pmemd.cuda_DPFP  /apps/amber/24/bin/pmemd.cuda_SPFP  /apps/amber/24/bin/pmemd.decomp
 
[root@rockylinux9 build24]#

「make -j 20」とかしたらコンパイルエラーになった...なので1coreでコンパイル. すっごく時間が掛かります
再度 cmake を実行するとエラーになる場合がある. その際は「/apps/src/amber24_src/CMakeCache.txt」を削除すれば回避できます.

EnvironmentModules

「/apps/modulefiles/amber/24」

#%Module1.0
set          root       /apps/amber/24
 
setenv       AMBERHOME  $root
setenv       PERL5LIB   $root/lib/perl
setenv       PYTHONPATH $root/lib/python3.11/site-packages
setenv       QUICK_BASIS $root/AmberTools/src/quick/basis
 
prepend-path PATH       $root/bin
prepend-path LD_LIBRARY_PATH $root/lib

nccl

複数枚のgpuカードを使って計算する際に必要なそうな. nccl: NVIDIA Collective Communications Library https://developer.nvidia.com/nccl
The NVIDIA Collective Communication Library (NCCL) implements multi-GPU and multi-node communication primitives optimized for NVIDIA GPUs and Networking.
(deepL先生訳: NVIDIAコレクティブ・コミュニケーション・ライブラリ(NCCL)は、NVIDIA GPUおよびネットワーキングに最適化されたマルチGPUおよびマルチノード通信プリミティブを実装しています)

これをAmberに入れると、、まぁそうなるそうな.
ncclのインストール.

[root@rockylinux9 ~]# cd /apps/src/
[root@rockylinux9 src]# git clone https://github.com/NVIDIA/nccl.git
[root@rockylinux9 src]# cd nccl
[root@rockylinux9 nccl]# git tag
 
[root@rockylinux9 nccl]# git checkout v2.23.4-1
[root@rockylinux9 nccl]# git branch
* (HEAD detached at v2.23.4-1)
  master
 
[root@rockylinux9 nccl]# rm -rf build
[root@rockylinux9 nccl]# make -j src.build CUDA_HOME=/usr/local/cuda-12.2 PREFIX=/apps/nccl
[root@rockylinux9 nccl]# make install      CUDA_HOME=/usr/local/cuda-12.2 PREFIX=/apps/nccl
[root@rockylinux9 nccl]# ls -R /apps/nccl/
/apps/nccl/:
include  lib
 
/apps/nccl/include:
nccl.h  nccl_net.h
 
/apps/nccl/lib:
libnccl.so  libnccl.so.2  libnccl.so.2.23.4  libnccl_static.a  pkgconfig
 
/apps/nccl/lib/pkgconfig:
nccl.pc
[root@rockylinux9 nccl]#

もしrpmファイルを作るなら

[root@rockylinux9 nccl]# vi pkg/redhat/nccl.spec.in
 %define debug_package %{nil}
+%define _prefix /apps/nccl
 
[root@rockylinux9 nccl]# make pkg.redhat.build -j CUDA_HOME=/usr/local/cuda-12.2
 
[root@rockylinux9 nccl]# rpm -qpli ./build/pkg/rpm/x86_64/libnccl-2.23.4-1+cuda12.2.x86_64.rpm
Name        : libnccl
Version     : 2.23.4
Release     : 1+cuda12.2
Architecture: x86_64
 :
/apps/nccl/lib64/libnccl.so.2
/apps/nccl/lib64/libnccl.so.2.23.4
 :
[root@rockylinux9 nccl]#

っでインストール

[root@rockylinux9 nccl]# dnf localinstall ./build/pkg/rpm/x86_64/libnccl-2.23.4-1+cuda12.2.x86_64.rpm \
                                          ./build/pkg/rpm/x86_64/libnccl-devel-2.23.4-1+cuda12.2.x86_64.rpm
[root@rockylinux9 nccl]#

そうしてncclを有効にして amber をコンパイルします

[root@rockylinux9 ~]# module load cuda mpi
[root@rockylinux9 ~]# source scl_source enable gcc-toolset-12
 
[root@rockylinux9 ~]# cd /apps/src/amber24_src/
[root@rockylinux9 amber24_src]#
[root@rockylinux9 amber24_src]# mkdir build-nccl
[root@rockylinux9 amber24_src]# cd build-nccl
 
[root@rockylinux9 build-nccl]# 
[root@rockylinux9 build-nccl]# NCCL_HOME=/apps/nccl  cmake ..  -DCMAKE_INSTALL_PREFIX=/apps/amber/24 \
   -DCOMPILER=GNU  -DMPI=TRUE -DCUDA=TRUE \
   -DINSTALL_TESTS=TRUE -DDOWNLOAD_MINICONDA=TRUE -DOPENMP=TRUE -DBUILD_GUI=TRUE -DNCCL=TRUE
 :
 :
--                                Features:
-- MPI:                               ON
-- MVAPICH2-GDR for GPU-GPU comm.:    OFF
-- OpenMP:                            ON
-- CUDA:                              ON
-- NCCL:                              ON
-- Build Shared Libraries:            ON
-- Build GUI Interfaces:              ON
-- Build Python Programs:             ON
--  -Python Interpreter:              Internal Miniconda (version 3.11)
-- Build Perl Programs:               ON
-- Build configuration:               RELEASE
-- Target Processor:                  x86_64
-- Build Documentation:               ON
-- Sander Variants:                   normal LES API LES-API MPI LES-MPI QUICK-MPI QUICK-CUDA
-- Install location:                  /apps/amber/24/
-- Installation of Tests:             ON
 :
 :
[root@rockylinux9 build24]# make; make install

「pmemd.cuda.MPI」が得られます
EnvironmentModulesは「/apps/modulefiles/amber/24」として

#%Module1.0
set          root       /apps/amber/24
 
setenv       AMBERHOME  $root
setenv       PERL5LIB   $root/lib/perl
setenv       PYTHONPATH $root/lib/python3.11/site-packages
setenv       QUICK_BASIS $root/AmberTools/src/quick/basis
 
prepend-path PATH       $root/bin
prepend-path LD_LIBRARY_PATH $root/lib:/apps/nccl/lib64

とする. LD_LIBRARY_PATH として「/apps/nccl/lib64」を追加します

最新の60件
2025-03-23 2025-03-22 2025-03-20 2025-03-17 2025-03-16 2025-03-15 2025-03-10 2025-03-08 2025-03-06 2025-03-03 2025-03-02 2025-03-01 2025-02-23 2025-02-18 2025-02-17 2025-02-14 2025-02-12 2025-02-03 2025-02-02 2025-01-27 2025-01-26 2025-01-25 2025-01-24 2025-01-23 2025-01-20 2025-01-13 2025-01-12 2025-01-08 2024-12-30 2024-12-29 2024-12-22 2024-12-20 2024-12-17 2024-12-15 2024-12-14 2024-12-12 2024-12-11 2024-12-10 2024-12-09 2024-11-28 2024-11-22 2024-11-15 2024-11-14 2024-11-12 2024-11-06 2024-11-05

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-09-20 (金) 07:51:29