文洮 金能智 馬堯 趙志威



摘 ?要:高性能計算在近幾年得到了充分的發展,越來越多的高校、科研院所開始搭建適合自己需求的高性能計算集群,搭建的過程除了硬件、軟件、運行環境這些必要的條件以外,后期的維護也是需要重點關注的領域。本文分析了高性能計算集群的特征、搭建需求、整體思路以及后期維護需要注意的問題,并且通過實用的算例測試了集群并行效率,希望為該領域的科研用戶以及管理人員提供借鑒。
關鍵詞:高性能計算;集群;搭建;維護;并行效率
中圖分類號:TP393 ? ? ? ?文獻標識碼:A 文章編號:2096-4706(2019)05-0020-05
Abstract:High-performance computing has been fully developed in recent years. More and more universities and research institutes have begun to build high-performance computing clusters that suit their needs. The construction process is in addition to the necessary conditions of hardware,software and operating environment,later maintenance should also be the area of focus. This paper analyzes the characteristics of the high-performance computing cluster,the requirements of the construction,the overall idea and the problems that need to be paid attention to in the later maintenance,and tests the parallel efficiency of the cluster with practical examples,which provides a reference for the technicians who use and maintain the high-performance computing cluster.
Keywords:high performance computing;cluster;build;maintain;parallel efficiency
0 ?引 ?言
過去的20年中,我國各行業對計算資源的旺盛需求拉動了高性能計算基礎設施的迅猛發展,目前已實現由17個高性能計算中心構成的中國國家高性能計算服務環境,資源能力位居世界前列。這些發展成果得益于我國“863計劃”與“重點研發計劃”項目的實施,期間國際與國內科研和工業的發展對整個行業也產生了巨大的影響。美國研究世界最尖端、最前沿的高性能計算集群部署在國家實驗室、大學以及研究機構,與之相比,截至2017年,中國科技部批準建立的國家超級計算中心共有六家。其中,2016年榮獲世界超級計算排行榜“TOP500”第一的“神威太湖之光”部署在國家超算無錫中心,;連續在世界超級計算排行榜“TOP500”中7次占據第一的“天河二號”超級計算機運行于中山大學校園內的國家超算廣州中心,依托湖南大學運維的“天河一號”屬于國家超級計算長沙中心[1]。這說明國家級的超算中心依托于國內大學和科研機構在科研領域獲得了較好的成果,國家也在加大對這方面的投資。通過近幾年教育、研究和產業各個領域的合作,高性能計算的發展已經具備了良好的創新生態環境,2013年舉辦中國高性能計算學術年會開始以來,參會人員從300多人增加到如今的2000多人[2]。相對應地,中國的大學和科研機構也在不斷地搭建適應各自研發需求的高性能計算集群,但是高性能計算機的壽命通常只有4~5年,后期運行維護復雜集群系統的費用非常高。如果以每臺10萬元人民幣的價格購買5臺高性能計算刀片服務器,需投資50萬元人民幣作為設備費。后期運行維護所需的人力成本、設備維修、硬件損壞更換、電費和制冷費等,每年至少需要5萬元,以配套該刀片服務器,使這個集群正常運行[3]。一般大規模高性能計算集群都有專業的機房和運營團隊進行管理,但一些高校和科研機構自主搭建的中小規模高性能計算集群系統一般缺少這方面的經驗,硬件設備在實際的運作中由于管理人員維護不當和有限的機房環境條件造成計算刀片溫度過高、設備提前老化,大大減少了計算機設備的使用壽命,造成固定資產浪費和資源流失等后果[3]。因此,在中小規模高性能計算系統設施數量不斷增長、計算性能不斷提高的情況下,高性能計算集群的需求、硬件安裝、配置調試、運行維護等是需要關注的問題。只有對硬件和軟件,以及后期使用過程中的關鍵環節進行專業協調,才能最大程度地發揮其價值和作用。
1 ?高性能計算集群
1.1 ?高性能計算集群的概念
高性能計算機是在近幾年發展迅速,并且計算能力超強的計算機,逐漸成為計算機科學發展的一個分支[4]。將先進的高可用技術與高性能計算機有機結合起來的系統稱之為高性能計算集群,應用在越來越多的科學領域,例如能源短缺、環境污染、全球氣候變化、航空工業和高速鐵路等。
1.2 ?高性能計算集群的原理
使用高性能計算集群的目的是完成超大、超高和超復雜的計算任務,顯然這樣的任務是單臺計算機無法實現的,需要由N(N≥3)臺計算機齊心協力完成整個系統承擔的工作負載[5]。其工作原理示意圖如圖1所示,需要一個性能較好的管理節點對所有的計算節點,即nodes,進行統一管理,每一子節點相當于一臺計算機,上面運行自己獨立的操作系統,各節點間通過內部局域網進行互相連接。當管理節點接收到用戶提交的任務以后,通過作業管理系統將任務分發給各個節點,各個節點通過安裝在它們系統中的高性能組件來完成計算任務。各個子節點在計算完成之后,將計算結果通過網絡返回給管理節點,最終用戶通過外部網絡下載計算結果。
1.3 ?高性能計算集群的特征
高性能計算系統擁有超強的運算能力,能夠解決大規模的計算問題,更容易實現性能擴充,還可以根據計算能力的要求逐步擴充[6]。每一個節點是獨立運行的,如果其中某一個節點發生故障,它所運行的程序與之相連的服務器自動接管,這樣整個集群不會受到故障節點的影響,仍然可以提供服務,這樣就提高了設備的利用率。這種技術避免了整個系統出現癱瘓的情況,減少了操作系統和應用層的故障。集群系統的用戶可以通過網絡使用任何子節點,而且減少與既定停機有關的停機時間,這對于一個科研團隊或者用戶來說有著非常重要的意義。
另外,高性能計算集群所使用的硬件在同類型產品中價格較為低廉,而且構建整個軟件系統常用的工具,如Linux操作系統、MPICH編程環境、Intel編譯器、MKL數學庫等都可以從網上免費下載,因此軟件方面的成本減少了許多,這樣科研人員可以不用花費太多經費即可建立自己的高性能計算集群,從而將經費投入到更需要的研究中。
2 ?高性能計算集群的搭建
2.1 ?集群搭建的思路
在搭建任何一個高性能計算集群系統之前,首要的任務是確定該集群的應用類型,因為這些將對該系統計算節點的配置選型、節點間網絡通訊的類型以及采用哪種集群控制系統和操作系統起到決定性的作用。從應用的層面可以分為三個方面來確定集群的類型,即應用的粒度、應用的計算特性和應用的時效性[7]。例如,應用粒度較大的計算,節點間通訊較少,而小粒度的應用計算需要大量的節點間通訊;應用的計算特性主要分為多媒體運算、科學計算、數據庫應用,其中科學計算主要使用浮點計算功能,這也是目前高性能計算系統的最主要應用領域;應用的時效性主要取決于完成計算任務的時間,如天氣預報模擬就需要非常快速的計算得出結果,否則就失去了意義。
在確定高性能計算集群的應用類型后,就可以確定系統的硬件參數、軟件等內容。高性能計算集群系統的應用示意圖如圖2所示,用戶在客戶端可以選擇適合自己的登陸方式,例如安裝SSH、Putty、WinSCP、VNC等遠程登錄軟件來登陸集群。登陸集群之后可以進行具體的建模過程,建立完成后,將計算的模型用命令行來提交作業。登陸節點的任務是接收作業任務,而后通過作業管理軟件對任務進行分配。當用戶檢測到作業任務完成之后,通過登錄軟件下載結果數據,最后對計算結果進行處理后得出計算結論[8]。其中客戶端的安裝、作業提交、集群管理屬于集群的軟件系統,而登陸節點、計算節點、存儲系統則屬于集群的硬件系統,最終共同通過網絡連接成一個統一的整體進行運營。
下面以甘肅省計算中心進行集群擴容升級為例,分析高性能計算集群系統搭建的整個過程。按照甘肅省計算中心提供計算的用戶分類可知,用戶主要為科學計算與工程計算,大部分用戶來自甘肅省高校、科研院所與企業等,通過統計分析,這些用戶大多數應用粒度大、應用時效性要求較低,用于基礎科研的較多。下面將從集群硬件、集群軟件和集群配置方面進行簡單的介紹。
2.1.1 ?集群硬件
該高性能計算集群硬件為中科曙光CX50-G20,其硬件體系架構如圖3所示,分別由20臺兩路計算刀片服務器、1臺登錄節點、1臺管理節點以及存儲系統組成。所有計算節點通過56GB InfiniBand網絡互連,其中一臺千兆交換機與登錄節點和管理節點連接,該交換機接入外網,集群用戶通過該交換機連接高性能計算集群提交作業任務。
2.1.2 ?集群軟件
通用集群系統的軟件系統一般由以下幾個軟件部分組成,操作系統、并行化應用程序、作業管理、系統管理和開發環境等[9]。Linux操作系統依然是高性能計算集群操作系統的最佳選擇,其可擴展性、可靠性、靈活性和易用性在集群管理中起到了非常重要的作用。本次擴容升級的集群系統軟件層次結構圖如圖4所示,系統構建底層平臺是CentOS6.2,安裝了MPICH3.2、Intel編譯器、MKL數學庫等運行環境,通過曙光的Gridview集群管理軟件監控集群的狀態、性能,還可以進行作業管理等工作。
編譯器與數學庫在基于Linux的高性能計算集群系統中的作用非常重要,因為在許多科學計算的應用中,一些軟件是開放源碼程序,這些源碼程序由C++語言編寫,編譯器的作用就是將這些“C++”翻譯為“機器語言”的程序[10]。源程序經過編譯器的編譯才能轉化成可執行的程序。以下是編譯器的主要工作流程:源代碼(source code)→預處理器(preprocessor)→編譯器(compiler)→目標代碼(object code)→鏈接器(linker)→可執行程序(executables)[11]。該高性能集群在集群根目錄下安裝了Intel編譯器,供所有使用集群的用戶使用,其下載安裝包為parallel_studio_xe_ 2019_update1_cluster_edition.tgz。
利用編譯器編譯完成的可執行程序在運行時還需要調用大量的數學庫進行各種計算,現已有一些比較成熟的標準化數學庫,如線性代數方面的BLAS、LAPACK、ScaLAPACK和FFTW等等。通常情況下推薦使用具有更高性能的AMD官方ACML數學庫(AMD Core Math5-Library),該庫為PGI-7.0版本編譯器所匹配的數學庫[12]。由于該集群安裝了Intel編譯器,所以使用相關的MKL,即Intel?Math Kernel Library for Linux數學庫安裝包相匹配。數學庫與函數庫在集群安裝初期配置中并不是必須的,一些集成度高的商用計算軟件在集群上運行計算任務時,需要在腳本文件中寫入調用編譯器與數學庫的路徑,用戶也可以根據自己實際應用的情況進行下載安裝配置。
2.1.3 ?集群配置
在完成了高性能計算集群系統的硬件與軟件的準備工作之后,要將集群運行起來還必須進行相關的配置工作[13]。最初的配置操作應該在管理節點上進行,其他子節點的配置過程與主節點類似,主節點配置完成后許多配置文件或者操作可以復制在子節點上。高性能計算集群基本配置過程如圖5所示。
首先,為了避免用戶在節點數量多的情況下重復輸入用戶名和密碼,需要為集群配置無密碼訪問的操作。下面以rsh遠程通信協議為例介紹實現集群無密碼訪問的功能,需要安裝rsh-server軟件包,然后配置/etc/hosts、/etc/hosts.equiv及/root/.rhosts文件,添加需要無密碼訪問的節點,并且所有節點都要操作。編輯/etc/xinetd.d/rsh和/etc/xinetd.d/rlogin文件,將disable=yes更改為disable=no,并將rexec、rlogin、rsh加入到/etc/securetty中,然后重啟xinetd進程。到此,可以通過rsh命令訪問不同的服務器,如果不需要密碼,則說明服務器之間可以無密碼訪問[14]。
其次,需要進行登陸節點的網絡配置。在確保所有節點計算機都已安裝TCIP/IP協議的情況下,為所有節點統一分配IP地址,所有節點的IP地址盡量在一個域中,以方便管理[15]。在某一個節點的配置文件/etc/hosts中,輸入集群內全部節點的IP、名稱、別名等網絡配置信息,每一個子節點的網絡配置信息是一樣的,接著使用單一系統通過遠程操作,復制/etc/hosts中的網絡配置文件到所有子節點。
最后,進行并行環境配置。以MPICH3.2的安裝為例,簡單介紹一些重要的安裝步驟:
(1)從網站http://www.mpich.org/dowllloads/下載mpich-3.2.tar.gz安裝包;
(2)#tar zxvf mpich-3.2.tar.gz,解壓縮到磁盤陣列;
(3)#cd/root/mpich,進入解壓后的目錄;
(4)配置configure文件,#./configure--prefix=/publicl/home/user/user001/mpich3.2,--prefix為軟件所安裝的目錄;
(5)#make
(6)#make install
3 ?集群搭建后的管理與維護
3.1 ?集群作業管理系統
曙光Gridview高性能計算的綜合管理系統基于TOR-QUE(Tera-scale Open-source Resource and Queue manager)來實現對集群的安裝部署、配置、狀態監控、告警、報表分析等運行維護管理工作,以及對高性能計算資源的調度分配、作業提交、作業管理、狀態監控和統計記賬等功能[16]。以作業提交為例,Girdview有兩種作業提交方式,一種為腳本方式,可選擇已經寫完整的腳本文件所在的絕對目錄進行提交;另外一種方式為命令行方式,用戶需在命令行輸入界面輸入運行作業相關的命令行。以下是作業提交中非常常見的簡單實用型腳本:
#!/bin/bash
#PBS–N testjob ? //指定作業名稱
#PBS–l node=2:ppn=28 ? //作業所需要節點數以及每個節點運行core數
#PBS–q queue_name ? //指定作業提交到哪個隊列
mpirun–np作業總core數–machinefile $PBS_NODEFILE./cpi ? //真正執行作業的指令,其中總cores=no des×ppn。
3.2 ?集群環境監控與維護
鑒于高性能計算集群的高可用性,一般用戶要求7×24小時×365天不間斷運行。大量的計算任務提交到計算節點上,各個節點都處于高速運轉的狀態,計算刀片以及周邊設備發熱量驟增,服務器排風口的溫度基本都在40℃左右。因此,良好的機房環境、制冷系統是保障該系統運行的必要條件。科學合理的機房氣流組織也是建立集群時必須考慮的問題之一,遵循“冷道在柜前、熱道在柜后”的原則,將冷熱通道區分開有利于空調快速帶走熱量,降低空調制冷系統能耗[17]。
如上所述,該集群要進行長期、穩定的運行需要機房空調設施來保持機房標準溫度,同時離不開不間斷的UPS電源保護,這些工作除了由集群監控軟件完成一部分以外,還需要有經驗、管理能力較強的技術人員去解決各個環節出現的問題。具體的措施如下:
(1)對經常出現故障的、容易老化的設備硬件做好記錄,并定期排查,出現問題及時進行更換或維修處理;
(2)密切監控集群使用情況,若出現節點宕機、登陸節點死機、IO節點故障等要及時處理,以免造成用戶數據丟失;
(3)制定合理的機房運維制度、執行制度和管理制度,提升集群管理人員技術水平,應對日常問題和突發問題。
4 ?集群并行效率測試
通過作業提交軟件Gridview提交測試計算作業,最大并行規模為140核,跨節點計算時,每個節點用滿28核。作業正常結束后,根據Gridview作業統計信息,得到完成該作業所運行的機時(Run Time),根據統計結果計算出加速比以及并行效率。加速比即同一個任務在單處理器系統和N個并行處理器系統中運行消耗時間的比率。
4.1 ?測試環境
測試集群計算節點的系統環境如表1所示。
4.2 ?測試算例
用VASP對含有62個原子的Ni孿晶模型進行單點能計算,計算過程中采用的計算參數與模型完全相同。采用不同計算資源時的CPU性能分析,即運行時間對比如表2所示。其中加速比=1166.551/不同節點CPU運行時間,并行效率=加速比/節點數。
測試結果如圖6所示,隨著并行核數的增加,加速比在28核與56核時線性加速非常明顯,隨著計算核數繼續增加,計算耗時不斷回落,加速比數據一直呈小幅攀升趨勢。當并行測試規模擴大至140核,也就是單節點28核的5倍時,可以看到計算時間從單節點28核的1165.551秒縮短至492.118秒,也就是計算時長縮短了近1/2,計算時長并沒有縮短到理論的1/5,此時的加速比倍數為2.37,并且并行效率維持在47%的水平。因此,在使用VASP求解此類計算問題時,需要及時注意計算資源的變化趨勢情況,根據求解問題類型和模型類型特點選用合理的區域分解方案和多核并行加速策略,以實現計算資源的優化配置和最佳使用狀態。
5 ?結 ?論
我國高性能計算應用的發展已經到了上升的關鍵時期,在國家大力的投入與支持下,將持續朝著良好的態勢發展。高性能計算集群不只是簡單地將一些硬件搭建在一起就能投入使用,而是需要詳盡的規劃來進行建設。在集群數量持續上漲的同時,許多維護的困擾也相應出現,在整個系統設計的初期應該具有長遠的眼光,謹慎地考慮問題。在搭建后使用的階段,更應該根據實際運行情況,不斷調整整個機器的資源調度策略和隊列設置等,以適應用戶的需求。
參考文獻:
[1] 鄭曉歡,陳明奇,唐川,等.全球高性能計算發展態勢分析 [J].世界科技研究與發展,2018,40(3):249-260.
[2] 袁國興,姚繼鋒.2017年中國高性能計算機發展現狀分析 [J].計算機工程與科學,2017,39(12):2161-2166.
[3] 鄧賓.高性能計算集群的建立及管理 [J].自動化與儀器儀表,2014(2):149-151.
[4] 王濤,李強.全球未來計算競爭態勢及對我國的啟示 [J].電信技術,2018(6):43-46.
[5] 錢德沛.我國高性能計算的回顧與展望 [J].民主與科學,2017(4):20-23.
[6] 孟玲玲.高性能計算集群系統建設與運行管理研究 [J].軟件導刊,2017,16(3):138-140.
[7] 遲學斌.高性能計算環境與應用 [J].國防科技工業,2018(5):21-22.
[8] 鐘澤秀,詹曉東,裴春梅.低成本的高性能計算環境的搭建 [J].蕪湖職業技術學院學報,2016,18(4):33-36.
[9] 陳曉霞,孫婧.中國氣象局的高性能計算機系統 [J].科研信息化技術與應用,2012,3(5):83-90.
[10] 黃建強,孟永偉,曹騰飛,等.青海大學三江源數據分析中心高性能計算集群的構建與設備管理[J].實驗技術與管理,2014,31(12):237-240.
[11] 高永國,鄧津.甘肅省地震局高性能計算系統 [J].地震地磁觀測與研究,2018,39(1):149-153.
[12] 游偉倩,盛樂標,張予倩.南京大學大型高性能計算集群平臺建設研究 [J].科技創新導報,2018,15(4):126-127.
[13] 郭宇,葛佳斌.高性能計算集群運維自動化研究 [J].網絡安全技術與應用,2017(6):59-61.
[14] 金能智,者建武,李唐艷,等.基于Linux的高性能計算集群MPI并行環境配置研究 [J].科技創新導報,2017,14(3):116-117.
[15] 朱宏武,尹新懷,羅丹,等.湖南省氣象局遠程高性能計算環境的設計與實現 [J].南京信息工程大學學報(自然科學版),2016,8(3):259-266.
[16] 中科曙光.Gridview3.2普通用戶用戶手冊 [Z].曙光信息產業股份有限公司,2013.
[17] 李博.通信機房的運行維護工作探究 [J].信息系統工程,2018(9):101.
作者簡介:文洮(1987-),女,漢族,甘肅人,助理研究員,研究生,研究方向:高性能計算、數值模擬等。