蔡 曄,周春云,羅秋明
(1.深圳大學(xué)國家高性能中心深圳分中心,廣東深圳 518060;2.揚州萬方電子技術(shù)有限責(zé)任公司,江蘇揚州 225006)
近年來,隨著微處理器技術(shù)的發(fā)展和進步,主流并行計算體系結(jié)構(gòu)獲得了飛速發(fā)展。目前多核處理器已經(jīng)成為主要的計算單元,傳統(tǒng)的并行體系結(jié)構(gòu)底層逐步向片內(nèi)過渡,并行計算的并行層次相應(yīng)增加。另外,混合異構(gòu)結(jié)構(gòu)迅速發(fā)展,快速標量部件、向量部件、FPGA、GPU 等加速部件已充分應(yīng)用到在并行體系結(jié)構(gòu)上[1]。
SMP(symmetric multi-processor)結(jié)構(gòu)是傳統(tǒng)并行體系結(jié)構(gòu)中高性能服務(wù)器和工作站架構(gòu)提升性能的有效手段。SMP當前發(fā)展趨勢是逐步向片內(nèi)多核過渡,將SMP系統(tǒng)實現(xiàn)在一塊芯片內(nèi)部。由于多個處理器集成在一塊芯片上,故采用共享緩存或者內(nèi)存的方式,同時利用片內(nèi)的高帶寬總線來替代片外總線,可以有效降低多線程通信延遲。CC-NUMA(cache-coherent NUMA)結(jié)構(gòu)主要針對SMP結(jié)構(gòu)在可擴展上的局限性,實現(xiàn)在更大規(guī)模上的并行計算。傳統(tǒng)CC-NUMA互連技術(shù)一般使用多級交叉開關(guān)結(jié)構(gòu)來減少連接代價,由于受物理通信鏈路數(shù)量以及并行總線頻率增長的約束,以及專用互連芯片帶來了額外的延遲,早期的結(jié)構(gòu)在多核處理器出現(xiàn)后,處理器間通信能力很難適應(yīng)日益增長的片上通信帶寬,因此出現(xiàn)了處理器間直接互連技術(shù)(direct link)。direct link的主要技術(shù)特點:一是首先處理器集成內(nèi)存控制器,可讓主內(nèi)存響應(yīng)時間更快,同時可降低緩存大小以及芯片制造的成本;二是通過專用連接通道實現(xiàn)處理器間直接通信,避免了專用橋或路由芯片的使用,可減少系統(tǒng)成本和轉(zhuǎn)發(fā)帶來的延遲;三是基于先進的串行通信技術(shù)來提供高速連接,通過一路或多路并行來保證互連帶寬。
在系統(tǒng)級互連方面,典型結(jié)構(gòu)依然為機群CLUS-TER 結(jié)構(gòu)以及MPP(massively parallel processor)結(jié)構(gòu),CLUSTER 是一種松耦合結(jié)構(gòu),MPP 為緊耦合結(jié)構(gòu)。MPP處理器之間通常由伸縮性較好的特制的互連網(wǎng)絡(luò)(如Mesh、交叉開關(guān)網(wǎng)絡(luò)等)相連,每個處理器之間通過消息傳遞的方式進行通信和協(xié)調(diào)。機群系統(tǒng)將大量同一品種的工作站或微機通過高速網(wǎng)絡(luò)互連,以構(gòu)成廉價的高性能計算機系統(tǒng)。MPP 和CLUSTER 結(jié)構(gòu)在多核處理器出現(xiàn)后,面臨著新的挑戰(zhàn),多核作為一種新的并行層次出現(xiàn),并行軟件需要相應(yīng)的發(fā)展變化,或?qū)で髲牡讓觼響?yīng)對,對多核加以隱藏,或是把高端計算里面并行程序設(shè)計語言和環(huán)境(如MPI和OpenMP)組合起來用,根據(jù)多核的特點,充分利用新的體系結(jié)構(gòu)的優(yōu)勢加以性能優(yōu)化。另外,混合異構(gòu)結(jié)構(gòu)的普遍出現(xiàn)和應(yīng)用,導(dǎo)致軟件基礎(chǔ)架構(gòu)的關(guān)鍵部分難以跟上變化的步伐,也給傳統(tǒng)并行算法的設(shè)計和教學(xué)帶來了機遇和挑戰(zhàn)。
計算機并行體系結(jié)構(gòu)和并行軟件日新月異的發(fā)展,導(dǎo)致高校在進行并行體系結(jié)相關(guān)課程教學(xué)時,首先要及時跟蹤國內(nèi)外并行體系結(jié)構(gòu)領(lǐng)域的主流技術(shù)和最新進展,并反映到課堂教學(xué)上;其次要不斷更新相關(guān)的實驗室設(shè)施、設(shè)備,以及實踐方法和手段,以適應(yīng)不斷變化的并行體系結(jié)構(gòu)的教學(xué)需求。
深圳大學(xué)國家高性能中心深圳分中心致力于國產(chǎn)個人高性能計算機的研制,先后和相關(guān)單位聯(lián)合研制了KD 系列[2-3]和SD 系列[4]個人高性能計算機(personal high performance computer,PHPC)系統(tǒng)[5]。從2010年起,結(jié)合科研優(yōu)勢,在本科教學(xué)層次成立了高性能計算特色班,立足為高性能計算發(fā)展和并行計算培養(yǎng)高素質(zhì)的基礎(chǔ)學(xué)術(shù)性人才和應(yīng)用型綜合人才。為了滿足教學(xué)和實驗的需求,結(jié)合研制PHPC 系統(tǒng)的技術(shù)積累,和相關(guān)公司聯(lián)合設(shè)計了一種統(tǒng)一并行體系結(jié)構(gòu)實驗平臺。“統(tǒng)一實驗教學(xué)”平臺的概念由清華大學(xué)計算機實驗教學(xué)中心提出[6-7],并設(shè)計了計算機硬件統(tǒng)一實驗平臺,完成了對計算機硬件課程實驗的整合,支持計算機硬件系列課程中的主干課程實驗(數(shù)字邏輯、計算機組成原理和計算機系統(tǒng)結(jié)構(gòu))。實踐表明,有效減少了教學(xué)資源的硬件浪費,縮短了學(xué)生熟悉實驗設(shè)備的時間,提高學(xué)生實驗的系統(tǒng)性。
本文研制的統(tǒng)一并行體系結(jié)構(gòu)實驗平臺(以下簡稱實驗平臺)基于“統(tǒng)一實驗教學(xué)“的思想,采用國產(chǎn)高性能多核處理器龍芯3A(4核)或3B(8核)[8]進行設(shè)計。該實驗平臺具有以下特點:(1)便攜性,采用PHPC技術(shù),在單一定制機箱(440 mm×420 mm×320mm)單元內(nèi)可支持高達萬億次的并行計算能力;(2)靈活性,可通過系統(tǒng)配置支持最新的各種并行體系機構(gòu)以及互聯(lián)結(jié)構(gòu),并實現(xiàn)功能擴展;(3)統(tǒng)一性,可將計算機并行體系結(jié)構(gòu)相關(guān)的多門課程和實驗教學(xué)統(tǒng)一到一個實驗平臺上;(4)開放性,從系統(tǒng)硬件、BIOS、操作系統(tǒng)以及并行計算基礎(chǔ)平臺都進行了開源,可支持更深入的教學(xué)或科研工作;(5)先進性,符合當前計算機并行體系結(jié)構(gòu)發(fā)展的最新進展。
該實驗平臺的設(shè)計目標是利用PHPC 技術(shù),設(shè)計便攜的面向并行體系結(jié)構(gòu)教學(xué)和實驗用的儀器平臺,系統(tǒng)峰值性能可達萬億次,不但能滿足教學(xué)和實驗的需求,而且能提供給科研人員使用。并行體系結(jié)構(gòu)實驗平臺采用了國產(chǎn)龍芯3號處理器,龍芯3號的互連接口采用了擴展的HyperTransport(HT)[9]協(xié)議,既可以連接IO,也可以實現(xiàn)多芯片間的直接互連(direct-link)。龍芯3 號在單芯片上同時提供了板級互連接口(HT0,16位,可拆分為2個8位通道使用)以及系統(tǒng)級的互連接口(HT1,16位,可拆分為2個8位通道使用)。在統(tǒng)一并行體系結(jié)構(gòu)實驗平臺中,HT0用來實現(xiàn)2個處理器直接互連以實現(xiàn)CC-NUMA 結(jié)構(gòu),而HT1則拆分為2個8位通道,其中高8位HT1通道用于連接系統(tǒng)北橋和南橋,進行網(wǎng)絡(luò)IO 接口擴展,擴展后的網(wǎng)絡(luò)IO 接口信號連接到背板的FPGA芯片上進行交換;低8位HT1通道則直接連接到背板的FPGA 互聯(lián)芯片上,支持通過處理器前端總線直接高效地進行交換。背板通過FPGA 實現(xiàn)10個處理器的互連,通過配置可實現(xiàn)不同的互連方式和拓撲結(jié)構(gòu)。該實驗平臺可滿足并行體系結(jié)構(gòu)相關(guān)課程,包括:計算機高級體系結(jié)構(gòu)[10],并行計算機體系結(jié)構(gòu),并行算法的設(shè)計與分析,并行算法實踐,并行程序設(shè)計等[11-14]的教學(xué)和實驗需求。
該實驗平臺總體組成包括:440mm×420mm×320 mm 單一定制機箱;計算節(jié)點(雙路龍芯3/AB 8核處理器刀片)×5,集成10個(PE1—PE10)龍芯3A8核(或龍芯3B8核)處理器,系統(tǒng)峰值性能可達萬億次(采用龍芯3B);前置服務(wù)主板1個,提供系統(tǒng)引導(dǎo)、磁盤存儲、用戶登錄、任務(wù)調(diào)度等功能;系統(tǒng)支持雙交換通道,即16端口千兆以太網(wǎng)交換通道以及背板定制的FPGA 互連交換通道,其中16端口千兆以太網(wǎng)交換機用于系統(tǒng)內(nèi)部管理,連接前置服務(wù)主板和5個龍芯計算刀片,而背板上定制的FPGA互連通道則用于計算節(jié)點之間計算和數(shù)據(jù)交換使用,可提供2種互連交換模式,一種為48端口以太網(wǎng)交換方式,在這種模式下,處理器通過南橋擴展的網(wǎng)絡(luò)接口直接連接到FPGA進行網(wǎng)絡(luò)交換;另一種為通過處理器前端HT總線直接進行交換的模式,即MPP互連模式,在MPP互連模式下,通過配置內(nèi)部路由模塊的參數(shù)可實現(xiàn)計算節(jié)點間不同的系統(tǒng)互連和拓撲結(jié)構(gòu)。系統(tǒng)總體結(jié)構(gòu)參見圖1。
圖1 系統(tǒng)總體結(jié)構(gòu)
該實驗平臺的計算節(jié)點采用2 個龍芯多核處理器作為計算處理單元(PE),2 個龍芯多核處理器之間通過基于HT 總線的直接互連技術(shù)實現(xiàn)CC-NUMA 并行結(jié)構(gòu),該系統(tǒng)在設(shè)計時可同時兼容龍芯3A(4核)或龍芯3B(8 核)處理器。在采用龍芯3B 時的計算節(jié)點結(jié)構(gòu)如圖2 所示,單處理器為8 核SMP結(jié)構(gòu),雙處理器之間使用直接互連技術(shù),通過處理器前端HT 總線構(gòu)成2 路CC-NUMA 結(jié)構(gòu),每個計算節(jié)點可實現(xiàn)16 核的CC-NUMA 結(jié)構(gòu)的高性能并行系統(tǒng)。
圖2 雙路龍芯CC-NUMA結(jié)構(gòu)
與常規(guī)CC-NUMA 結(jié)構(gòu)系統(tǒng)共享一個IO 套片不同,該實驗平臺每個處理器采用了獨立的IO 套片進行IO 功能擴展,每個處理器計算節(jié)點為每個處理器提供了高達5路千兆網(wǎng)絡(luò)互聯(lián)接口。因此系統(tǒng)并行結(jié)構(gòu)在不使用處理器間CC-NUMA 互連通路時(通過軟件配置)可以配置為SMP-CLUSTER(MPP)兩級并行結(jié)構(gòu),在使用處理器之間互連時可以配置為SMP-(CC-NUMA)-CLUSTER(MPP)的三級并行結(jié)構(gòu)。在表1 中列出了該實驗平臺支持的7 種并行體系結(jié)構(gòu)。由于龍芯3B處理器內(nèi)部采用了向量部件加速部件技術(shù),在使用龍芯3B 處理器時,還支持基于向量部件的混合異構(gòu)結(jié)構(gòu)。每個計算節(jié)點提供了高速FLASH(SATA DOM 盤)本地存儲,也可利用外部共享磁盤陣列處理海量數(shù)據(jù)。
當采用MPP互聯(lián)模式時,可通過對FPGA 內(nèi)部實現(xiàn)的路由器的連接和對參數(shù)進行靈活配置以實現(xiàn)不同的互聯(lián)拓撲結(jié)構(gòu)。實現(xiàn)的路由器結(jié)構(gòu)示意圖見圖3。每個處理器通過HT1 低8 位互連通道與FPGA內(nèi)部實現(xiàn)的一個路由器(Router)相連接,路由器支持東、南、西、北和上、下總計6 個連接通路,用于和其他處理器的路由器連接,每個方向可根據(jù)實際需求連接和配置使用。因此可通過不同的配置實現(xiàn)常見的二維(使用東、南、西、北4個通道)、三維(使用東、南、西、北和上、下6 個通道)、環(huán)形(使用東、西2 個通道)以及樹形等拓撲結(jié)構(gòu),可在教學(xué)和實驗中讓學(xué)生實際配置,以及評估不同互連拓撲的結(jié)構(gòu)特點并進行性能分析。
表1 統(tǒng)一并行體系結(jié)構(gòu)實驗平臺并行體系結(jié)構(gòu)的配置
圖3 FPGA路由器結(jié)構(gòu)示意圖
該實驗平臺采用了遠程分布式實時監(jiān)控方案,如圖4所示,前置管理服務(wù)器通過百兆網(wǎng)絡(luò)與底板的控制單片機AX11015通信,完成對整個系統(tǒng)的管理。其監(jiān)控網(wǎng)絡(luò)由I2C 總線、UART 總線和若干控制總線組成,控制AX11015單片機可根據(jù)系統(tǒng)負載狀況,獨立關(guān)閉處理單元或者計算節(jié)點,以及自動調(diào)節(jié)散熱風(fēng)扇的轉(zhuǎn)速,或通過串口獲取處理器的運行狀態(tài),通過UART 轉(zhuǎn)TCP/IP機制發(fā)送到遠程服務(wù)器上。
圖4 系統(tǒng)監(jiān)控管理方案
采用該實驗平臺實施并行體系結(jié)構(gòu)相關(guān)課程的教學(xué),有利于解決現(xiàn)在各課程獨立進行教學(xué)和實驗時存在的問題。傳統(tǒng)教學(xué)的各門課程教學(xué)和實驗內(nèi)容各自獨立,相互之間缺少銜接性,學(xué)生在學(xué)習(xí)過程中無法建立系統(tǒng)的概念,而且現(xiàn)有的實驗設(shè)備缺少靈活性,無法跟上體系結(jié)構(gòu)的實際發(fā)展,不能真實地提供不同并行體系結(jié)構(gòu)和互連拓撲結(jié)構(gòu),而且很多實驗僅通過仿真軟件實現(xiàn),實驗方式限制了學(xué)生的興趣和創(chuàng)造性。另外,不同課程總共需要的實驗設(shè)備和PC機型號相對較多,實驗室管理困難,維護成本較高。采用統(tǒng)一并行體系結(jié)構(gòu)實驗平臺則能有效地解決這些問題。
深圳大學(xué)面向本科教學(xué)的并行體系結(jié)構(gòu)系列課程主要有4門:并行體系結(jié)構(gòu)、并行算法設(shè)計、并行數(shù)值算法以及并行程序設(shè)計和實踐。在引進該實驗平臺后,采取了“統(tǒng)一實驗教學(xué)”的思路,系列課程設(shè)定統(tǒng)一的教學(xué)目的,各課程的教學(xué)內(nèi)容按總體目的分工劃分,但相對獨立,實驗內(nèi)容統(tǒng)一在該實驗平臺上完成,并保證個課程實驗內(nèi)容之間的銜接性。這樣學(xué)生在實驗時可以快速上手,充分激發(fā)學(xué)生學(xué)習(xí)并行體系結(jié)構(gòu)和并行計算的積極性,縮小理論教學(xué)和實際應(yīng)用能力之間的差距。
深圳大學(xué)設(shè)定的并行體系結(jié)構(gòu)系列課程的統(tǒng)一教學(xué)目的為:系列課程以并行體系結(jié)構(gòu)和并行計算為主題,要求講授并行計算的硬件平臺(當代并行計算機系統(tǒng)及其結(jié)構(gòu)模型)、軟件支撐(并行程序設(shè)計)和理論基礎(chǔ)(并行算法的設(shè)計和并行數(shù)值算法)。在內(nèi)容組織上,強調(diào)并行機結(jié)構(gòu)、并行算法和并行編程為一體,著重討論并行算法的設(shè)計及其實現(xiàn),并力圖反映本學(xué)科的最新成就和發(fā)展趨勢,體現(xiàn)并行機硬件和軟件相結(jié)合、并行算法和并行編程相結(jié)合的思想。在教學(xué)過程中采用統(tǒng)一的并行教學(xué)實驗平臺,各課程統(tǒng)一安排足夠數(shù)量的實踐內(nèi)容,以鞏固和加深學(xué)生對并行算法理論、設(shè)計技術(shù)、分析方法和具體實現(xiàn)等各個環(huán)節(jié)的銜接性和整體理解。
根據(jù)系列課程的總體要求,具體課程總體實驗教學(xué)的總體要求如下:
(1)并行體系結(jié)構(gòu):通過該實驗平臺讓學(xué)生熟悉4種以上的主流并行計算平臺,包括共享存儲的多處理機(SMP)、分布存儲的多計算機(CC-NUMA)、目前流行的PC機群結(jié)構(gòu)以及MPP并行結(jié)構(gòu),實現(xiàn)不同的互連拓撲結(jié)構(gòu)并進行性能測試。要求學(xué)生能夠使用上述幾種并行計算平臺所提供的硬/軟件環(huán)境及工具來開展自己的實驗工作。
(2)并行程序設(shè)計和實踐:在該實驗平臺上熟悉Linux操作系統(tǒng)和并行編程環(huán)境,掌握至少2種并行程序設(shè)計語言標準,即分布存儲的MPI和共享存儲的OpenMP。另外,對面向大型科學(xué)和工程計算的HPF(高性能Fortran)也應(yīng)盡量了解和熟悉。
(3)并行算法設(shè)計:選擇典型的非數(shù)值并行算法,使用并行程序設(shè)計和實踐用的并行編程語言標準,在不同的并行計算平臺上編程調(diào)試、分析和運行它們,要求通過不同特點的算法讓學(xué)生體會不同的并行計算平臺的優(yōu)劣。
(4)并行數(shù)值算法:選擇典型的數(shù)值并行算法,使用并行程序設(shè)計和實踐用的并行編程語言標準,在不同的并行計算平臺上編程調(diào)試、分析和運行它們,要求通過不同特點的數(shù)值算法讓學(xué)生體會不同的并行計算平臺的優(yōu)劣。
這樣,通過該實驗平臺,相關(guān)課程的教學(xué)和實驗具有一定的銜接性和繼承性,使學(xué)生能在統(tǒng)一規(guī)劃下逐步掌握底層硬件和系統(tǒng)結(jié)構(gòu)、基礎(chǔ)并行軟件平臺、并行應(yīng)用開發(fā)的全過程。
統(tǒng)一并行體系結(jié)構(gòu)實驗平臺的研制成功,將給高校計算機專業(yè)并行體系結(jié)構(gòu)系列課程的教學(xué)提供一個新的思路。統(tǒng)一并行體系結(jié)構(gòu)實驗平臺能保證系列課程的實驗內(nèi)容具有良好的銜接性,充分提高學(xué)生的實驗興趣和實驗的積極性,對進一步深化相關(guān)課程的教學(xué)改革、提高課程的教學(xué)水平和教學(xué)質(zhì)量、促進課程的建設(shè)與發(fā)展具有重要意義。
(
)
[1]陳國良,孫廣中,徐云,等.并行計算的一體化研究現(xiàn)狀與發(fā)展趨勢[J].科學(xué)通報,2009,54(8):1043-1049.
[2]張俊霞,張煥杰,李會民.基于龍芯2F的國產(chǎn)萬億次高性能計算機KD-50-I的研制[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,2008,38(1):105-108.
[3]張俊霞,李春生,張煥杰.KD-50-I-E:一臺增強型高性能計算機[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,2009,39(8):894-896.
[4]陳國良,蔡曄,羅秋明.國產(chǎn)個人高性能計算機系統(tǒng)研制[J].深圳大學(xué)學(xué)報,2011,28(6):471-477.
[5]孫凝暉,陳國良.PHPC:一種普及型高性能計算機[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,2008,38(7):745-752.
[6]全成斌,管曉培,李山山,等.計算機硬件實驗統(tǒng)一平臺設(shè)計[J].計算機教育,2008(18):3-5.
[7]湯志忠.清華“計算機專業(yè)實踐”課程的創(chuàng)新與實踐[J].計算機教育,2006(7):7-9.
[8]Hu W,Wang J,Gao X,et al.Godson-3:A Scalable Multicore RISC Processor with x86Emulation[J].IEEE Micro,2009(29):17-29.
[9]HyperTransportTM I/O Link Specification Revision 3.0[S].USA:HyperTransport Technology Consortium,2006.
[10]鄭緯民,湯志忠.計算機系統(tǒng)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2001.
[11]陳國良.并行計算:結(jié)構(gòu)·算法·編程[M].北京:高等教育出版社,2003.
[12]陳國良.并行算法的設(shè)計與分析[M].修訂版.北京:高等教育出版社,2003.
[13]陳國良.并行計算機體系結(jié)構(gòu)[M].北京:高等教育出版社,2003.
[14]陳國良.并行算法實踐[M].北京:高等教育出版社,2003.