“Great Red Oystrich Makes All Chemists Sane”
環境: CentOS Linux release 7.7.1908 (Core) + GNOME, GCC 4.8.5
Contents
便利コマンド
・nvidia-smi – GPUの使用率、状態を確認
・sensors – CPU温度の表示
yumからインストールしたlm_sensors 3.4.0パッケージではCPU温度は表示されたものの、ファンや電圧をモニターする “Nuvoton NCT6796D Super IO Sensors” がsensors-detectで検出されなかった。手動でlm_sensors (3.6.0) をビルドしてインストールしたところ検出されるようになった。しかし
sudo modprobe nct6775 force_id=0x290 しても “modprobe: ERROR: could not insert ‘nct6775’: No such device” とのエラーが出る。
NCT6796Dに対応したdriverにアップデートするため、ELRepoレポジトリを有効にしてkernel moduleをインストールする。
$ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ sudo yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
$ sudo yum install kmod-nct6775
$ sudo /usr/local/sbin/sensors-detect --auto
あるいはKernelを最新安定板(kernel-ml)にアップデートする。
・cat /proc/driver/nvidia/version – nvidiaドライバのバージョン確認
・make -jN ー NにCPUのコア(スレッド)数を入れると並列コンパイル。
・nohup – 端末を閉じても計算を続けたい時にコマンドの頭に入れる。
日本語入力
参考サイト: CentOS7で日本語を入力する方法 – Mikitechnica
左上の「アプリケーション」→「システムツール」→「設定」。「地域と言語」→入力ソースの左下の「+」ボタン→「日本語」→「日本語(かな漢字)」を選択し、「追加」。Windows + Spaceで入力ソースを切り換え。
ホスト名の変更
$ sudo hostnamectl set-hostname *****
ファイルの転送
Sambaは使わないことにした。macOSからsshとCyberduckでsftpでログインできることを確認した。
GUI、CUIの切り換え
参考サイト: CentOS 7をCUIで起動する方法 – クロの思考ノート
GUI → CUI
$ sudo systemctl disable gdm.service
CUI → GUI
$ sudo systemctl enable gdm.service
要再起動。
ログイン画面で Ctrl + Alt + F2でコンソールモードに、Ctrl + Alt + F1でGUIモードに切り替えられる。
Kernel
参考サイト: CentOS 7~8 最新安定版カーネルインストール、及び切り替え – etuts+
ELRepoレポジトリから最新安定板(2020年3月現在)kernel-ml 5.5.13-1をインストールして、元々の3.10から切り換えた。再起動できたが、ログイン画面にならない。関連パッケージkernel-ml-* も入れ替え後に、NVIDIAドライバをダウンロードしてきてインストールしなおした。正常に起動。これで、USB 3.1が使えるようになるはず。
GPUドライバ、CUDA
GPUドライバ: 440.44 → 440.59 (2020/2/7) → 440.64(2020/3/26)
CUDA:
$ sudo mv /usr/local/cuda /usr/local/cuda-10.0
$ wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
$ sudo sh cuda_10.2.89_440.33.01_linux.run
Developer Toolset 6(including GCC 6.3.1) を使用
参照サイト: Developer Toolset 6 by Software Collections
$ scl enable devtoolset-6 bash
$ exit で元に戻る。
※ “$sudo make” すると元のGCC4.8.5が使われてしまうので注意。rootに切り替えてから “# scl enable devtoolset-6 bash” すると安心。
常にdevtoolsを使うには ~/.bashrc に “source /opt/rh/devtoolset-6/enable” を書いておく。ただし元には戻せない。
ジョブ管理システムの導入
参考: CentOS 7でTorqueのセットアップ – Qiita
$ sudo yum install -enablerepo=epel torque-client torque-mom torque-server torque-scheduler torque-devel
$ sudo su
# create-munge-key
# pbs_server -t create -f -D &
# pbs_server_pid=$!
# kill $pbs_server_pid
# echo "$HOSTNAME np=$(nproc) num_node_boards=1 numa_board_str=$(nproc) gpus=2" > /var/lib/torque/server_priv/nodes
# systemctl start munge
# systemctl start trqauthd
# systemctl start pbs_server
# systemctl start pbs_sched
# systemctl start pbs_mom
# systemctl enable munge trqauthd pbs_server pbs_sched pbs_mom
# qmgr -c "create queue batch queue_type=execution"
# qmgr -c "set queue batch started=true"
# qmgr -c "set queue batch enabled=true"
# qmgr -c "set queue batch resources_default.nodes=1"
# qmgr -c "set queue batch resources_default.walltime=3600"
# qmgr -c "set server default_queue=batch"
# qmgr -c "set server scheduling=true"
$ qmgr -c 'p s'
$ pbsnodes -a
#設定の確認とノード状態の確認。status = free、だとジョブを受けられる状態。
qsub, qstat, qdelでジョブを管理できる。
Open-MPI 3.1.5のインストール
参考サイト:
FAQ: Building CUDA-aware Open MPI
gdrcopyのインストール
$ wget https://github.com/NVIDIA/gdrcopy/archive/master.zip
$ unzup master.zip
$ cd gdrcopy-master
$ sudo make PREFIX=/usr/local/gdrcopy CUDA=/usr/local/cuda all install
$ sudo ./insmod.sh
UCXのインストール
$ sudo yum install numactl-devel
$ wget https://github.com/openucx/ucx/releases/download/v1.7.0/ucx-1.7.0.tar.gz
$ tar xvzf ucx-1.7.0.tar.gz
$ cd ucx-1.7.0
$ ./configure --prefix=/usr/local/ucx/1.7.0 --with-cuda=/usr/local/cuda --with-gdrcopy=/usr/local/gdrcopy
$ make
$ sudo make install
Gromacs2019のインストールではOpenmpiのversion 1.6以上が推奨されている。後でインストールするORCAのためにOpen-MPI 3.1.4もインストールした。configure時には “tm.h” をデフォルトで探すが、–with-tmフラッグを付けておくと “tm.h” が見つからない時にエラーとなる。
$ wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.4.tar.gz
$ tar xvzf openmpi-3.1.4.tar.gz
$ cd openmpi-3.1.4
$ ./configure --prefix=/usr/local/open-mpi/3.1.4_gcc6.3.1 --with-tm CPPFLAGS=-I/usr/include/torque
$ make all
$ sudo su
# make install
以下を ~/.bashrc に追記。
#open-mpi用設定 MPIROOT=/usr/local/open-mpi/3.1.4_gcc6.3.1 export PATH=$MPIROOT/bin:$PATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MPIROOT/lib #export MANPATH=$MANPATH:$MPIROOT/share/man
Gromacs2019.5のインストール
分子動力学シミュレーションプログラム。
公式サイト: Gromacs.org
Gromacsのビルドにはcmake (3.4.3 or higher) が必要。yumからインストールできるcmakeは2.8.12のため自分でインストールした。Gromacs2020のsourceのchecksumの計算のためにpython3をyumからインストールした ($ sudo yum install python3)。
$ 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
$ make
$ sudo make install
CPU版
$ wget http://ftp.gromacs.org/pub/gromacs/gromacs-2019.5.tar.gz
$ tar xvzf gromacs-2019.5.tar.gz
$ cd gromacs-2019.5
$ mkdir build
$ cd build
$ scl enable devtoolset-6 bash
$ export VMDDIR=/usr/local/vmd193/lib
$ cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON \
-DGMX_GPU=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs/2019.5
$ make
$ make check
$ sudo make install
~/.bashrcに source /usr/local/gromacs/2019.5/bin/GMXRC を追加。
CPU-MPI版
$ cmake .. -DGMX_GPU=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs/2019.5 -DGMX_BUILD_MDRUN_ONLY=ON \
-DGMX_BUILD_SHARED_LIBS=OFF -DGMX_MPI=ON
$ make
$ make check
$ sudo make install
GPU版
$ cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/gromacs/2019.5_cuda
$ make
$ make check
$ sudo make install
GPU-MPI版
$ cmake .. -DGMX_BUILD_OWN_FFTW=ON -DGMX_GPU=ON -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs/2019.5_cuda \
-DGMX_BUILD_MDRUN_ONLY=ON -DGMX_BUILD_SHARED_LIBS=OFF -DGMX_MPI=ON
$ make
$ make check
$ sudo make install
実行速度の比較
オプションは “-pin on -resethway -noconfout”。
Version | Compiler等 | procs | thread | GPU | GPU tasks | paralleli-
zation |
ns/day |
---|---|---|---|---|---|---|---|
2019.5 | GCC 6.3.1 (AVX2-256) | 1 | 1 | 0 | – | – | 1.688 |
Intel Compiler 19.1.0.20191121 | 1 | 1 | 0 | – | 2.094 | ||
GCC 8.3.1 | 1 | 1 | 0 | – | 2.096 | ||
GCC 6.3.1 (AVX512) | 1 | 1 | 0 | – | 2.102 | ||
1 | 2 | 0 | OpenMP | 3.976 | |||
1 | 4 | 0 | 7.813 | ||||
1 | 8 | 0 | 14.876 | ||||
8 | 8 | 0 | thread MPI | 13.713 | |||
GCC 6.3.1 (AVX512)
OpenMPI 4.0.2 |
8 | 8 | 0 | MPI | 13.417 | ||
GCC 6.3.1 (AVX512)
CUDA 10.2 |
1 | 1 | 1 | PP (non-bonded)
PME |
– | 24.279 | |
1 | 2 | 1 | OpenMP | 46.275 | |||
1 | 4 | 1 | 86.828 | ||||
1 | 8 | 1 | 113.155 |
Version | Compiler等 | procs | thread | GPU | GPU tasks | paralleli-
zation |
ns/day |
---|---|---|---|---|---|---|---|
2020.1 | GCC 6.3.1 | 1 | 1 | 0 | – | – | 2.121 |
1 | 2 | 0 | OpenMP | 4.017 | |||
1 | 4 | 0 | 7.915 | ||||
1 | 8 | 0 | 15.026 | ||||
GCC 6.3.1
CUDA 10.2 |
1 | 1 | 1 | PP (non-bonded)
PME |
– | 25.996 | |
1 | 2 | 1 | OpenMP | 49.437 | |||
1 | 4 | 1 | 87.792 | ||||
1 | 8 | 1 | 114.822 | ||||
GCC 6.3.1 | 1 | 1 | 0 | – | – | 2.141* | |
1 | 2 | 0 | OpenMP | 4.012* | |||
1 | 4 | 0 | 7.831* | ||||
1 | 8 | 0 | 14.490* | ||||
GCC 6.3.1
CUDA 10.2 |
1 | 1 | 1 | PP (non-bonded, update)
PME |
– | 28.802* | |
1 | 2 | 1 | OpenMP | 55.383* | |||
1 | 4 | 1 | 100.179* | ||||
1 | 8 | 1 | 126.110* | ||||
2 | 2 | 2 | PP (non-bonded, update, bonded)
PME |
thread-MPI + OpenMP | 38.852* | ||
2 | 4 | 2 | 59.652* | ||||
2 | 8 | 2 | 82.539* | ||||
2 | 2 | 1 | P2P†, PP (non-bonded, update, bonded)
PME, |
123.466*† | |||
2 | 2 | 2 | 121.744*† | ||||
2 | 4 | 2 | 143.346*† | ||||
4 | 4 | 2 | 149.603*† | ||||
4 | 4 | 2 | 155.283*†‡ | ||||
2 | 8 | 2 | 156.652*† | ||||
4 | 8 | 2 | 160.870*† | ||||
4 | 8 | 2 | 187.990*†‡ |
* constraints = h-bonds.
† export GMX_GPU_DD_COMMS=true && export GMX_GPU_PME_PP_COMMS=true && export GMX_FORCE_UPDATE_DEFAULT_GPU=true (参考: Gray, Alan (2020-02-25) Creating Faster Molecular Dynamics Simulations with GROMACS 2020. NVIDIA Developer Blog.)
‡ PP:0,PP:0,PP:1,PME:1.
GRACEのインストール
Gromacsプログラムによる解析で出力されたxvgファイルの表示用。
$ sudo yum install --enablerepo=epel grace
でインストールしたものは “Broken or incomplete installation – read the FAQ!”と表示され起動しなかった。
関連ライブラリ
$ wget http://li.nux.ro/download/nux/dextop/el7/x86_64//pdflib-lite-7.0.5-5.el7.nux.x86_64.rpm
$ wget http://li.nux.ro/download/nux/dextop/el7/x86_64//pdflib-lite-devel-7.0.5-5.el7.nux.x86_64.rpm
$ sudo rpm -ihv pdflib-lite*
$ sudo yum --enablerepo=epel install fftw2-devel
$ sudo yum install libXpm-devel motif-devel
$ wget ftp://plasma-gate.weizmann.ac.il/pub/grace/src/grace-latest.tar.gz
$ tar xvzf grace-latest.tar.gz
$ cd grace-5.1.25/
$ scl enable devtoolset-6 bash
$ ./configure --prefix=/usr/local
$ make
$ make check
$ sudo make install
/usr/local/grace/bin にPATHを通す。
PLUMEDのインストール
分子動力学シミュレーションのための拡張サンプリングアルゴリズムライブラリ。GROMACSにパッチを当てると、ハミルトニアンレプリカ交換シミュレーションの機能が追加される。
PLUMED 2.6.0のコンパイル
$ tar xvzf plumed-src-2.6.0.tgz
$ cd plumed-2.6.0/
$ ./configure --prefix=/usr/local/plumed/2.6.0
$ sudo make install
PLUMED-patched GROMACS 2019.4 のコンパイル
$ wget http://ftp.gromacs.org/pub/gromacs/gromacs-2019.4.tar.gz
$ tar xvzf gromacs-2019.4.tar.gz
$ cd gromacs-2019.4
$ plumed patch -p
$ mkdir build
$ cd build
$ cmake .. -DGMX_MPI=ON -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs/2019.4_plumed/ -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DGMX_GPU=OFF -DGMX_BUILD_OWN_FFTW=ON
$ make
$ sudo make install
VMD 1.9.3のインストール
GROMACSトラジェクトリの可視化。NAMDの実行など。
関連ライブラリのインストール
$ sudo yum install libXi-devel libXinerama-devel tbb tbb-devel libXrandr-devel libXcursor-devel fltk-devel
NVIDIA-OptiX-SDK-7.0.0-linux64.sh – /optに展開。
$ tar xvzf v2.0.1.tar.gz
$ cd ospray-2.0.1
$ mkdir build
$ cd build
$ ccmake ../scripts/superbuild/ -DCMAKE_INSTALL_PREFIX=/usr/local/ospray-2.0.1
$ sudo su
# make
$ sudo yum --enablerepo=epel install netcdf netcdf-static netcdf-devel netcdf-cxx* netcdf-fortran* netcdf-mpi* netcdf-mpich*
VMDのコンパイル
参考サイト: VMD-1.9.3 for LX – 計算科学研究センター
$ export work=PATH_TO_WORKINGDIRECTORY
$ export VMDINSTALLBINDIR=/usr/local/vmd193/bin
$ export VMDINSTALLLIBRARYDIR=/usr/local/vmd193/lib
$ export CPATH=/usr/include/python2.7:$work/vmd-1.9.3/lib/tachyon/src:$CPATH
$ export TCLINC=-I/usr/include
$ export TCLLIB=-L/usr/lib64
$ export PLUGINDIR=$work/vmd-1.9.3/plugins
$ tar xvzf vmd-1.9.3.src.tar.gz
$ tar xvzf vmd-1.9.3.bin.LINUXAMD64-CUDA8-OptiX4-OSPRay111p1.opengl.tar.gz vmd-1.9.3/lib/surf/surf_LINUXAMD64 vmd-1.9.3/lib/stride/stride_LINUXAMD64
$ cd plugins/
$ make LINUXAMD64
$ make distrib
$ cd ../vmd-1.9.3/lib/
$ tar xvzf ../../tachyon-0.99b6.tar.gz
$ cd tachyon/unix/
$ make linux-64-thr
$ cd ../compile/linux-64-thr/
$ cp libtachyon.a ../../
$ cp tachyon ../../tachyon_LINUXAMD64
$ cd $work/vmd-1.9.3
$ sed -i '2iunsetenv XMODIFIERS' bin/vmd.csh
$ sed -i '2iunset XMODIFIERS' bin/vmd.sh
$ sed -i 's/python2.5/python2.7/g' ./configure
$ sed -i 's/-ltachyon/..\/lib\/tachyon\/libtachyon.a/' ./configure
$ ./configure LINUXAMD64 OPENGL FLTK TK LIBTACHYON NETCDF COLVARS TCL PYTHON PTHREADS NUMPY SILENT NOSTATICPLUGINS
$ cd src
$ make
$ sudo make install
~/.bashrc に "export PATH=/usr/local/vmd193/bin:$PATH" を追加。
macOS側のXQuartzでIndirect GLXを使ってOpenGLアプリケーションを使うは以下のコマンドを実行する。
$ defaults write org.macosforge.xquartz.X11 enable_iglx -bool true
AmberTools19のインストール
分子動力学シミュレーションパッケージ。AmberToolsは無料。Amberは有料(AmberToolsに含まれるsanderより高速なpmemdを使える)。
公式サイト: ambermd.org
参考サイト:Installing Amber – The Amber Project
$ sudo yum install libXt-devel
通常版のインストール
http://ambermd.org/GetAmber.phpからAmberTools19.tar.bz2をダウンロード
$ cd /usr/local/
$ sudo tar xvjf /path-to/AmberTools19.tar.bz2
$ sudo chown -R USER:USER amber18
$ export AMBERHOME=/usr/local/amber18
$ cd $AMBERHOME
$ scl enable devtoolset-6 bash
$ ./configure gnu
There are patches available. Do you want to apply them now? [y/N] — Y + enterでパッチを当てる。
Should I download and install Miniconda for you? [y/n] — y。AmberTools専用のPython環境をインストール。
$ echo "test -f /usr/local/amber18//amber.sh && source /usr/local/amber18//amber.sh" >> ~/.bashrc
$ source ~/.bashrc
$ make install
$ make test (とても時間がかかる)
2444 file comparisons passed 0 file comparisons failed (0 ignored) 0 tests experienced errors Test log file saved as /usr/local/amber18/logs/test_at_serial/2020-02-10_10-06-35.log No test diffs to save!
MPI版のインストール
上と同じディレクトリ内でそのまま作業。
$ ./configure -mpi gnu
$ make install
GPU版のインストール
$ export CUDA_HOME=/usr/local/cuda
$ ./configure -cuda gnu
$ make install
cpptraj.cudaとpbsa.cudaがインストールされた。
GPU-MPI版のインストール
CUDA 10.2を使用。
$ export CUDA_HOME=/usr/local/cuda
$ ./configure -cuda -mpi gnu
$ make install
cpptraj.MPI.cudaがインストールされた。
GENESISのコンパイル
主に理化学研究所杉田グループによって開発されている分子動力学、分子モデリングソフトウェア。
通常版
$ tar xvjf genesis-1.4.0.tar.bz2
$ cd genesis-1.4.0/
$ scl enable devtoolset-6 bash
$ export LD_LIBRARY_PATH=/opt/intel_user/parallel_studio_xe_2020/compilers_and_libraries_2020/linux/mkl/lib/intel64_lin:$LD_LIBRARY_PATH
$ ./configure --prefix=/usr/local/genesis/1.4.0
$ make
$ sudo make install
$ cd ../
$ tar xvjf tests-1.4.0.tar.bz2
$ cd tests-1.4.0/regression_test/
$ export OMP_NUM_THREADS=1
$ python2 ./test.py "mpirun -np 8 /usr/local/genesis/1.4.0/bin/spdyn"
PME_VSHIFT_DISPディレクトリでは “IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO”、PMEディレクトリでは “IEEE_DENORMAL” エラーでabortedした。
AutoDockのインストール
タンパク質-リガンドドッキングプログラム。
Single thread版のインストール
公式サイト: CCSB AutoDock SUITE
$ wget http://autodock.scripps.edu/downloads/autodock-registration/tars/dist426/autodocksuite-4.2.6-x86_64Linux3.tar
$ tar xvf autodocksuite-4.2.6-x86_64Linux3.tar
$ sudo cp x86_64Linux3/autodock4 x86_64Linux3/autogrid4 /usr/local/bin
AutoDock-GPUのインストール
公式サイト: Home – ccsb-scripps / AutoDock-GPU
$ unzip AutoDock-GPU-master.zip
$ cd AutoDock-GPU-master
$ export CPU_INCLUDE_PATH=/usr/local/cuda/include
$ export CPU_LIBRARY_PATH=/usr/local/cuda/lib64
$ export gpu_include_path=/usr/local/cuda/include
$ export gpu_library_path=/usr/local/cuda/lib64
$ (for i in 16 32 64 128 256; do make device="CPU" numwi=$i; do make device="GPU" numwi=$i; done)
$ sudo cp ./bin/autodock_gpu_* /usr/local/bin
CPU版は “Error: clGetDevices(): -1” でクラッシュして動かなかった。
テスト
1PTR.pdbへのATXのドッキングに必要なファイルをPMVで作成した。設定はlong(ga_num_evals 25000000)。Number of GA Runs = 2で比較。
$ autodock4 -p ATX.dpf -l legacy.dlg
$ autodock_gpu_16wi -ffile ./1ptr.maps.fld -lfile ./ATX.pdbqt -nev 25000000 -nrun 2 -resnam "gpu-16wi"
$ autodock_gpu_256wi -ffile ./1ptr.maps.fld -lfile ./ATX.pdbqt -nev 25000000 -nrun 2 -resnam "gpu-256wi_ADADELTA" -lsmet ad
Version | Program run time (s) | Local search method |
---|---|---|
Autodock 4.2.6 (single thread) | 542.06 | Solis-Wets |
GPU_16wi | 114.939 | Solis-Wets (default) |
GPU_64wi | 49.633 | |
GPU_256wi | 32.03 | |
107.523 | ADADELTA |
MGLTools 1.5.7のインストール
公式サイト: MGLTools
AutoDockのためのファイル生成と可視化。
$ chmod +x mgltools_Linux-x86_64_1.5.7_install
$ sudo ./mgltools_Linux-x86_64_1.5.7_install
GUIインストールウィザードからインストール。起動は /usr/local/MGLTools-1.5.7/bin/pmv 。
GAMESS(US) のインストール
量子化学計算プログラム。公式ウェブサイトからソースコードをダウンロードする。
./lked 時に “libmkl_gf_ilp64.a” がないと怒られたので(libmkl_gf_ilp64.soはあった)、intel MKLを自分でダウンロードして再インストールした。
$ cd /usr/local
$ sudo tar xvzf /path-to-source-file/gamess-current.tar.gz
$ cd gamess
$ sudo su
# ./config
linux64
30Sep2019R2
gfortran
6.3
mkl
/opt/intel_user/parallel_studio_xe_2020/compilers_and_libraries_2020/linux/mkl
proceed
sockets
no
no
# cd ddi
compddiをエディタで開きMAXCPUSの値を変更(デフォルトは32)。
# ./compddi >& compddi.log &
# mv ddikick.x ..
# cd ..
# ./compall >& compall.log &
# ./lked gamess 30Sep2019R2 >& lked.log &
rungmsスクリプトを適宜編集した(SCR=$HOME/scr、USERSCR=$HOME/scr)。
$ cd tests/standards
$ mkdir $HOME/scr
$ ../runtest ../../rungms 30Sep2019R2 4
checktstスクリプトを編集(set ext=log →set ext=gamess)。
$ ./checktst
OpenMPを有効化する場合はInstallation of GAMESS for OpenMP and MPI protocolsを参考にした。OpenMPを利用するにはDIRECT SCF(2電子積分をHDDに書き込まずに毎回計算する)を利用する。そのためには、GAMESSのinputファイル中に
$SCF DIRSCF=.TRUE. $END
の1行が必要。スレッド数は
$ export OMP_NUM_THREADS=8
で指定する。
Fireflyのインストール
量子化学計算プログラム。旧称PC GAMESS。
メールを送ったところ。
MOPAC2016のインストール
公式サイト: MOPAC2016 – openmopac.net
MOPAC2016 for CentOS 7をダウンロードして展開。無料(Academic)のLicense Keyを取得しておく。
$ unzip MOPAC2016_for_CentOS-7.zip
$ sudo mkdir /opt/mopac
$ sudo chmod 777 /opt/mopac
$ cp MOPAC2016.exe libiomp5.so /opt/mopac
$ chmod +x /opt/mopac/MOPAC2016.exe
“alias mopac=”/opt/mopac/MOPAC2016.exe” と “export LD_LIBRARY_PATH=/opt/mopac:$LD_LIBRARY_PATH” を $HOME/.bashrcに追加。
$ source ~/.bashrc
$ mopac LICENSE_KEY
$ mopac Example\ data\ set.mop
WebMOのインストール
公式サイト:webmo.net
Apacheサーバが自動で起動するようにしておく。
NWChemのインストール
公式サイト: NWChem: Open Source High-Performance Computational Chemistry
参考サイト: NWChem v.6.8.1 – 第一原理計算入門
DFT計算だったら、FireflyやGAMESSより速いらしい(無料の量子化学計算ソフト・プログラムはどれがいいのか” – in-silico notebook)。
OpenMPI 2.0.2のインストール
OpenMPIのバージョンが3以上だとエラーが出るため。
$ wget https://download.open-mpi.org/release/open-mpi/v2.0/openmpi-2.0.4.tar.gz
$ tar xvzf openmpi-2.0.4.tar.gz
$ cd openmpi-2.0.4
$ scl enable devtoolset-6 bash
$ ./configure --prefix=/usr/local/open-mpi/2.0.4_gcc6.3.1
$ make
$ sudo make install
NWChem 6.8.1のコンパイル
$ wget https://github.com/nwchemgit/nwchem/archive/6.8.1-release.tar.gz
$ tar xvzf 6.8.1-release.tar.gz
$ sudo cp -r nwchem-6.8.1-release/ /usr/local/nwchem-6.8.1
$ sudo chown -R USER:USER /usr/local/nwchem-6.8.1
$ cd /usr/local/nwchem-6.8.1
$ scl enable devtoolset-6 bash
$ export NWCHEM_TOP=/usr/local/nwchem-6.8.1
$ export NWCHEM_TARGET=LINUX64
$ export USE_MPI=y
$ export USE_PYTHONCONFIG=y
$ export PYTHONVERSION=2.7
$ export PYTHONHOME=/usr
$ export MKLROOT=/opt/intel_user/parallel_studio_xe_2020/compilers_and_libraries_2020/linux/mkl
$ export BLASOPT="-L$MKLROOT/lib/intel64 -lmkl_intel_ilp64 -lmkl_core -lmkl_sequential -lpthread -lm"
$ export USE_OPENMP=T
$ export MPIROOT=/usr/local/open-mpi/2.0.4_gcc6.3.1
$ export PATH=$MPIROOT/bin:$PATH
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MPIROOT/lib
$ cd src/
$ make nwchem_config NWCHEM_MODULES="all python"
$ make -jN (Nはスレッド数)
~/.bashrc に
export PATH=/usr/local/nwchem-6.8.1/bin/LINUX64:$PATH
と追記。nwchemの実行前は
$ export PATH=/usr/local/open-mpi/2.0.4_gcc6.3.1/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/open-mpi/2.0.4_gcc6.3.1/lib:/opt/intel_user/parallel_studio_xe_2020/compilers_and_libraries_2020/linux/mkl/lib/intel64_lin:$LD_LIBRARY_PATH
とする。
並列計算: “export OMP_NUM_THREADS=N(スレッド数)” (OpenMPスレッド数)と “mpirun -np N(プロセス数) input.nw <& output.out &” (MPIプロセス数)で制御する。
$ mpirun -np 4 nwchem h2o.nw >& h2o.nwout &
WebMOでの実行のため、/home/webadmin/cgi-bin/webmo/run_nwchem.cgi を編集して、$ENV{‘LD_LIBRARY_PATH’}.=”:$LD_LIBRARY_PATH”; の行にMKLとOpenMPIのPATHを追加した。
WebMOで指定しないといけないnwchemrcファイルの中身は以下のように書く。
nwchem_basis_library /usr/local/nwchem-6.8.1/src/basis/libraries/ nwchem_nwpw_library /usr/local/nwchem-6.8.1/src/nwpw/libraryps/ ffield amber amber_1 /usr/local/nwchem-6.8.1/src/data/amber_s/ amber_2 /usr/local/nwchem-6.8.1/src/data/amber_x/ #amber_3 /usr/local/nwchem-6.8.1/src/data/amber_q/ #amber_4 /usr/local/nwchem-6.8.1/src/data/amber_u/ spce /usr/local/nwchem-6.8.1/src/data/solvents/spce.rst charmm_s /usr/local/nwchem-6.8.1/src/data/charmm_s/ charmm_x /usr/local/nwchem-6.8.1/src/data/charmm_x/ # scratch_dir /scratch # permanent_dir /data # memory_total 50000000 # 400 MB, double precision words only # memory_heap 12500000 # 100 MB, double precision words only # memory_stack 12500000 # 100 MB, double precision words only # memory_global 25000000 # 200 MB, double precision words only
ORCAのインストール
ボン大学の公式ウェブフォーラムからバージョン4.2.1(ORCA 4.2.1, Linux, x86-64, shared, .tar.xz Archive, 380 MB)をダウンロードして /opt に展開。
#!/bin/bash PREFIX=/usr/local/open-mpi/3.1.4_gcc6.3.1 if [ -z "`echo $PATH | grep $PREFIX/bin`" ]; then export PATH=$PREFIX/bin:$PATH fi if [ -z "`echo $LD_LIBRARY_PATH | grep $PREFIX/lib`" ]; then if [ -n "$LD_LIBRARY_PATH" ]; then export LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH else export LD_LIBRARY_PATH=$PREFIX/lib fi fi
WebMOから並列で実行するには、
PreviewタブでGenerateボタンを押して入力ファイルを表示して
! B3LYP cc-pVDZ %pal nprocs 4 end * internal 0 1 C 0 0 0 0.0000000 0.0000000 0.0000000 C 1 0 0 1.5453030 0.0000000 0.0000000 .....
のように %pal ブロックを挿入する。
ターミナルから実行するには
$ source /opt/orca/mpivars.sh
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/orca/orca_4_2_1_linux_x86-64_shared_openmpi314
$ /opt/orca/orca_4_2_1_linux_x86-64_shared_openmpi314/orca input.inp > output.out
※ MPIで並列計算するにはorcaプログラムへのフルパスが必要。
$ orca_2mkl input -molden
最後のコマンドでGBWバイナリファイルがgmoldenなどで読み込む用のASCIIファイルに変換される。
Gabeditのインストール
様々な量子化学計算プログラムのGUIフロントエンド。分子軌道の可視化。
$ sudo yum --enablerepo=epel install pangox-compat
$ sudo yum install gtk2-devel
$ sudo yum --enablerepo=epel install gtkglext-devel gtkglext-libs openbabel
$ tar xvzf GabeditSrc250.tar.gz
$ cd GabeditSrc250
$ make
$ sudo cp ./gabedit /usr/local/bin
MOLDENのインストール
様々な量子化学計算プログラムのGUIフロントエンド。分子軌道の可視化。
$ sudo yum install imake #provides "makedepend"
$ wget ftp://ftp.cmbi.umcn.nl/pub/molgraph/molden/molden5.9.tar.gz
$ tar xvzf molden5.9.tar.gz
$ cd molden5.9
$ make
$ cd ../
$ sudo cp -r ./molden5.9 /usr/local/
$ cd /usr/local/molden5.9
$ sudo chmodrm ./*.o ./*.f ./*.c ./makefile*
IboViewのインストール
Intrinsic Atomic Orbitals(IAOs)に基づく分子の電子構造解析プログラム。バージョン20150427。
$ wget http://www.iboview.org/bin/ibo-view.20150427.tar.bz2
$ scl enable devtoolset-6 bash
$ tar xvjf ibo-view.20150427.tar.bz2
$ cd ibo-view.20150427
$ export MKLROOT=/opt/intel_user/parallel_studio_xe_2020/compilers_and_libraries_2020/linux/mkl
$ qmake-qt4 main.pro QMAKE_INSTALL_DIR=/usr/local/ibo-view
$ make
$ iboview examples/c2h4.xyz
OpenGLのバージョン >3.2を要求する。Mac側のXquartzでは表示できなかった。
Open-source PyMOLのインストール
分子構造可視化プログラム。
参考サイト:Linux Install – PyMOLwiki
macOS/CentOS 7/Ubuntu 18.04へのオープンソース版PyMOLのインストール方法 – Qiita
$ sudo yum install glew-devel glm-devel python3-devel
$ sudo yum --enablerepo=epel install python-pmw python36-numpy msgpack-devel
$ sudo pip3.6 install --upgrade pip
$ sudo pip3.6 install sip pyqt5 pmw mmtf-python
$ chmodgit clone https://github.com/schrodinger/pymol-open-source.git
$ chmodgit clone https://github.com/rcsb/mmtf-cpp.git
$ mv mmtf-cpp/include/mmtf* pymol-open-source/include/
$ cd pymol-open-source
$ sudo su
# prefix=/usr/local/pymol
# python3 setup.py install --home=$prefix
/usr/local/pymol/bin にPATHを通す。
MODELLERのインストール
$ conda config --add channels salilab
$ conda install modeller
プリンターのセットアップ
FUJI XEROXのウェブサイトからLinux用ドライバをダウンロードした。
$ sudo rpm -ivh Fuji_Xerox-DocuPrint_C2110-1.0-1.i386.rpm
CUPSは起動していたので、Firefoxから http://localhost:631/ にアクセス。印刷テストすると、
(/usr/lib/cups/filter/FX_DocuPrint_C2110/FXM_PF) stopped with status 102 (No such file or directory)
というエラーで止まる。”/usr/lib/cups/filter/FX_DocuPrint_C2110/FXM_PF” を実行しようとすると、”/lib/ld-linux.so.2″ がないと言われる。”64bit環境で、32bitでビルドされたコマンドを実行すると上記エラー” が出るらしい。
$ sudo yum install ld-linux.so.2
とすると
glibc.i686 0:2.17-292.el7 nss-softokn-freebl.i686 0:3.44.0-8.el7_7
がインストールされた。次は “libcups.so.2” がないと言われたので同様にyumからインストール
$ sudo yum install libcups.so.2
したところ大量にパッケージがインストールされた。印刷はできるようになった。
Gromacsのインストールについて
1台のWSにGPUが複数枚搭載されている場合MPIは必要でしょうか。
ここでのGPU-MPI版を用いる、という事でしょうか。
ちなみに
OpenMPI の configure で –with-cuda でコンパイル
本体(2020-5)を mpicc, mpic++ でコンパイル
この時 -DGMX_GPU=0N, -DGMX_MPI=ON
mpirun -np 2 gmx mdrun -gpu_id=01 xxx (GPU2枚の場合)
では落ちます。
ベンチマークの値での実行コマンドはどの様にされたのか教えて頂けないでしょうか。
1台のマシン上で実行するためには、(レプリカ交換などを行わない限りは)GMX_MPI=ONにする必要はなく、thread-MPIで十分です。-ntmpi オプションが使用できます。
$ gmx mdrun -deffnm hoge -ntmpi 2 -ntomp 2 -gpu_id 01
ただし、こちらの環境では、GPU 1枚で計算した方がGPU 2枚に分散して計算するよりも速いです(約1.7倍; 134,177原子のGromacs ADH Benchmarkセット)。
また、thread-MPIでの実行速度の方が速く(134,177原子。同じ条件で1.1倍)、-update gpuもONに出来るため(export GMX_GPU_DD_COMMS=true; export GMX_GPU_PME_PP_COMMS=trueを設定して、実行速度1.4倍)、Open-MPIの優位性がありません。
エラーの内容が分かりませんが、Open-MPIをONにしてビルド(build_mdrun_only)したGromacs 2020.5 (gcc 7.3.1, Open-MPI 4.1.0 with/without CUDA support) でも
$ mpirun -np 4 mdrun_mpi -deffnm xxx -ntomp 2 -gpu_id 01 -nb gpu -bonded gpu -pme gpu -npme 1 -update cpu
で問題なく計算が走りました。-update gpuはOpen-MPI版では無理でした。
参考になれば。
有益な情報ありがとうございます。
MPIについては更に検討します。
Graceのインストールですが
yum install -y epel-release
yum install -y –enablerepo=epel grace
でインストールできました。
bebe