日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GPU+VORONOI+KOKKOS+OPENMP反应力场加速

發布時間:2023/12/20 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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


使用如下命令行設置上述相關變量:

cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake DKokkos_ENABLE_OPENMP=on -DKokkos_ARCH_SKX=on -DBUILD_OMP=on ../cmakecmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake DKokkos_ARCH_AMPERE86=on -DKokkos_ENABLE_CUDA=on -DCMAKE_CXX_COMPILER= ${HOME}/lammps/lib/kokkos/bin/nvcc_wrapper ../cmake

注意這里的 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.rdx

6. 安裝VORONOI庫

1. 安裝voro++

進入安裝好的 lammps\rm lammpslammpslib/voronoi\rm lib/voronoilib/voronoi 文件夾

Voro++?Download(lbl.gov)\rm Voro++ - Download (lbl.gov)Voro++?Download(lbl.gov)下載voro++壓 縮安裝包
也可以用wget+網址命令進行下載。下載好后

tar -xvzf voro++-0.4.6.tar.gz

進入解壓好的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_mpipath) 指的是需要寫出可執行文件的路徑, 如果不想這么麻煩,可以把這個路徑寫到系統變量中即可。

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 的編譯,方式如下:

  • 先通過 kokkos\rm kokkoskokkos 加速完成整個運算并輸出軌跡文件,這里運算可執行文件路徑寫 build_kokkos_cuda\rm build\_kokkos\_cudabuild_kokkos_cuda 下的 lmp\rm lmplmp 文件路徑。建議軌跡文件的輸出步長盡量小一些;
  • 完成后重新書寫一個in文件,在in文件中使用 rerun\rm rerunrerun 命令讀取上一步驟輸出的軌跡文件并進 行 voronoi\rm voronoivoronoi 計算輸出數據,設置好后運行 in\rm inin 文件。運行時采用純 cpu\rm cpucpu 計算,可執行文件路徑 寫 src\rm srcsrc 目錄下的lmp_mpi\rm lmp\_mpilmp_mpi 文件路徑。in\rm inin 文件的設置可以參考如下:
  • 總結

    以上是生活随笔為你收集整理的GPU+VORONOI+KOKKOS+OPENMP反应力场加速的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。