譚浩良
(清遠市廣播電視臺,廣東清遠511500)
隨著計算機計算能力的大幅提升,以及云計算等新技術(shù)的出現(xiàn),高性能計算在航空和航天、仿真計算、海洋遙感、海量數(shù)據(jù)處理、氣象、石油勘探、自動化制造系統(tǒng)等領(lǐng)域中得到了廣泛的應(yīng)用[1-6],并且逐漸成為科技、國防、產(chǎn)業(yè)、金融、服務(wù)、生活等方面不可缺少的輔助工具。但是由于目前架構(gòu)HPC機的規(guī)模越來越大,矛盾越來越突出,如出現(xiàn)難用、低效、高成本等相伴HPC終身的重大問題[7],因此如何不斷提高HPC運行效率成為目前就迫切需要解決的問題。而要解決HPC的高效問題,就必須對高性能計算機并行計算環(huán)境的構(gòu)建過程有所了解。本文主要對并行計算環(huán)境的配置過程及相關(guān)應(yīng)用情況進行介紹,從而可以為進一步提高HPC運行效率打下良好的基礎(chǔ)條件。
并行計算環(huán)境的配置是高性能計算的最基礎(chǔ)部分,是實現(xiàn)高效率并行程序運行中最關(guān)鍵的一步。一般來說,在進行并行計算之前,首先要求用戶在節(jié)點間的互相訪問能夠做到暢通,并且能夠通過使用密鑰對的方法實現(xiàn)不必輸入密碼就可以進行節(jié)點間的通訊,這是要開始著手做的最基本的一步;下面是使用ssh-keygen生成密鑰對的簡單方法:
在命令行下,建立目錄.ssh;
然后進入.ssh目錄中并輸入ssh-keygen-t rsa后回車,其中在要求輸入密碼時可以直接回車(即無密碼);
cp id_rsa.pub authorized_keys;
退回到上一級目錄,并輸入命令chmod 700.ssh。
在做完上述步驟后,可以測試一下節(jié)點的ssh情況,如在主節(jié)點node0的命令行下輸入:ssh node2,其中node2為子節(jié)點名,如果回車后顯示已切換到子節(jié)點node2的工作目錄下,則說明這一步已經(jīng)順利地配置成功了。
接下來我們還需要安裝常用的一些編譯器,一般來說,科研上目前比較常用的是PGF編譯器,下面簡要說明安裝過程:
(1)首先是對壓縮包進行解壓,常用命令一般為tar-zxvf*.tar.gz;
(2)進入到解壓后的目錄中,運行./install后,按照提示可以一步步進行選擇,直到安裝過程完成。
(3)把有效的license.dat(許可文件)拷到安裝目錄下;
(4)編輯修改用戶目錄下的.bashrc文件,添加下面主要的幾行:
export PGI=/public/software/pgi10#裝載剛才PGI安裝成功的目錄
export PATH=$PGI/linux86-64/10.0/bin:$PATH#裝載運行命令
export PATH LD_LIBRARY_PATH=$PGI/linux86-64/10.0/lib:$LD_LIBRARY_PATH#指出庫文件的目錄
export LM_LICENSE_FILE=$PGI/license.dat#指出許可協(xié)議文件的目錄
(5)重新裝載新的環(huán)境,執(zhí)行source.bashrc后可測試一下編譯程序,命令為:pgf90 test.f90,如果成功則表示安裝已完成。
這時我們就可以進行mpi的安裝了,在解壓縮包后,進入到安裝目錄中,執(zhí)行以下命令:
(1)./configure--enable-debug-f90=pgf90--prefix=/opt/mpich2.1
(2)make
(3)make install
安裝完后同樣對.bashrc文件進行添加:export PATH=/opt/mpich2.1/bin:$PATH,在執(zhí)行source.bashrc后就基本完成了并行環(huán)境的設(shè)置工作了。
接下來就可以測試一下并行的效果了。以中國國家氣象局下發(fā)的GRAPES模式為例,進入到并行模式后,分別對configure.si、configure.grapes進行配置,其中 configure.si指定了編譯器類型為串行的pgf90和相關(guān)編譯選項,如FC=pgf90,F(xiàn)CONVERT=-byteswapio等,而 configure.grapes指定了編譯器類型為并行的pgf90和相關(guān)編譯選項,如FC=mpif90,F(xiàn)CONVERT=-byteswapio等,這樣編譯完后的可執(zhí)行程序si.exe為串行的程序,而grapes.exe則為并行的可執(zhí)行程序。修改完這些配置文件后,再按下面步驟進行并行編譯和計算的操作:
(1)在編譯計算之前要先刪除老文件:rm-rf grapes/external/RSL/RSL/librsl.a(注:如重新編譯,需 ./clean)
(2)編譯并行程序命令:./compile grapes
(3)初邊界處理程序編譯:在si/frame_F目錄里rm*.o后再make;
(4)進入run目錄,執(zhí)行./si.exe形成初值grapesinput和grapesbdy;
(5)編輯p4file文件,內(nèi)容為選用測試節(jié)點,如:
node1
node1
node1
…
node16
node16
node16
…
(6)執(zhí)行命令 timempirun-machinefile./p4file-np 120./grapes.Exe
其中mpirun是并行命令,-machinefile是指定哪個節(jié)點的可選參數(shù),120是所選的并行節(jié)點數(shù)目,-np是指定用多少個節(jié)點數(shù)量的可選參數(shù)。
此時會形成一個postvar000的初始分析場,之后會生成第一個名為postvar001的預(yù)報數(shù)據(jù),說明模式的積分正常啟動,以24小時的預(yù)報時間為例,如果在輸出數(shù)據(jù)時間間隔為一小時的情況下,最后一個postvar024文件正常生成,則說明所有計算結(jié)果都已經(jīng)順利完成了,這時我們可以測試一下結(jié)果的正確性,見下圖1所示,整個溫度場在北京時間20時的2米溫度分布基本上符合天氣規(guī)律,因此這時并行計算出的模式預(yù)報結(jié)果完全正常,說明了并行計算的這些基本設(shè)置已經(jīng)成功完成了。
圖1 12km模式2013年03月24日12時起報的24小時 2米溫度預(yù)報
接下來我們用grapes模式對高性能計算的效率進行了測試,發(fā)現(xiàn)在處理器為intel cpu的銀河高性能計算機上,當(dāng)使用1個到36個節(jié)點(每個節(jié)點有12個cpu核)時,其并行效率有很大的差異,結(jié)果如表1所示,其中g(shù)rapes模式分辨率為18km,經(jīng)向格點為195個,緯向格點為153個,垂直層為55層,時間步長取為100。從表1可見,效率最高為4個并行節(jié)點,僅為10分鐘左右時間。5個節(jié)點開始,線性加速比大幅降低。因此在該高性能計算機上,使用同樣計算量的grapes模式進行并行計算時,最佳節(jié)點數(shù)應(yīng)該選擇3-4個節(jié)點,即36-48個cpu核。
表1 高性能計算機不同節(jié)點數(shù)的并行計算效率情況
[1]潘沙,李樺,夏智勛.高性能并行計算在航空航天C F D數(shù)值模擬中的應(yīng)用[J].計算機工程與科學(xué),2012,34(8):191-198.
[2]黃訸,易曉東,李姍姍,等.面向高性能計算機的海量數(shù)據(jù)處理平臺實現(xiàn)與評測 [J]. 計算機研究與發(fā)展,2012,49(Suppl.):357-361.
[3]李先濤,曾志,張豐,等.基于集群的海洋遙感圖像融合并行計算策略[J].計算機應(yīng)用與軟件,2012,29(1):84-87.
[4]劉燦燦,張衛(wèi)民,駱志剛,等.面向集合預(yù)報的高性能計算環(huán)境[J].計算機工程與科學(xué),2012,34(2):87-92.
[5]李煥芝,馮震宇,何波.集群存儲技術(shù)及其在石油勘探行業(yè)的應(yīng)用[J].中國西部科技,2012,11(1):18-20.
[6]楊建偉.自動化制造系統(tǒng)中高性能計算模型的建立及應(yīng)用[J].煤炭技術(shù),2011,30(11):193-194.
[7]周興銘.高性能計算技術(shù)發(fā)展[J].自然雜志,2011,33(5):249-254.