91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Lammps分子動力學軟件MPI并行教程是什么

發布時間:2021-10-20 10:58:41 來源:億速云 閱讀:482 作者:柒染 欄目:大數據

Lammps分子動力學軟件MPI并行教程是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

簡介

LAMMPS是一種經典的分子動力學仿真代碼,設計用于在并行計算機上高效運行。它是由美國能源部下屬的桑迪亞國家實驗室(Sandia National Laboratories)開發的。它是一個開源代碼,根據GNU公共許可證(GPL)的條款自由分發。

Github官網:https://github.com/lammps/lammps/tree/stable

安裝教程:

所需編譯器套件:Intel Parallel Studio XE 2019

一、所需并行庫:

  1. OpenMPI(Open Message Passing Interface,a open source High Performance Computing)

  2. OpenMP(Open Multi-processing)

二、編譯前準備:

從github上下載源碼(可能較慢,可用迅雷等工具加速):

進入lammps項目目錄并新建一個build文件夾(參考教程):

cd lammps
mkdir build
cd build

三、進行Cmake前的準備:

    1. 目前已知Cmake的3.10版本在查找MPI安裝目錄和類庫的時候會遇到問題,解決方案是使用3.9版本。

      ~/lammps_setup/cmake-3.9.0-Linux-x86_64/bin/


    2. 將MPI類庫環境變量配置好(可以善用which mpi、whereis mpi等命令查找本機已經安裝了的MPI在哪里):

      export MPI_ROOT=/public/software/mpich
      export PATH=$MPI_ROOT/bin:$PATH
      export MPI_DIR=/public/software/mpich


    3. 配置好INTEL編譯器環境(可以善用which icc、whereis icc等命令查找本機已經安裝了的INTEL在哪里):

      source /public/software/intel/composer_xe_2011_sp1.7.256/bin/iccvars.sh intel64
      source /public/software/intel/composer_xe_2011_sp1.7.256/bin/ifortvars.sh intel64


    4. 運行cmake并附帶配置的選項,注意intel編譯器路徑選擇和c編譯器修改(不要使用gcc,使用icc):

      cmake -DBUILD_MPI=yes -DBUILD_OMP=yes -DMPI_C_COMPILER=/public/software/intel/composer_xe_2011_sp1.7.256/bin/intel64/icc -DMPI_CXX_COMPILER=/public/software/intel/composer_xe_2011_sp1.7.256/bin/intel64/icpc ../cmake


    5. 如果還有問題,直接在cmake中設置MPI路徑:

      source /public/software/intel/composer_xe_2011_sp1.7.256/bin/iccvars.sh intel64
      source /public/software/intel/composer_xe_2011_sp1.7.256/bin/ifortvars.sh intel64
      cmake -DBUILD_MPI=yes -DBUILD_OMP=yes 
            -DMPI_C_COMPILER=/public/software/mpi/openmpi-16-intel/bin/mpicc 
            -DMPI_CXX_COMPILER=/public/software/mpi/openmpi-16-intel/bin/mpicxx 
            -DFFMPEG_EXECUTABLE=~/lammps_setup/ffmpeg-4.2-amd64-static/ffmpeg 
            -DWITH_FFMPEG=yes 
            -DCMAKE_CXX_COMPILER=/public/software/intel/composer_xe_2011_sp1.7.256/bin/intel64/icpc 
            -DCMAKE_C_COMPILER=/public/software/intel/composer_xe_2011_sp1.7.256/bin/intel64/icc
      ../cmake


       

    6. 添加附加包(標準附加包列表):假設我們需要添加MOLECULE包,則應該在cmake命令后添加如下參數

      -DPKG_MOLECULE


      我們可以看到,格式是   -DPKG_包名。下面提供內部包一鍵安裝便捷代碼:

      -DPKG_COMPRESS=yes -DPKG_PYTHON=yes -DPKG_ASPHERE=yes -DPKG_BODY=yes -DPKG_CLASS2=yes -DPKG_COLLOID=yes -DPKG_CORESHELL=yes -DPKG_DIPOLE=yes -DPKG_GRANULAR=yes -DPKG_KSPACE=yes -DPKG_MANYBODY=yes -DPKG_MC=yes -DPKG_MISC=yes -DPKG_MOLECULE=yes -DPKG_MPIIO=yes -DPKG_OPT=yes -DPKG_PERI=yes -DPKG_QEQ=yes -DPKG_REPLICA=yes -DPKG_RIGID=yes -DPKG_SHOCK=yes -DPKG_SNAP=yes -DPKG_SPIN=yes -DPKG_SRD=yes -DPKG_MESSAGE=yes -DPKG_POEMS=yes


      附加包需要高版本nvcc等依賴的單獨列在下面:

      -DPKG_GPU=yes -DPKG_KOKKOS=yes


       

    疑難問題解決:

    1. 報錯:mpirun: error while loading shared libraries: libimf.so: cannot open shared object file: No such file or directory。原因是使用了intel的編譯器,卻沒把相應intel類庫地址加入環境變量。其實intel有非常方便的source文件,它能自動添加這些類庫,參見本文(三)-3《配置好INTEL編譯器環境》(參考資料:https://zhidao.baidu.com/question/292886685.html)

    2. 報錯-- Could NOT find MPI_C (missing: MPI_C_WORKS) -- Could NOT find MPI_CXX (missing: MPI_CXX_WORKS) -- Could NOT find MPI (missing: MPI_C_FOUND MPI_CXX_FOUND),但明明已經安裝了MPI而且配置了MPI環境變量。原因是cmake自身問題,不要使用太新的cmake。這里使用3.9版本完美解決這個問題,詳細資料參考https://gitlab.kitware.com/cmake/cmake/issues/18570。

    3. 使用了并行命令卻沒看到CPU核心占滿:(相似問題包括:why physical processors only 1、processors 1 1 1、1 by 1 by 1)首先明確一點,只要編譯時正確打開了-DBUILD_OMP -DBUILD_MPI,編譯后的lmp可執行文件就一定是支持MPI、OpenMP并行功能的。剩下的就是執行命令與程序的問題。并行的執行命令不能含有重定位標識符<,如

      mpirun -N 24 ~/software/lmp -in npteq200ps-16.in

      才是正確的,必須-in來調用in文件。

    便捷命令:

    mpic++ -show

    看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    mpi
    AI

    锡林浩特市| 克山县| 平舆县| 庆云县| 新民市| 广安市| 乌拉特前旗| 开平市| 长阳| 和平县| 融水| 德州市| 剑河县| 搜索| 余江县| 石棉县| 桃园县| 枣强县| 崇文区| 沛县| 淳安县| 巩义市| 涡阳县| 临颍县| 莱西市| 乌兰察布市| 清徐县| 兴海县| 芦山县| 宁城县| 屯门区| 汕头市| 望都县| 成都市| 宿松县| 乃东县| 全南县| 汶川县| 华阴市| 保德县| 廉江市|