GPU+VORONOI+KOKKOS+OPENMP反应力场加速
關注 Mr.material,\color{Violet} \rm Mr.material\ ,Mr.material?, 更\color{red}{更}更多\color{blue}{多}多精\color{orange}{精}精彩\color{green}{彩}彩!
主要專欄內容包括:
?《LAMMPS小技巧》: ̄\textbf{ \underline{\dag《LAMMPS小技巧》:}}??《LAMMPS小技巧》:? 主要介紹采用分子動力學(LammpsLammpsLammps)模擬相關安裝教程、原理以及模擬小技巧(難度:★\bigstar★)
??《LAMMPS實例教程—In文件詳解》: ̄\textbf{ \underline{\dag\dag《LAMMPS實例教程—In文件詳解》:}}???《LAMMPS實例教程—In文件詳解》:? 主要介紹采用分子動力學(LammpsLammpsLammps)模擬相關物理過程模擬。(包含:熱導率計算、定壓比熱容計算,難度:★\bigstar★★\bigstar★★\bigstar★)
???《Lammps編程技巧及后處理程序技巧》: ̄\textbf{ \underline{\dag\dag\dag《Lammps編程技巧及后處理程序技巧》:}}????《Lammps編程技巧及后處理程序技巧》:? 主要介紹針對分子模擬的動力學過程(軌跡文件)進行后相關的處理分析(需要一定編程能力。難度:★\bigstar★★\bigstar★★\bigstar★★\bigstar★★\bigstar★)。
????《分子動力學后處理集成函數—Matlab》: ̄\textbf{ \underline{\dag\dag\dag\dag《分子動力學后處理集成函數—Matlab》:}}?????《分子動力學后處理集成函數—Matlab》:? 主要介紹針對后處理過程中指定函數,進行包裝,方便使用者直接調用(需要一定編程能力,難度:★\bigstar★★\bigstar★★\bigstar★★\bigstar★)。
?????《SCI論文繪圖—Python繪圖常用模板及技巧》: ̄\textbf{ \underline{\dag\dag\dag\dag\dag《SCI論文繪圖—Python繪圖常用模板及技巧》:}}??????《SCI論文繪圖—Python繪圖常用模板及技巧》:? 主要介紹針對處理后的數據可視化,并提供對應的繪圖模板(需要一定編程能力,難度:★\bigstar★★\bigstar★★\bigstar★★\bigstar★)。
??????《分子模擬—Ovito渲染案例教程》: ̄\textbf{ \underline{\dag\dag\dag\dag\dag\dag《分子模擬—Ovito渲染案例教程》:}}???????《分子模擬—Ovito渲染案例教程》:? 主要采用 Ovito\rm OvitoOvito軟件,對 Lammps\rm LammpsLammps 生成的軌跡文件進行渲染(難度:★\bigstar★★\bigstar★)。
專欄說明(訂閱后可瀏覽對應專欄全部博文): ̄\color{red}{\textbf{ \underline{專欄說明(訂閱后可瀏覽對應專欄全部博文):}}}?專欄說明(訂閱后可瀏覽對應專欄全部博文):?
注意:\color{red} 注意:注意:如需只訂閱某個單獨博文,請聯系博主郵箱咨詢。lammps_materials@163.com\rm lammps\_materials@163.comlammps_materials@163.com
?\spadesuit??\dag? 開源后處理集成程序:請關注專欄《LAMMPS后處理——MATLAB子函數合集整理》
?\spadesuit??\dag??\dag? 需要付費定制后處理程序請郵件聯系:lammps_materials@163.com\rm lammps\_materials@163.comlammps_materials@163.com
基于GPU的kokkos加速安裝
- 基于GPU的kokkos加速安裝
- 1. 安裝lammps
- 2. 安裝cmake
- 3. cmake相關文件修改
- 4. cmake編譯
- 5. 測試
- 6. 安裝VORONOI庫
- 1. 安裝voro++
- 2. 軟鏈接
- 3. 編譯lammps
- 4. 測試
- 5. 注意
安裝lammps及相關庫的步驟網上很多,這里介紹在前期步驟準備好的情況下,如果in文件中包含反應力 場以及需要通過voronoi庫計算應力,如何通過基于gpu架構的kokkos+openmp實現計算加速
基于GPU的kokkos加速安裝
1. 安裝lammps
下載lammps穩定版本安裝包,在同目錄下鍵入命令行:tar -xvzf lammpsxxx.tar.gz
2. 安裝cmake
具體方法參照 ubuntu安裝cmake_yuanzhoulvpi的博客-CSDN博客_ubuntu安裝cmake
安裝完成后cmake --version查看安裝版本,which cmake 查看安裝路徑
3. cmake相關文件修改
在解壓好的lammps目錄下執行如下命令行:
mkdir build_kokkos_cuda cd build_kokkos_cuda修改 /cmake/presets\rm /cmake/presets/cmake/presets 文件夾中的basic.make\rm basic.makebasic.make文件,根據自己需要安裝的 package\rm packagepackage 在文件中 進行修改,也可以不修改,后面在命令行中添加即可。將kokkos?cuda.cmake\rm kokkos-cuda.cmakekokkos?cuda.cmake文件中帶有 ARCH_GPUARCH\rm ARCH\_GPUARCHARCH_GPUARCH那一行刪
4. cmake編譯
在build_kokkos_cuda目錄下進行編譯,對于多核+gpu,
參考官方網址
3.7. Packages with extra build options — LAMMPS documentation,
編譯需要設置如下變量:
其中HOSTARCH以及GPUARCH需要根據自己機器型號參考官網給出的表進行修改, 機器具體型號可參考官網:https://ark.intel.com/content/www/us/en/ark.html#@Processors
使用如下命令行設置上述相關變量:
注意這里的 nvcc_wrappernvcc\_wrappernvcc_wrapper 需要寫絕對路徑,一般在安裝好的lammps/lib/kokkos/bin\rm lammps/lib/kokkos/binlammps/lib/kokkos/bin 目錄下變量設置完成后使用如下命令行進行編譯,后面的20為編譯時使用的核數:
cmake --build . -- -j20編譯完成后會在 build_kokkos_cuda\rm build\_kokkos\_cudabuild_kokkos_cuda 目錄下生成可執行文件 lmp\rm lmplmp
5. 測試
使用 lammpslammpslammps 自帶的 exampleexampleexample 進行測試,找到 /examples/reaxff\rm /examples/reaxff/examples/reaxff 目錄,將 in.reaxff.rdx\rm in.reaxff.rdxin.reaxff.rdx 文件 中的pair_style\rm pair\_stylepair_style 改成 reaxff/kk\rm reaxff/kkreaxff/kk,在此目錄下鍵入如下命令
mpirun -np 2 /home/groupc/lammps-new/lammps-3Nov2022/build_kokkos_cuda/lmp -k on g 1 sf kk -pk kokkos newton on neigh half -in in.reaxff.rdx6. 安裝VORONOI庫
1. 安裝voro++
進入安裝好的 lammps\rm lammpslammps 的 lib/voronoi\rm lib/voronoilib/voronoi 文件夾
在Voro++?Download(lbl.gov)\rm Voro++ - Download (lbl.gov)Voro++?Download(lbl.gov)下載voro++壓 縮安裝包
也可以用wget+網址命令進行下載。下載好后
進入解壓好的voro++文件夾,執行make,完成后執行sudo make install
2. 軟鏈接
cd …退回lib/voronoi目錄,鍵入如下命令:
ln -s voro++-0.4.6/src includelinkln -s voro++-0.4.6/src liblink會生成兩個軟鏈接includelink和liblink
3. 編譯lammps
進入安裝好的lammps/src目錄,在此目錄下安裝需要的package,根據自己的需要安裝 package。每個package關聯的命令見6.1. Available Packages — LAMMPS documentation。這 里不建議通過make yes-all,make no-lib,make no-ext三個命令將所有不需要外接庫的 包直接裝上,建議make yes-package安裝自己需要的那些包,不然后續編譯可能會出錯。 這里除了需要的簡單包,還需要make yes-voronoi,即安裝上我們需要的voronoi包。通 過命令make package-status查看包的安裝情況。安裝完成后執行命令make mpi即可,編 譯完成后會在src目錄下生成lmp_mpi文件
4. 測試
進入lammps/examples/voronoi\rm lammps/examples/voronoilammps/examples/voronoi 文件夾,運行mpirun?npNlmp_mpi(path)?inin.voronoi\rm mpirun -np\ N\ lmp\_mpi(path)\ -in\ in.voronoimpirun?np?N?lmp_mpi(path)??in?in.voronoi,測試是否安裝上。這里 lmp_mpi(path)\rm lmp\_mpi(path)lmp_mpi(path) 指的是需要寫出可執行文件的路徑, 如果不想這么麻煩,可以把這個路徑寫到系統變量中即可。
5. 注意
這里編譯完成后有兩個可執行文件,一個是build_kokkos_cuda\rm build\_kokkos\_cudabuild_kokkos_cuda 目錄下有一個lmp\rm lmplmp文件,另一個 是 lammps/src\rm lammps/srclammps/src 目錄下有一個
lmp_mpi\rm lmp\_mpilmp_mpi 文件。如果你的 in 文件中使用的是反應力場,并且包含 computevoronoi/atom\rm compute voronoi/atomcomputevoronoi/atom 命令,我建議使用如下方式進行加速并調用 voronoi\rm voronoivoronoi 庫進行計算,這么 做的原因一方面是因為 kokkos\rm kokkoskokkos 加速主要在gpu完成計算(我的 gpu\rm gpugpu 使用率達到97%),而 voronoi\rm voronoivoronoi 庫的計算主要在cpu上完成,這么做可以發揮gpu及cpu的最大性能;另一方面是因為我 暫時還不知道如何在 kokkos+openmp\rm kokkos+openmpkokkos+openmp 編譯時同時實現 voronoi\rm voronoivoronoi 的編譯,方式如下:
總結
以上是生活随笔為你收集整理的GPU+VORONOI+KOKKOS+OPENMP反应力场加速的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据挖掘】数据挖掘总结 ( 贝叶斯分类
- 下一篇: 微信小程序 - <textarea> 多