金能智++者建武++李唐艷++孫一桐
摘 要:高性能計算集群是當前較為先進的計算體系,是融合了計算、存儲、網(wǎng)絡(luò)和軟件的綜合體系,高性能計算的快速發(fā)展已為其他科學(xué)技術(shù)的發(fā)展提供了越來越廣的支撐,而MPI并行環(huán)境是高性能計算集群的要素。該文以MPICH3.2為例,從集群無密碼訪問、MPICH3.2編譯安裝、配置環(huán)境變量、并行環(huán)境測試等方面詳細闡述了并行環(huán)境的配置過程。
關(guān)鍵詞:Linux 高性能計算 集群 MPI 并行環(huán)境
中圖分類號:TP393 文獻標識碼:A 文章編號:1674-098X(2017)01(c)-0116-02
理論推導(dǎo)和科學(xué)實驗長期以來一直是人們研究和探索自然的兩大方法,但隨著高性能計算技術(shù)和應(yīng)用的迅猛發(fā)展,計算模擬已成為科學(xué)研究中不可缺少的第三種方法[1]。高性能計算已在基礎(chǔ)科學(xué)研究、工業(yè)設(shè)計、裝備制造等各個領(lǐng)域廣泛應(yīng)用,解決了一些重大科學(xué)和工程問題,對支撐科技創(chuàng)新、推動經(jīng)濟發(fā)展起到了重要作用[2]。
高性能計算(High performance computing,HPC)作為計算科學(xué)的必備基礎(chǔ)設(shè)施,已經(jīng)成為國家之間的戰(zhàn)略必爭點和創(chuàng)新轉(zhuǎn)型的利器,各國都投入巨資爭奪世界制高點。中國的高性能計算系統(tǒng)研制水平和能力經(jīng)過10多年的快速發(fā)展,已經(jīng)躋身世界先進水平的行列。2010年11月,國際TOP500組織在網(wǎng)站上公布了最新全球超級計算機前500強排行榜,中國首臺千萬億次超級計算機系統(tǒng)“天河一號”排名全球第一,是中國國產(chǎn)超級計算機首次奪得世界冠軍[3]。2013年6月,“天河二號”以峰值速度、持續(xù)速度成為當時最快的超級計算機[4]。2016年6月20日,國際TOP500組織在法蘭克福世界超算大會(ISC)上,“神威·太湖之光”超級計算機系統(tǒng)登頂榜單之首,成為世界上首臺運算速度超過10億億次的超級計算機。而“中國芯”“申威26010”的問世,也成為中國自主研發(fā)打破30年技術(shù)封鎖的一柄利器[5]。
并行環(huán)境是提高服務(wù)器計算速度和處理能力的一種有效手段,對于高性能計算是必不可少的。目前,大量并行程序采用的都是基于消息傳遞的并行編程方式。基于消息傳遞的并行編程環(huán)境中,最流行的是MPI(Message Process Interface)[6]。因此,MPI并行環(huán)境的配置研究是高性能計算的基礎(chǔ)工作,具有重要意義。該文以MPICH3.2為例,詳細介紹MPI并行環(huán)境的配置過程。
1 高性能計算概述
高性能計算是一個計算機集群系統(tǒng),它通過各種互聯(lián)技術(shù)將多個計算機系統(tǒng)連接在一起,利用所有被連接系統(tǒng)的綜合計算能力來處理大型計算問題,所以又通常被稱為高性能計算集群[7]。
高性能計算一直代表了計算機學(xué)科領(lǐng)域的尖端技術(shù),在這一領(lǐng)域的創(chuàng)新和技術(shù)突破,往往可被用于更為廣闊的商用市場,影響不同行業(yè)領(lǐng)域的應(yīng)用,從而帶動整個信息技術(shù)領(lǐng)域的發(fā)展。隨著高性能計算步入千萬億次時代,必將會對現(xiàn)有的系統(tǒng)架構(gòu)和應(yīng)用產(chǎn)生深刻的影響。
2 MPI并行環(huán)境介紹
MPI[8]的全稱是Message Passing Interface,即標準消息傳遞界面,是一種基于消息傳遞的并行編程接口,而不是一門具體的語言。目前已發(fā)展成為消息傳遞模型的代表和事實上的工業(yè)標準。1997年7月在原來MPI-1的基礎(chǔ)上推出了MPI的擴充部分MPI-2,MPI-2主要擴充了3個方面:并行I/O、遠程存儲訪問和動態(tài)進程管理。2012年9月,在MPI-2基礎(chǔ)上推出了MPI-3。
MPI吸取了眾多消息傳遞系統(tǒng)的優(yōu)點,具有可移植性和易用性,有完備的異步通信功能,有正式和詳細的精確定義。
3 MPI并行環(huán)境配置
MPI有多種實現(xiàn)版本,如,MPICH、CHIMP以及OPENMPI。其中MPICH是一種最重要的MPI實現(xiàn)版本。它的開發(fā)和MPI規(guī)范的制定是同步的,因此最能反映MPI的變化和發(fā)展,是MPI最成熟和最廣泛使用的版本。編程人員可以使用MPICH來使用這些MPI接口,以便寫出適合自己的基于消息傳遞的并行程序。編程人員使用C或者是Fortran語言來調(diào)用這些標準庫,實現(xiàn)程序的并行性,它可以從網(wǎng)上免費獲得。該文就以MPICH3.2在甘肅省計算中心高性能集群為例研究MPI并行環(huán)境的配置。
3.1 集群無密碼訪問配置
該集群操作系統(tǒng)為SUSE Linux Enterprise Server10.0,首先安裝rsh-server軟件包,然后配置/etc/hosts、/etc/hosts.equiv及/root/.rhosts文件,添加需要無密碼訪問的節(jié)點。
/etc/hosts文件將IP與host名對應(yīng),例如可添加如下行:
10.10.10.1 node1
10.10.10.2 node2
......
/etc/hosts.equiv和/root/.rhosts文件將host名添加進去,例如下行:
node1
node2
......
node*在實際情況中要替換成服務(wù)器的主機名,可通過hostname獲得主機名。
所有節(jié)點都要操作:
編輯/etc/xinetd.d/rsh和/etc/xinetd.d/rlogin文件,將disable=yes更改為disable=no,并將rexec、rlogin、rsh加入到/etc/securetty里面,然后重啟xinetd進程。
到此,可以通過ssh命令訪問不同的服務(wù)器,如果不需要密碼則說明服務(wù)器之間可以無密碼訪問:rsh node1。
3.2 MPICH3.2的安裝
3.2.1 下載安裝包并解壓縮
從網(wǎng)站http://www.mpich.org/downloads/下載mpich-3.2.tar.gz安裝包,然后tar zxvf mpich-3.2.tar.gz解壓縮到磁盤陣列。
3.2.2 配置configure文件
進入解壓后的目錄,配置configure文件。
./configure --prefix=/public1/home/user/jinnzh/mpich3.2
--prefix為軟件所安裝的目錄,該集群配置了磁盤陣列,測試用戶home目錄在磁盤陣列,因此--prefix配置到磁盤陣列。
3.2.3 編譯安裝程序
編譯 make
安裝 make install
3.3 配置環(huán)境變量
修改path,為path添加mpi的bin目錄:
vim .bashrc
在.bashrc文件的末尾添加:export PATH=/public1/home/user/jinnzh/mpich3.2/bin:$PATH
source .bashrc
echo $PATH,查看PATH變量是否發(fā)生變化;
ls/usr/local/mpich/bin,查看bin下的可執(zhí)行程序;
which mpiexec,查看命令是否安裝目錄下的命令。
3.4 修改做并行計算的主機名
修改/public1/home/user/jinnzh/mpich3.2/share/machines.LINUX文件,加入集群中可以用來做并行計算的主機名,例如:
node1:16
node2:16
node3:16
......
注:冒號后為節(jié)點的CPU數(shù)或者內(nèi)核數(shù)。
3.5 運行測試程序
在服務(wù)器節(jié)點上,以mpich自帶的計算PI值的并行計算程序cpi對所搭建的集群環(huán)境做簡單的測試。
步驟:
在/public1/home/user/jinnzh/mpich3.2/example目錄下。
(1)編譯#make cpi。
(2)啟動并行計算#mpirun–np N cpi(其中N為節(jié)點機的個數(shù))。
可以看到PI值及誤差和計算時間,說明環(huán)境搭建基本成功。
4 結(jié)語
隨著高性能計算的迅猛發(fā)展,越來越多的科學(xué)計算和工程應(yīng)用依賴于高性能科學(xué)計算,采用并行計算和計算機網(wǎng)絡(luò)技術(shù)構(gòu)建高性能科學(xué)計算集群,能夠有效提高計算速度并降低運算成本。這就需要構(gòu)建統(tǒng)一的并行計算環(huán)境,該文以甘肅省計算中心高性能計算集群為試驗集群,詳細介紹了mpich3.2的安裝過程,對高性能計算集群的構(gòu)建、維護、軟件編譯具有重要的指導(dǎo)意義。實際工作中,由于MPI的標準和MPI實現(xiàn)的多樣性,特別是不同的商業(yè)封裝的存在,在MPI環(huán)境的安裝和配置過程中有所不同,要詳細地閱讀相關(guān)的幫助文件,以便正確地配置MPI運行環(huán)境。
參考文獻
[1] 陳志明.科學(xué)計算:科技創(chuàng)新的第三種方法[J].中國科學(xué)院院刊,2012,27(2):161-166.
[2] 臧大偉,曹政,孫凝暉.高性能計算的發(fā)展[J].科技導(dǎo)報,2016,34(14):22-28.
[3] 朱小謙,孟祥飛,菅曉東,等.“天河一號”大規(guī)模并行應(yīng)用程序測試[C]//全國高性能計算學(xué)術(shù)年會.2011.
[4] 王濤.“天河二號”超級計算機[J].科學(xué),2013(4):52.
[5] 王濤.“神威太湖之光”超級計算機[J].科學(xué),2016(4):5.
[6] 遲學(xué)斌,趙毅.高性能計算技術(shù)及其應(yīng)用[J].中國科學(xué)院院刊,2007,22(4):306-313.
[7] 孫健超.基于Linux的集群系統(tǒng)的應(yīng)用研究[D].遼寧工程技術(shù)大學(xué),2009.
[8] Clarke L,Glendinning I,Hempel R.The MPI Message Passing Interface Standard: Programming Environments for Massively Parallel Distributed Systems[S].Birkh?user Basel,1994:179.