• GAMESS-US 2013-May、2014-Dec、2016-Aug版編譯方法

    GAMESS-US 2013-May、2014-Dec、2016-Aug版編譯方法

    文/Sobereva @北京科音
    First release: 2013-Jul-3   Last update: 2021-Apr-6


    不同版本的GAMESS-US的編譯方法總有一些不同。本文介紹GAMESS-US 2013-May和2014-Dec版編譯方法。不同版本的GAMESS-US的編譯方法總有一些不同。本文介紹GAMESS-US 2013-May和2014-Dec版編譯方法。2016-Aug版編譯方法和本文一樣,只不過下面輸入skip那一步改為輸入proceed就行了。
    GAMESS-US 2011-Aug-11版編譯方法見http://www.shanxitv.org/105
    GAMESS-US 2009 R3版編譯方法見http://www.shanxitv.org/50

    2021-Apr-6注:本文的編譯方法對于CentOS 8結合Intel OneAPI 2021版編譯GAMESS-US 2020(R2)版經測試依然使用。但是執行./config生成配置文件的對話有所變化,需根據提示隨機應變。讓你輸入mkl版本號的時候應當輸入12而不要輸入當前實際版本號,否則在執行./lked gamess 00的時候無法連接MKL。此外,第4節在switch (`hostname`)后面插入額外內容的那一步不再需要。

    編譯環境:
    編譯器和數學庫:ifort 12.1.0+MKL。均安裝在默認路徑。編譯器的獲取方法可參考《Amber11+AmberTools1.5及CUDA版安裝方法,以及Amber12安裝方法》(http://www.shanxitv.org/103
    系統:RHEL6-U1 64bit(Vmware7.1.2虛擬機)
    用戶:root
    計算姬:Toshiba X500 (i7-2630QM)。程序將安裝在/sob/gamess下。

     

    1. 生成配置文件
    將壓縮包解壓至/sob/gamess,并進入此目錄
    執行./config,依次輸入([enter]代表直接敲回車跳過提示)
    [enter]
    linux64
    [enter]   //使用默認路徑
    [enter]   //使用默認路徑
    [enter]   //使用默認版本號00
    ifort
    12
    [enter]   //忽略ifort 12.0有bug的提示
    [enter]
    mkl
    /opt/intel/mkl
    skip
    [enter]
    [enter]
    sockets
    no  //不嘗試LIBCCHEM,這是用來通過nVidia的GPU加速HF和MP2任務用的,還很不成熟。
    此時配置文件install.info在當前目錄下生成了


    2. 編譯ddi
    cd ddi
    ./compddi
    把得到的ddikick.x移動到上一級目錄,即/sob/gamess下。


    3. 編譯代碼并連接為可執行文件
    cd ..
    ./compall
    經過十幾分鐘的編譯,objects目錄下生成了近300個文件。并且/sob/gamess下產生了gamess.00.x可執行文件。(如果沒產生,手動執行./lked gamess 00)

    注:如果你的CPU核心超過32個,應當將compddi里第一次的set MAXCPUS=后面的值改為當前的CPU核心數之后再執行compddi。


    4. 配置運行環境
    建立/sob/gamess/scr文件夾
    對/sob/gamess/rungms文件作如下修改:
    把set TARGET=sockets下面的三行改為
    set SCR=/sob/gamess/scr
    set USERSCR=/sob/gamess/scr
    set GMSPATH=/sob/gamess

    把這里的NCPUS后面的數值改成想默認用的CPU核心數:if (null$NCPUS == null) set NCPUS=1

    為了能單機多核計算,在switch (`hostname`)這行下面插入以下內容。其中xxx是本機名,即運行hostname命令所顯示的內容。
             case xxx:
                set NNODES=1
                set HOSTLIST=(`hostname`:cpus=$NCPUS)
                breaksw

    PS:建議在rungms文件一開頭的#!/bin/csh部分下方加上rm -f /sob/gamess/scr/*,使得每次調用rungms時都自動清空臨時目錄。

    之后就可以用比如./rungms test.inp來運行了,并行運算用的核數就是上面NCPUS設的。如果想指定用比如3個核心并行運行,則用./rungms test.inp 00 3。


    5. 測試
    把/sob/gamess/runall文件里第一處si.msg.chem.iastate.edu改為本機名。把./rungms exam$NUM $VERNO 1里面的1改為并行的核數。

    運行./runall 00進行測試,一開始按回車。共47個測試任務將依次執行,產生的log文件產生在/sob/gamess下。
    將所有產生的log文件拷貝到/sob/gamess/tests/standard目錄下,進入此目錄后運行./checktst,此腳本會將計算結果與標準結果進行對照。筆者機子上47個測試任務的結果全部檢驗通過。

    注意如果之前已經用runall做過了測試,那么應當先把/sob/gamess/scr目錄下清空。

    久久精品国产99久久香蕉