使用Amber進行分子動力學模擬
本文以Amber軟件為例介紹如何在E-HPC上進行分子動力學模擬。
背景信息
Amber(Assisted Model Building with Energy Refinement)是一款開源的廣泛使用的分子動力學模擬軟件,主要用于研究分子系統(tǒng)在生物化學領(lǐng)域的動態(tài)性質(zhì)。它由多個程序組成,可以協(xié)調(diào)工作,廣泛應(yīng)用于蛋白質(zhì)、核酸、糖等生物大分子的計算模擬。Amber軟件的核心動力學引擎開發(fā)語言為Fortran90,支持多CPU并行運算與GPU加速,適合于進行大規(guī)模的分子動力學模擬。
準備工作
創(chuàng)建一臺具有NVIDIA GPU卡的ECS實例,例如GPU計算型實例規(guī)格族gn7i等。更多信息,請參見自定義購買實例和GPU云服務(wù)器(gn/vgn/sgn系列)。
本文示例配置如下:
實例規(guī)格:ecs.gn7i-c8g1.2xlarge
操作系統(tǒng):Alibaba Cloud Linux 3
建議您將實例部署在與集群相同的地域內(nèi),以免增加后續(xù)操作。
步驟一:安裝并配置軟件
遠程連接已創(chuàng)建的ECS實例。具體操作,請參見通過密碼或密鑰認證登錄Linux實例。
執(zhí)行以下命令,安裝OSS工具。
sudo yum install -y unzip sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash ossutil
執(zhí)行以下命令,修改
ossutilconfig
配置文件,您可以設(shè)置OSS的Endpoint、AccessKeyID、AccessKeySecret等信息。更多信息,請參見配置ossutil。vi ~/.ossutilconfig
執(zhí)行以下命令,安裝所需的開發(fā)工具和庫文件。
sudo yum install -y gcc gcc-c++ make automake tcsh gcc-gfortran which flex bison patch bc libXt-devel libXext-devel perl perl-ExtUtils-MakeMaker util-linux wget bzip2 bzip2-devel zlib-devel tar
執(zhí)行以下命令,安裝unrar工具。
sudo wget https://www.rarlab.com/rar/rarlinux-x64-612.tar.gz --no-check-certificate sudo tar -zxvf rarlinux-x64-612.tar.gz
執(zhí)行以下命令,安裝CMake。
cd /usr/local/ sudo wget https://github.com/Kitware/CMake/releases/download/v3.18.1/cmake-3.18.1-Linux-x86_64.sh chmod +x cmake-3.18.1-Linux-x86_64.sh ./cmake-3.18.1-Linux-x86_64.sh export PATH=$PATH:/usr/local/cmake-3.18.1-Linux-x86_64/bin sudo yum install -y gcc gcc-c++ make automake
升級GCC。
執(zhí)行以下命令,安裝CentOS Software Collections Release Repository的RH版本。
sudo yum install centos-release-scl-rh -y
執(zhí)行以下命令,修改
CentOS-SCLo-scl-rh.repo
文件。sudo vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
# CentOS-SCLo-rh.repo # # Please see http://wiki.centos.org/SpecialInterestGroup/SCLo for more # information [centos-sclo-rh] name=CentOS-7 - SCLo rh baseurl=http://mirrors.cloud.aliyuncs.com/centos/7/sclo/$basearch/rh/ gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo [centos-sclo-rh-testing] name=CentOS-7 - SCLo rh Testing baseurl=http://mirrors.cloud.aliyuncs.com/centos/7/sclo/$basearch/rh/ gpgcheck=0 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo [centos-sclo-rh-source] name=CentOS-7 - SCLo rh Sources baseurl=http://vault.centos.org/centos/7/sclo/Source/rh/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo [centos-sclo-rh-debuginfo] name=CentOS-7 - SCLo rh Debuginfo baseurl=http://debuginfo.centos.org/centos/7/sclo/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
執(zhí)行以下命令,安裝Developer Toolset 7。
sudo yum install devtoolset-7 -y
說明請根據(jù)您的項目需求和依賴環(huán)境,選取合適的Developer Toolset版本進行安裝,以確保開發(fā)環(huán)境的兼容性和最優(yōu)性能。
Devtoolset-3旨在配合GCC 4.x.x系列版本,為早期項目提供支持。
Devtoolset-4與GCC 5.x.x版本集成,適配中期軟件棧的開發(fā)要求。
Devtoolset-6精確匹配GCC 6.x.x系列,引入了更多現(xiàn)代語言特性支持。
Devtoolset-7則是專為GCC 7.x.x版本設(shè)計,集成了最先進的編譯技術(shù)和優(yōu)化策略。
執(zhí)行以下命令,設(shè)置環(huán)境變量。
source /opt/rh/devtoolset-7/enable
安裝NVIDIA驅(qū)動和SDK。
重要鑒于NVIDIA圖形處理器(GPU)與CUDA軟件平臺之間的緊密耦合性,為確保最佳性能并減少潛在的兼容性問題,建議將NVIDIA GPU驅(qū)動程序與CUDA工具包作為獨立步驟進行部署。
執(zhí)行以下命令,安裝NVIDIA驅(qū)動。更多信息,請參見安裝CUDA。
sudo wget https://us.download.nvidia.com/tesla/418.226.00/nvidia-driver-local-repo-rhel7-418.226.00-1.0-1.x86_64.rpm rpm -i nvidia-driver-local-repo-rhel7-418.226.00-1.0-1.x86_64.rpm sudo yum clean all sudo yum install cuda-drivers sudo reboot
執(zhí)行以下命令,安裝NVIDIA的SDK。
sudo wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run chmod +x cuda_10.1.243_418.87.00_linux.run ./cuda_10.1.243_418.87.00_linux.run --toolkit --samples --silent
編譯Open MPI。
執(zhí)行以下命令,下載版本為3.0.0的Open MPI源代碼壓縮包。
curl -O -L https://download.open-mpi.org/release/open-mpi/v3.0/openmpi-3.0.0.tar.gz
依次執(zhí)行以下命令,配置OpenMPI以支持CUDA。
export PATH=/usr/local/cuda/bin/:$PATH sudo tar zxvf openmpi-3.0.0.tar.gz cd openmpi-3.0.0/ ./configure --prefix=/opt/openmpi/ --with-cuda=/usr/local/cuda/
執(zhí)行以下命令進行編譯。
sudo make -j 8 all sudo make -j 8 install
執(zhí)行以下命令,配置環(huán)境變量。
export PATH=/usr/local/cuda/bin/:/opt/openmpi/bin:$PATH
配置Amber軟件。
進入Amber官網(wǎng),下載
AmberTools24.tar.bz2
與Amber24.tar.bz2
文件,并在/opt/目錄
下進行解壓縮操作。執(zhí)行以下命令,修改Amber編譯參數(shù)。
cd /opt/amber24_src/build/ DMPI=TRUE openmpiDCUDA=TRUE
依次執(zhí)行以下命令,運行編譯并完成安裝。
sudo ./run_cmake sudo make install
依次執(zhí)行以下命令,測試Amber。
source /opt/amber24/amber.sh make test.serial
打包編譯好的OpenMPI和Amber軟件。
創(chuàng)建目錄。
cd mkdir amber-openmpi-package cd amber-openmpi-package
使用
cp
命令,將編譯好的OpenMPI和Amber的可執(zhí)行文件復(fù)制到amber-openmpi-package
目錄中。執(zhí)行以下命令,創(chuàng)建壓縮包。
cd tar -czf amber-openmpi-package.tar.gz amber-openmpi-package/
步驟二:創(chuàng)建自定義鏡像
關(guān)于如何創(chuàng)建自定義鏡像,請參見使用實例創(chuàng)建自定義鏡像。
步驟三:使用自定義鏡像創(chuàng)建E-HPC集群
創(chuàng)建一個E-HPC集群。具體操作,請參見創(chuàng)建標準版集群。
本文使用的集群配置示例如下:
配置項
配置
系列
標準版
部署模式
公共云集群
集群類型
SLURM
節(jié)點配置
包含1個管理節(jié)點和2個計算節(jié)點,規(guī)格如下:
管理節(jié)點:采用ecs.r7.xlarge實例規(guī)格,該規(guī)格配置為4 vCPU,32 GiB內(nèi)存。
說明請根據(jù)實際業(yè)務(wù)需求,調(diào)整管理節(jié)點的實例規(guī)格,以提高或降低資源配置。
計算節(jié)點:采用ecs.gn6i-c24g1.12xlarge實例規(guī)格,該規(guī)格配置為48 vCPU、186 GiB內(nèi)存。
集群鏡像
鏡像配置選擇本文中已創(chuàng)建的自定義鏡像,包括集群中的管理節(jié)點、登錄節(jié)點和計算節(jié)點。
創(chuàng)建一個集群用戶。具體操作,請參見用戶管理。
集群用戶用于登錄集群,進行編譯軟件、提交作業(yè)等操作。本文創(chuàng)建的用戶示例如下:
用戶名:testuser
用戶組:普通權(quán)限組
(可選)開啟集群自動伸縮功能。具體操作,請參見自動伸縮節(jié)點。
說明您可以通過集群的彈性伸縮能力,無需手動操作,即可實現(xiàn)計算節(jié)點的動態(tài)分配,根據(jù)實時負載自動調(diào)整計算節(jié)點數(shù)量,以提升資源管理效率。
步驟四:創(chuàng)建MOE可視化任務(wù)
使用已創(chuàng)建的
testuser
用戶登錄E-HPC Portal。具體操作,請參見登錄E-HPC Portal。
單擊右上角圖標,使用Workbench遠程連接集群登錄節(jié)點。
將編譯好的OpenMPI和Amber軟件解壓縮到
/opt
目錄中,確保所有節(jié)點可以共享使用。sudo tar -xzf amber-openmpi-package.tar.gz -C /opt
安裝MOE。
說明MOE是一款商業(yè)軟件,您需要自行購買,然后遵循MOE官方指南進行安裝。
設(shè)置環(huán)境變量。
執(zhí)行以下命令,創(chuàng)建可執(zhí)行文件
deploy_amber_openmpi.sh
。vim deploy_amber_openmpi.sh
將以下內(nèi)容寫入并保存退出。
#!/bin/bash # 設(shè)置 MOE 環(huán)境變量 export MOE=/opt/moe_2019.0102 export LD_LIBRARY_PATH=$MOE/lib:$LD_LIBRARY_PATH export PATH=$MOE/bin-lnx64:/usr/local/cuda/bin/:/opt/openmpi/bin:$PATH export AMBERHOME=/opt/amber24
依次執(zhí)行以下命令,順利執(zhí)行腳本文件。
chmod +x deploy_amber_openmpi.sh ./deploy_amber_openmpi.sh
創(chuàng)建MOE可視化任務(wù)。
在E-HPC Portal頁面頂部導(dǎo)航欄,選擇任務(wù)管理。
在頁面上方,單擊moe。
在創(chuàng)建作業(yè)頁面,填寫以下參數(shù)信息。
參數(shù)
說明
會話名稱
運行moe訪問集群產(chǎn)生的會話的名稱。
運行節(jié)點
運行moe的節(jié)點。
如果選擇隊列,會自動分配隊列中的節(jié)點。
如果選擇節(jié)點,目前僅支持localhost節(jié)點,即為當前節(jié)點。
CPU核數(shù)
運行moe所使用的CPU核數(shù)。
分辨率
可視化界面的分辨率。
應(yīng)用啟動命令
保持默認為
moe
。單擊提交作業(yè)。
進入可視化界面。
在E-HPC Portal頁面頂部導(dǎo)航欄,選擇會話管理。
按照會話名稱找到moe會話,單擊會話名稱。
進入E-HPC集群可視化界面進行操作。
步驟五:提交作業(yè)
本文以測試算例壓縮包 test.rar
和作業(yè)執(zhí)行腳本 run.sh
文件為例來說明如何提交作業(yè)。在實際操作中,請根據(jù)您的具體業(yè)務(wù)需求,替換成相應(yīng)的作業(yè)文件。
在E-HPC Portal頁面,單擊右上角圖標,使用Workbench遠程連接集群登錄節(jié)點。
執(zhí)行以下命令,解壓縮測試用例
test.rar
文件。unrar x test.rar
執(zhí)行以下命令,修改
run.sh
文件,限定每個作業(yè)需要2個CPU核心。cd test/ vim run.sh
修改示例如下所示:
執(zhí)行以下命令,提交作業(yè)。
./run.sh -qsys slurm -submit
步驟六:查看作業(yè)結(jié)果
執(zhí)行以下任一命令,查詢作業(yè)詳情。
Slurm Sacct命令
sacct
MOE命令
./run.sh -qsys slurm -status