日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

随机生成稀疏矩阵_面向异构众核超级计算机的大规模稀疏计算性能优化研究

發(fā)布時(shí)間:2023/12/3 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 随机生成稀疏矩阵_面向异构众核超级计算机的大规模稀疏计算性能优化研究 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方藍(lán)字關(guān)注我們

面向異構(gòu)眾核超級(jí)計(jì)算機(jī)的大規(guī)模稀疏計(jì)算性能優(yōu)化研究

胡正丁,?薛巍

清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,北京 100084

論文引用格式:

胡正丁,?薛巍.面向異構(gòu)眾核超級(jí)計(jì)算機(jī)的大規(guī)模稀疏計(jì)算性能優(yōu)化研究[J].大數(shù)據(jù), 2020, 6(4):40-55.

HE X B, JIANG J H.Research on performance optimization for large-scale sparse computation over many-core heterogenous supercomputer[J].Big Data Research, 2020, 6(4):40-55.

1 引言

近年來(lái),隨著計(jì)算機(jī)系統(tǒng)和大數(shù)據(jù)技術(shù)的發(fā)展,大規(guī)模數(shù)值計(jì)算、科學(xué)計(jì)算等在大型異構(gòu)并行系統(tǒng)上的應(yīng)用逐漸深入。從對(duì)自然現(xiàn)象的模擬和預(yù)測(cè)到工程學(xué)設(shè)計(jì)和產(chǎn)品研發(fā),超級(jí)計(jì)算(以下簡(jiǎn)稱超算)在這些領(lǐng)域發(fā)揮著不可或缺的作用。與此同時(shí),應(yīng)用的需求反過(guò)來(lái)也促進(jìn)了超級(jí)計(jì)算機(jī)的發(fā)展,更大型超級(jí)計(jì)算系統(tǒng)的構(gòu)建使得更多富有挑戰(zhàn)性的任務(wù)的解決成為可能。大規(guī)模計(jì)算往往與大數(shù)據(jù),特別是大規(guī)模稀疏數(shù)值問(wèn)題緊密相連。數(shù)值天氣預(yù)報(bào)通過(guò)數(shù)值計(jì)算求解描述天氣演變過(guò)程的流體力學(xué)和熱力學(xué)的方程組,以預(yù)測(cè)未來(lái)的大氣運(yùn)動(dòng)狀態(tài)和天氣現(xiàn)象。若在全球采取千米級(jí)分辨率,會(huì)產(chǎn)生百億規(guī)模的計(jì)算網(wǎng)格,相應(yīng)的聯(lián)立方程組規(guī)模會(huì)達(dá)到千億級(jí)別。7天左右的天氣預(yù)報(bào)需要約6萬(wàn)步迭代,而涉及氣候預(yù)測(cè)的時(shí)間跨度甚至多達(dá)數(shù)年,其中的計(jì)算規(guī)模和數(shù)據(jù)規(guī)模是難以想象的。在線網(wǎng)絡(luò)欺詐分析結(jié)合大數(shù)據(jù)和人工智能技術(shù)檢測(cè)網(wǎng)絡(luò)欺詐行為,需要保證預(yù)測(cè)結(jié)果的準(zhǔn)確性和實(shí)時(shí)性。全球的中文網(wǎng)頁(yè)約有2 700億個(gè),鏈接數(shù)量達(dá)12萬(wàn)億個(gè),相應(yīng)網(wǎng)頁(yè)圖存儲(chǔ)規(guī)模達(dá)到137 TB,這無(wú)疑對(duì)數(shù)據(jù)存取和算法運(yùn)行效率提出了很高的要求。稀疏問(wèn)題的計(jì)算核心(如稀疏矩陣運(yùn)算和圖遍歷等)在大規(guī)模計(jì)算中廣泛存在。天氣預(yù)報(bào)、地震分析等自然現(xiàn)象模擬過(guò)程需要對(duì)大規(guī)模偏微分方程進(jìn)行求解,其中涉及頻繁的稀疏矩陣運(yùn)算操作。而蛋白質(zhì)交互、基因工程和腦科學(xué)等科學(xué)研究工作需要對(duì)大規(guī)模稀疏圖進(jìn)行生成、遍歷和處理。超級(jí)計(jì)算機(jī)系統(tǒng)由于具有強(qiáng)大的存儲(chǔ)和計(jì)算能力,成為解決大規(guī)模稀疏問(wèn)題的有效選擇。而由于其訪存和計(jì)算模式的特殊性質(zhì),稀疏問(wèn)題在并行和分布式計(jì)算機(jī)系統(tǒng)上的求解成為一個(gè)難題,具體體現(xiàn)在任務(wù)劃分、計(jì)算調(diào)度、存儲(chǔ)管理和功耗管理等多個(gè)方面。超級(jí)計(jì)算機(jī)給稀疏問(wèn)題求解帶來(lái)了全新的機(jī)遇和挑戰(zhàn)。因此,本文針對(duì)基于異構(gòu)眾核的超級(jí)計(jì)算機(jī)——“神威·太湖之光”的大數(shù)據(jù)稀疏問(wèn)題解決和優(yōu)化方案進(jìn)行闡述,探討異構(gòu)眾核計(jì)算機(jī)架構(gòu)下大規(guī)模稀疏計(jì)算性能優(yōu)化的一般性方法,為在新一代異構(gòu)眾核系統(tǒng)上開(kāi)展大規(guī)模稀疏計(jì)算問(wèn)題求解提供借鑒。

2 稀疏問(wèn)題的計(jì)算挑戰(zhàn)

因?yàn)橄∈鑶?wèn)題具有非規(guī)則的計(jì)算與訪存特征,所以其在大規(guī)模超級(jí)計(jì)算機(jī)中的求解面臨嚴(yán)峻的挑戰(zhàn),主要包括以下幾點(diǎn)。(1)不規(guī)則的主存儲(chǔ)器訪問(wèn)隨著CPU主頻的提高和處理器計(jì)算能力的不斷增強(qiáng),CPU運(yùn)算速度與主存帶寬不匹配的問(wèn)題越來(lái)越嚴(yán)重。與計(jì)算密集型應(yīng)用不同,稀疏計(jì)算核心的計(jì)算訪存比往往較低。典型的稀疏計(jì)算問(wèn)題(如稀疏矩陣向量乘法、基礎(chǔ)向量矩陣運(yùn)算、模板計(jì)算等)只有常數(shù)級(jí)別的計(jì)算訪存比,而其余典型算術(shù)核心(如渦格法、快速傅里葉變換、粒子法)的計(jì)算訪存比會(huì)達(dá)到O(logN)甚至O(N)的級(jí)別。因此對(duì)于稀疏計(jì)算型應(yīng)用而言,存儲(chǔ)器訪問(wèn)的開(kāi)銷可能遠(yuǎn)遠(yuǎn)超過(guò)計(jì)算本身帶來(lái)的開(kāi)銷,使得訪存問(wèn)題成為應(yīng)用開(kāi)發(fā)過(guò)程中需要重點(diǎn)關(guān)注的部分。計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器架構(gòu)往往是多級(jí)的。靠近處理器的存儲(chǔ)層級(jí)一般存取速度快,但容量較小;反過(guò)來(lái),遠(yuǎn)離處理器的存儲(chǔ)層級(jí)容量大、速度慢。對(duì)于大規(guī)模計(jì)算機(jī)系統(tǒng)而言,這種容量和計(jì)算速度的對(duì)比往往更加夸張。因此,要解決應(yīng)用的訪存問(wèn)題,需要解決大規(guī)模稀疏數(shù)據(jù)的存儲(chǔ)管理策略問(wèn)題,盡量將頻繁使用的數(shù)據(jù)放在高層級(jí),減少低層存儲(chǔ)器的訪問(wèn)次數(shù),同時(shí)做好數(shù)據(jù)的分塊和搬運(yùn)策略,增強(qiáng)訪存的連續(xù)性和一致性。稀疏型計(jì)算問(wèn)題的訪存模式是不規(guī)則的。稀疏計(jì)算問(wèn)題的數(shù)據(jù)局部性較差,可能存在離散化、隨機(jī)化、不規(guī)則訪存的問(wèn)題,隨機(jī)化訪存對(duì)數(shù)據(jù)分塊和局部化并不友好,而細(xì)粒度訪存會(huì)導(dǎo)致不同節(jié)點(diǎn)的競(jìng)爭(zhēng),增大存儲(chǔ)總線的壓力。稀疏計(jì)算問(wèn)題的這種特性給開(kāi)發(fā)者的存儲(chǔ)管理策略帶來(lái)了許多困難。此外,傳統(tǒng)的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dynamic random access memory, DRAM)價(jià)格昂貴、能耗高、性能不穩(wěn)定,給許多大數(shù)據(jù)稀疏問(wèn)題的解決帶來(lái)了限制。近年來(lái)出現(xiàn)了大量的新型非易失性存儲(chǔ)器(non-volatile memory,NVM),它們具有價(jià)格和能耗較低、容量大、性能高的特點(diǎn),給內(nèi)存存儲(chǔ)與計(jì)算模式帶來(lái)了巨大的變革,新型內(nèi)存計(jì)算技術(shù)正在蓬勃發(fā)展。為了充分利用NVM容量大和DRAM讀寫性能好的優(yōu)勢(shì),并且最大限度地避免各種存儲(chǔ)介質(zhì)的缺陷,DRAM-NVM異構(gòu)內(nèi)存系統(tǒng)的設(shè)計(jì)與優(yōu)化成為研究的熱點(diǎn)。這種異構(gòu)系統(tǒng)的實(shí)現(xiàn)面臨體系結(jié)構(gòu)、系統(tǒng)軟件、編程模型等多個(gè)層面的挑戰(zhàn),相關(guān)研究工作已經(jīng)提出了具有針對(duì)性的解決方案。例如,相變存儲(chǔ)器(phase change memory,PCM)就是非易失性存儲(chǔ)器的一種,其存儲(chǔ)密度較高、持久性強(qiáng),有學(xué)者通過(guò)將PCM與DRAM結(jié)合來(lái)構(gòu)建優(yōu)勢(shì)互補(bǔ)的混合存儲(chǔ)架構(gòu)。(2)可并行化與負(fù)載均衡部分稀疏計(jì)算核心可能存在非規(guī)則的計(jì)算模式。比如,在求解線性方程組用到稀疏矩陣LU分解(LU factorization)與稀疏三角矩陣方程求解(sparse triangular solver,SpTRSV)的過(guò)程中,不同位置的數(shù)據(jù)具有計(jì)算依賴關(guān)系,存在求解的先后順序。在模板計(jì)算中,每個(gè)進(jìn)程需要等待halo區(qū),也就是由其部分鄰居進(jìn)程負(fù)責(zé)計(jì)算的數(shù)據(jù)區(qū)域完成后才可開(kāi)始下一步計(jì)算。這種基于數(shù)據(jù)依賴的非規(guī)則計(jì)算模式使得傳統(tǒng)分塊并行方法不再適用,開(kāi)發(fā)者需要最大限度地挖掘應(yīng)用中可并行化的部分。同時(shí),多核計(jì)算機(jī)系統(tǒng)中每個(gè)處理器的負(fù)載也是需要考慮的問(wèn)題。稀疏矩陣中的非零元排布如圖1所示,其中b和x分別表示矩陣的行和列兩個(gè)維度。在一個(gè)稀疏矩陣中,不同行/列間的非零元分布密度可能存在巨大差別。如果采用靜態(tài)分塊方法,會(huì)導(dǎo)致不同處理器負(fù)責(zé)計(jì)算的非零元數(shù)目不均衡。這種不均衡不僅會(huì)大大降低應(yīng)用的性能,還可能造成部分處理器資源的浪費(fèi),增大應(yīng)用運(yùn)行的功耗和成本。這對(duì)大規(guī)模稀疏問(wèn)題的問(wèn)題劃分和任務(wù)分配提出了更高的要求。(3)數(shù)據(jù)傳輸與通信在大規(guī)模異構(gòu)計(jì)算機(jī)系統(tǒng)上,稀疏問(wèn)題的求解往往涉及頻繁的進(jìn)程間/節(jié)點(diǎn)間通信。這種通信給I/O和節(jié)點(diǎn)間網(wǎng)絡(luò)帶來(lái)了巨大壓力。隨著眾核架構(gòu)的廣泛使用,處理器主頻和單核的計(jì)算能力受限,原有的超算基礎(chǔ)軟件(如MPI通信庫(kù))主要面向進(jìn)程通信開(kāi)發(fā),其中的大量計(jì)算功能依賴單核的計(jì)算能力,已經(jīng)無(wú)法滿足新的架構(gòu)需求;同時(shí),隨著管理進(jìn)程數(shù)的增加,超算基礎(chǔ)軟件本身的內(nèi)存開(kāi)銷成為一個(gè)不可忽視的問(wèn)題,這些都成為限制大數(shù)據(jù)稀疏應(yīng)用性能提升的關(guān)鍵因素。隨著超算規(guī)模的增大,相對(duì)固定的系統(tǒng)配置無(wú)法與多種多樣的應(yīng)用計(jì)算和通信模式有效匹配,同時(shí)在通信、I/O層面的應(yīng)用相互干擾問(wèn)題愈加突出。通信瓶頸往往會(huì)對(duì)應(yīng)用性能的可擴(kuò)展性與穩(wěn)定性造成影響。因此,如何解決數(shù)據(jù)的傳輸和通信問(wèn)題,對(duì)于應(yīng)用開(kāi)發(fā)者來(lái)說(shuō)是一項(xiàng)挑戰(zhàn)。在大數(shù)據(jù)時(shí)代,應(yīng)用的問(wèn)題規(guī)模和相應(yīng)的數(shù)據(jù)規(guī)模呈爆炸式增長(zhǎng),大量非結(jié)構(gòu)化數(shù)據(jù)的出現(xiàn)使得提取信息的難度越來(lái)越大,也對(duì)外存儲(chǔ)器的訪問(wèn)效率提出了更高的要求。顯然,基于磁盤的存儲(chǔ)系統(tǒng)已經(jīng)難以滿足日益增長(zhǎng)的訪問(wèn)需求。與磁盤相比,閃存(flash memory)具有體積小、能耗低、帶寬高、時(shí)延低、抗震性強(qiáng)、可靠性高等特點(diǎn),研究人員正著力于構(gòu)建大規(guī)模閃存存儲(chǔ)系統(tǒng),以充分發(fā)揮閃存優(yōu)勢(shì),適應(yīng)大數(shù)據(jù)環(huán)境的發(fā)展。

3 異構(gòu)眾核架構(gòu)及挑戰(zhàn)

本文以典型的異構(gòu)眾核超級(jí)計(jì)算機(jī)——“神威·太湖之光”中的申威26010眾核處理器(SW26010)為例,介紹異構(gòu)眾核架構(gòu)及其應(yīng)用開(kāi)發(fā)的挑戰(zhàn)。圖1???稀疏矩陣中的非零元排布

3.1 異構(gòu)眾核架構(gòu)設(shè)計(jì)

圖2所示為典型的采用異構(gòu)眾核架構(gòu)的申威26010眾核處理器,每個(gè)處理器包含4個(gè)核組,每個(gè)核組通過(guò)片上網(wǎng)絡(luò)互聯(lián),并通過(guò)PCI-E 3.0對(duì)外連接。每個(gè)核組獨(dú)立運(yùn)行,包含一個(gè)控制核心(主核)、64個(gè)運(yùn)算核心(從核)和一個(gè)內(nèi)存控制器。整個(gè)處理器可以提供3.06 TFlops的雙精度浮點(diǎn)計(jì)算峰值性能和136 GB/s的理論總內(nèi)存帶寬。圖2???SW26010架構(gòu)主核擁有常規(guī)的兩級(jí)Cache系統(tǒng),通常被用于執(zhí)行管理和通信任務(wù)。從核具有很高的浮點(diǎn)運(yùn)算性能,通常被用于執(zhí)行計(jì)算任務(wù)。與常規(guī)的緩存方式不同,每個(gè)從核包含一個(gè)大小為64 KB的便箋存儲(chǔ)器(local data memory,LDM)。LDM由靜態(tài)隨機(jī)存取存儲(chǔ)器(static randomaccess memory,SRAM)設(shè)計(jì),與主存DRAM的地址空間分離,并對(duì)用戶可見(jiàn),用戶需要顯式地控制數(shù)據(jù)在主存和LDM之間的傳輸。每個(gè)核組的64個(gè)從核構(gòu)成8×8的網(wǎng)格陣列,每?jī)尚袕暮斯蚕硪粭l連接到內(nèi)存控制器的總線。從核訪問(wèn)主存的方式有兩種:一種是通過(guò)全局讀入(gload)和寫出(gstore)指令實(shí)現(xiàn)內(nèi)存-寄存器的數(shù)據(jù)傳輸,這種方式粒度較細(xì),更加靈活,但帶寬只能達(dá)到1.5 GB/s;另一種是通過(guò)直接內(nèi)存訪問(wèn)(direct memory access,DMA)實(shí)現(xiàn)內(nèi)存-LDM的數(shù)據(jù)傳輸,再通過(guò)訪問(wèn)LDM來(lái)獲取數(shù)據(jù)。DMA是一種粗粒度的訪存模式,根據(jù)StreamTriad測(cè)試,64個(gè)從核同時(shí)通過(guò)DMA訪存可以獲得22.6 GB/s的帶寬。SW26010另一個(gè)獨(dú)特的設(shè)計(jì)是從核陣列上的寄存器通信技術(shù)。根據(jù)StreamTriad測(cè)試,寄存器的通信時(shí)延僅11個(gè)指令周期,集合帶寬超過(guò)600 GB/s。在8×8的網(wǎng)格陣列中,同一行或同一列的從核可以高速互傳數(shù)據(jù)。每個(gè)從核都有一個(gè)發(fā)送緩沖區(qū)、一個(gè)行接收緩沖區(qū)和一個(gè)列接收緩沖區(qū)。在寄存器通信中,硬件會(huì)將發(fā)送緩沖區(qū)內(nèi)的數(shù)據(jù)放到目標(biāo)從核的行/列接收緩沖區(qū)中。這個(gè)過(guò)程以阻塞方式自動(dòng)進(jìn)行,直到發(fā)送緩沖區(qū)為空或者接收緩沖區(qū)已滿。

3.2 異構(gòu)眾核架構(gòu)的挑戰(zhàn)和開(kāi)發(fā)技巧

異構(gòu)眾核架構(gòu)擁有與常規(guī)并行程序開(kāi)發(fā)不同的編程和優(yōu)化模式。這種不同為大規(guī)模并行程序帶來(lái)巨大性能潛能的同時(shí),也給程序開(kāi)發(fā)者提出了更多的要求。“神威·太湖之光”把并行度推進(jìn)到千萬(wàn)核級(jí)別,因而也對(duì)數(shù)值型應(yīng)用和優(yōu)化方法的可擴(kuò)展性提出了挑戰(zhàn)。因此,在開(kāi)發(fā)過(guò)程中應(yīng)當(dāng)注意以下幾個(gè)方面。(1)充分發(fā)揮從核運(yùn)算性能SW26010每個(gè)核組內(nèi)的從核可以使用SunwayOpenACC或Athread實(shí)現(xiàn)并行執(zhí)行。根據(jù)性能指標(biāo)計(jì)算,SW26010上的主核浮點(diǎn)性能約為23.2 GFlops,而從核浮點(diǎn)性能達(dá)到了742.4 GFlops。由于這種浮點(diǎn)性能上的巨大差距,要提升計(jì)算密集型程序的運(yùn)行效率,就需要盡可能充分地發(fā)揮從核的運(yùn)算性能,充分發(fā)掘應(yīng)用內(nèi)部的并行性。由于從核的數(shù)目和物理拓?fù)潢P(guān)系相對(duì)固定,以及從核LDM大小和內(nèi)存帶寬的限制,應(yīng)用內(nèi)部的子問(wèn)題劃分需要具有足夠的局部性,同時(shí)也要考慮從核陣列的排布特點(diǎn)。非同行/列的從核間無(wú)法直接進(jìn)行寄存器通信,可能需要其他從核參與,這會(huì)顯著增加從核間寄存器通信的開(kāi)銷,因此最好將相鄰的任務(wù)分配到相同的行/列上。由于每?jī)尚袕暮酥g共享一條內(nèi)存總線,要想提升內(nèi)存帶寬,就需要充分利用4條內(nèi)存總線,將內(nèi)存訪問(wèn)均勻地分配到每條總線上。對(duì)于一些計(jì)算和訪存不規(guī)則的應(yīng)用,簡(jiǎn)單的分塊方法可能造成從核間負(fù)載不均衡,因而無(wú)法完全發(fā)揮處理器的性能。這些都對(duì)并行問(wèn)題的劃分提出了較高的要求。(2)充分利用LDM,減輕主存壓力SW26010主存和局部存儲(chǔ)器的訪問(wèn)性能差異尤其明顯,從核進(jìn)行離散化訪存的開(kāi)銷是高昂的,全局離散存/取(gload/gstore)指令需要超過(guò)200個(gè)時(shí)鐘周期,而訪問(wèn)局部存儲(chǔ)器LDM僅需4個(gè)時(shí)鐘周期。因此,要提升并行程序的運(yùn)行效率,就要充分利用LDM局部存儲(chǔ)器,減少全局內(nèi)存訪問(wèn),設(shè)計(jì)好的緩存策略。SW26010的獨(dú)特架構(gòu)將緩存策略的設(shè)計(jì)交給開(kāi)發(fā)者,這一做法更加增加了這一問(wèn)題的重要性和難度。SW26010的從核LDM大小為64 KB,顯然無(wú)法滿足所有應(yīng)用對(duì)局部數(shù)據(jù)的需求。在一些程序中,頻繁的主存-LDM交換是可能存在的,而減少交換次數(shù)、提高交換效率是開(kāi)發(fā)者需要考慮和實(shí)現(xiàn)的。合理的LDM管理策略是提高申威架構(gòu)下程序運(yùn)行效率的關(guān)鍵點(diǎn)之一。從核DMA的帶寬高達(dá)22.6 GB/s,而gload/gstore指令的帶寬只有不到1.5 GB/s。另外,DMA可以在數(shù)據(jù)傳輸過(guò)程中解放CPU,實(shí)現(xiàn)計(jì)算-訪存重疊模式,縮短時(shí)延。因此,連續(xù)化、聚合化的DMA訪存可以有效提升訪存效率,而部分應(yīng)用的不規(guī)則訪存模式增大了使用DMA的難度。值得注意的是,申威架構(gòu)的DMA效率在特定情況下可達(dá)到峰值。對(duì)于隨機(jī)化訪存,DMA操作性能會(huì)在256 B及以上的粒度下達(dá)到峰值。另外,由于DMA是以128 B大小的塊為單位進(jìn)行訪問(wèn)的,因此數(shù)據(jù)需要按照128 B對(duì)齊,以充分發(fā)揮其性能。稀疏計(jì)算型應(yīng)用常常涉及對(duì)主存中多個(gè)數(shù)組的離散化、細(xì)粒度的訪問(wèn),這種訪問(wèn)模式很難充分發(fā)揮DMA操作的性能,因此需要對(duì)數(shù)據(jù)布局進(jìn)行調(diào)整。對(duì)于多個(gè)具有相似的訪問(wèn)模式的數(shù)組,可以將其合并,即將包含多個(gè)數(shù)組的結(jié)構(gòu)體(structure of arrays,SOA)轉(zhuǎn)化為一個(gè)大的包含多個(gè)元素的結(jié)構(gòu)體的數(shù)組(arrays of structures,AOS)。如果合并后的結(jié)構(gòu)體不滿足內(nèi)存對(duì)界要求,可以適當(dāng)?shù)丶尤肟瘴?padding)進(jìn)行填補(bǔ)。對(duì)于難以合并的、訪問(wèn)模式獨(dú)立的數(shù)組,可以對(duì)數(shù)組的數(shù)據(jù)分布進(jìn)行調(diào)整。比如,在地震模擬應(yīng)用中,在主存中開(kāi)辟出額外的存儲(chǔ)空間,用于存儲(chǔ)每個(gè)進(jìn)程需要訪問(wèn)的劃分后的包含halo區(qū)的數(shù)組部分,這樣可以保證DMA操作的連續(xù)性,減少內(nèi)存訪問(wèn)操作的頻率。數(shù)據(jù)結(jié)構(gòu)的調(diào)整可以有效解決稀疏問(wèn)題的細(xì)粒度訪存問(wèn)題,提升稀疏型應(yīng)用在申威架構(gòu)下的訪存帶寬。(3)充分運(yùn)用從核間通信從核間高效的寄存器通信接口為數(shù)據(jù)通信和共享提供了有效的方法。寄存器通信的時(shí)延為7~11個(gè)時(shí)鐘周期,遠(yuǎn)小于DMA (超過(guò)25個(gè)時(shí)鐘周期)和全局存取(超過(guò)600個(gè)時(shí)鐘周期)的開(kāi)銷。因此,一個(gè)通用的方法是將從核LDM中或寄存器中的數(shù)據(jù)通過(guò)寄存器通信發(fā)送給其他從核,實(shí)現(xiàn)數(shù)據(jù)共享,減少對(duì)全局內(nèi)存的訪問(wèn)頻率。寄存器通信的編程模式給開(kāi)發(fā)者帶來(lái)了挑戰(zhàn)。由于實(shí)際應(yīng)用中可能存在復(fù)雜的核間通信和同步關(guān)系,阻塞式的通信接口會(huì)顯著增加程序設(shè)計(jì)的難度,開(kāi)發(fā)者需要謹(jǐn)慎考慮核間數(shù)據(jù)傳輸關(guān)系,排除死鎖的可能性。由于從核接收緩沖區(qū)大小有限,如果發(fā)送從核(即發(fā)送數(shù)據(jù)的從核)傳送的數(shù)據(jù)規(guī)模較大,則需要保證目標(biāo)從核在自身阻塞前能夠完成接收,否則可能出現(xiàn)級(jí)聯(lián)阻塞現(xiàn)象。另外,在多發(fā)送者-單接收者的模式下,可能會(huì)存在數(shù)據(jù)亂序的問(wèn)題,需要額外考慮程序的正確性。這些都給程序設(shè)計(jì)和優(yōu)化帶來(lái)了很大難度。(4)SIMD向量化的使用單指令多數(shù)據(jù)流(single instruction multiple data,SIMD)是SW26010的一個(gè)擴(kuò)展的功能模塊。SW26010提供了256位的寄存器,每個(gè)寄存器可以存放8個(gè)整型數(shù)或4個(gè)浮點(diǎn)數(shù)。使用這些寄存器進(jìn)行向量化運(yùn)算,可以達(dá)到一條指令得到多個(gè)結(jié)果的效果。SIMD從源操作數(shù)的數(shù)組空間將數(shù)據(jù)裝載到256位SIMD寄存器,并通過(guò)SIMD運(yùn)算指令完成計(jì)算,最后將結(jié)果存儲(chǔ)到目標(biāo)操作數(shù)的數(shù)組空間。SIMD不僅降低了功耗,而且顯著提高了性能,定點(diǎn)和浮點(diǎn)的理論峰值性能為單部件的8倍或4倍。循環(huán)展開(kāi)(loop unwinding)作為一種犧牲程序的尺寸來(lái)加快程序的執(zhí)行速度的優(yōu)化方法,可以由程序員完成,也可由編譯器自動(dòng)優(yōu)化完成。對(duì)于擁有多個(gè)計(jì)算部件的SW26010,SIMD可以被看作一種指令形式的循環(huán)展開(kāi),SIMD向量化寄存器為多個(gè)運(yùn)算器提供了指令級(jí)并行。SW26010編譯器提供了簡(jiǎn)潔的SIMD編程指令來(lái)顯式地開(kāi)發(fā)指令級(jí)并行,開(kāi)發(fā)者不再需要對(duì)代碼進(jìn)行手動(dòng)展開(kāi)或依賴編譯器的自動(dòng)優(yōu)化。向量化為申威架構(gòu)下的程序提供了巨大的性能機(jī)遇,但其實(shí)際應(yīng)用存在一些困難。向量化適用于連續(xù)型數(shù)據(jù)訪問(wèn)和運(yùn)算,對(duì)于非連續(xù)型(如AOS類型)數(shù)據(jù),其裝載和存儲(chǔ)過(guò)程帶來(lái)的開(kāi)銷可能超過(guò)計(jì)算優(yōu)化本身帶來(lái)的收益。因此,開(kāi)發(fā)者應(yīng)當(dāng)注意SIMD使用的可行性,要合理使用向量化,需要時(shí)可對(duì)數(shù)據(jù)排布進(jìn)行調(diào)整。例如,分子動(dòng)力學(xué)應(yīng)用需要按前文所述的方法將數(shù)據(jù)轉(zhuǎn)化為AOS形式的粒子數(shù)據(jù)包,以最大限度地提升DMA性能。但這種AOS形式的數(shù)據(jù)并不適合向量化。為此,對(duì)于局部獲取的數(shù)據(jù),需要進(jìn)行類似矩陣轉(zhuǎn)置的轉(zhuǎn)化,使得相同數(shù)組的元素在存儲(chǔ)空間中連續(xù),如圖3所示,將一個(gè)粒子包內(nèi)的數(shù)據(jù)轉(zhuǎn)化為每種元素連續(xù)的形式,這樣可以用向量寄存器存儲(chǔ),并開(kāi)展計(jì)算。這種轉(zhuǎn)換操作可以使用SW26010支持的指令(如simd_vshulff)高效地完成。參考中的一個(gè)粒子數(shù)據(jù)包包含4個(gè)粒子的數(shù)據(jù),轉(zhuǎn)換完成后的數(shù)據(jù)剛好按照4個(gè)浮點(diǎn)數(shù)對(duì)齊,放在一個(gè)4浮點(diǎn)數(shù)向量寄存器內(nèi)。圖3???分子動(dòng)力學(xué)中的數(shù)據(jù)布局變換

4 大規(guī)模稀疏計(jì)算問(wèn)題的性能優(yōu)化實(shí)踐

4.1 高分辨率大氣模擬中的隱式求解

大規(guī)模大氣動(dòng)力模擬對(duì)于天氣預(yù)報(bào)和預(yù)測(cè)氣象災(zāi)害有重大意義,該領(lǐng)域的應(yīng)用往往涉及對(duì)大規(guī)模網(wǎng)格的計(jì)算和求解。此前,國(guó)內(nèi)相關(guān)研究實(shí)現(xiàn)了基于CPU-GPU和CPU-MIC加速的顯式時(shí)步全球淺水波(shallow water)模式,它們分別在天河-1A和天河2號(hào)上取得了800 TFlops和1.63 PFlops的性能,擴(kuò)展到半系統(tǒng)級(jí)別。此后,以上工作被擴(kuò)展到3-D非靜力模式,在天河2號(hào)上取得8%的峰值浮點(diǎn)運(yùn)算效率。然而,這些工作只關(guān)注了顯式求解過(guò)程,在高分辨率的大氣模擬中,傳統(tǒng)的大氣動(dòng)力學(xué)方程顯式求解方法面臨計(jì)算步長(zhǎng)過(guò)小的問(wèn)題,因此隱式求解成為可能的解決方法。但隱式求解方法又面臨收斂性和稀疏線性方程組求解低效的問(wèn)題,如何在隱式求解算法上開(kāi)發(fā)千萬(wàn)核并行是待解決的問(wèn)題。三維非靜力大氣模擬過(guò)程主要涉及對(duì)完全可壓縮歐拉方程的求解。在超大規(guī)模方程組求解中如何保證魯棒性較強(qiáng)的收斂率是一個(gè)問(wèn)題,為此,淺層區(qū)域分解多重網(wǎng)格(domain decomposition-multigrid, DD-MG)算法被提出。圖4展示了一個(gè)3層的DD-MG算法,在每個(gè)k-cycle的MG層級(jí),一層RAS方法被作為區(qū)域分解的預(yù)條件,從而在處理器層級(jí)最大限度地開(kāi)發(fā)并行性。DD-MG算法保證了求解過(guò)程的收斂性,同時(shí),作為一種粗粒度的并行,其保證了核組間的負(fù)載均衡。圖4???DD-MG算法示意圖大規(guī)模隱式方程求解的性能取決于局部求解的性能,為此,參考提出并實(shí)現(xiàn)了高局部性、細(xì)粒度和無(wú)同步的本地求解器。對(duì)于指定的重疊子區(qū)域,基于低秩的7點(diǎn)空間偏導(dǎo)構(gòu)建近似的雅可比矩陣,并在每個(gè)網(wǎng)格點(diǎn)中對(duì)未知數(shù)進(jìn)行排序。該過(guò)程不破壞原有矩陣物理成分的聯(lián)系。在DD-MG的框架下,可以用不完全LU(incomplete LU,ILU)分解方法對(duì)子區(qū)域開(kāi)展求解。傳統(tǒng)的LU分解由于矩陣非零元的相互依賴和可能的不規(guī)則分布,很難有效通過(guò)并行算法進(jìn)行求解。為此,在適用于眾核架構(gòu)的并行ILU(parallel incomplete LU,PILU)方法的基礎(chǔ)上進(jìn)行改進(jìn),幾何流水化ILU(geometrybased pipelined incomplete LU,GPILU)算法被提出,這種方法在保持?jǐn)?shù)據(jù)依賴關(guān)系的基礎(chǔ)上很大程度地開(kāi)發(fā)了片上并行性。在整體算法實(shí)現(xiàn)上,參考文獻(xiàn)在處理器、線程及指令層級(jí)上開(kāi)展了不同程度的優(yōu)化,在隱式求解器的關(guān)鍵運(yùn)算核心上取得了有效的性能提升。考慮到SW26010的特性,參考針對(duì)不同計(jì)算核心提出了3種不同的劃分策略,如圖5所示。這里假設(shè)主存內(nèi)的三維AOS數(shù)據(jù)按照z-x-y的維度順序存儲(chǔ), core(i,j)表示處理器陣列中第i行第j列的從核。右端相關(guān)運(yùn)算核心中,相應(yīng)的模板計(jì)算有13個(gè)依賴點(diǎn),整個(gè)求解區(qū)域被分為內(nèi)部區(qū)域(inner)和halo區(qū),halo區(qū)是不同節(jié)點(diǎn)計(jì)算區(qū)域的鄰接部分,由頂部、底部和東西南北6個(gè)面組成,這些部分都涉及數(shù)據(jù)通信。不需要通信的內(nèi)部區(qū)域采用2.5D分塊與雙緩沖策略結(jié)合的方法,如圖5(a)所示,分塊大小由LDM大小、向量化程度、雙緩沖占用率和DMA效率綜合考慮決定,最終采用4×4的大小。MAT運(yùn)算核心沒(méi)有halo區(qū),因此沿軸按“柱”方向進(jìn)行1D分塊,如圖5(b)所示。這里的分塊大小應(yīng)當(dāng)是4的倍數(shù),以方便向量化。ILU核心實(shí)現(xiàn)了線程間和線程內(nèi)部的并行,分塊方式如圖5(c)所示。在xy平面上,分塊把整個(gè)求解區(qū)域劃分成8×8的子區(qū)域,每個(gè)子區(qū)域中沿z軸的一“柱”剛好對(duì)應(yīng)8×8=64個(gè)SW26010處理器眾核。在這種粒度的劃分下,求解流水線開(kāi)始/結(jié)束時(shí)從核間的負(fù)載不均衡可以被最小化,水平和豎直方向上的兩層流水線可以高效地工作。類似地,前代/回代過(guò)程(下三角/上三角矩陣求解)采取類似的劃分方法。圖5???針對(duì)不同運(yùn)算核心的數(shù)據(jù)劃分策略在2.5D分塊中,每個(gè)從核對(duì)內(nèi)存的訪問(wèn)存在一定間隔,導(dǎo)致內(nèi)存帶寬的不充分利用。一種利用寄存器通信的在線數(shù)據(jù)共享方法可以有效解決該問(wèn)題。如圖6所示,該方法將4個(gè)從核分為一組,通過(guò)3個(gè)步驟完成數(shù)據(jù)共享,在第一步分解操作中,對(duì)于求解的內(nèi)部區(qū)域,組內(nèi)的從核從內(nèi)存讀入計(jì)算區(qū)域和兩層halo區(qū),共4×4+2×2=20個(gè)元素的數(shù)據(jù);在第二步復(fù)制操作中,每個(gè)核上對(duì)應(yīng)的數(shù)據(jù)區(qū)域被擴(kuò)展,開(kāi)辟冗余的halo區(qū),從而形成4×(4+2×2)=32個(gè)元素區(qū)域;在第三步交換操作中通過(guò)快速的寄存器通信在從核間傳遞計(jì)算所需數(shù)據(jù),這種數(shù)據(jù)交換不涉及LDM與內(nèi)存的數(shù)據(jù)傳輸,減輕了內(nèi)存帶寬的負(fù)擔(dān)。圖6中的4個(gè)從核通過(guò)3個(gè)步驟完成數(shù)據(jù)交換,每一步之后都需要進(jìn)行同步。一般來(lái)說(shuō),增加每組包含的從核個(gè)數(shù)可以顯著地提升數(shù)據(jù)重用效率,但相應(yīng)的同步開(kāi)銷會(huì)增大。實(shí)驗(yàn)表明, 4個(gè)從核分為一組最好地平衡了兩者。圖6???在線數(shù)據(jù)共享方法過(guò)程為了更好地實(shí)現(xiàn)向量化,參考中實(shí)現(xiàn)了高效的AOS和SOA轉(zhuǎn)換接口。這里使用SW26010的shuffle指令,可以在十幾個(gè)時(shí)鐘周期內(nèi)將結(jié)構(gòu)內(nèi)的AOS數(shù)據(jù)裝載到256位向量寄存器中。另外,部分?jǐn)?shù)據(jù)操作(如BLAS-1向量更新和halo區(qū)交換)需要在SW26010上得到實(shí)現(xiàn)和優(yōu)化。基于申威架構(gòu)的xMath數(shù)學(xué)運(yùn)算加速庫(kù)是為了高性能數(shù)學(xué)運(yùn)算開(kāi)發(fā)的,提供了BLAS、LAPACK和FFT操作接口。調(diào)用該庫(kù)并添加一些手動(dòng)優(yōu)化,可以在BLAS-1向量操作上取得20倍以上的加速。以上提及的完全隱式方程求解器應(yīng)用已被成功地?cái)U(kuò)展到整個(gè)“神威·太湖之光”超級(jí)計(jì)算機(jī)的超過(guò)100萬(wàn)個(gè)的異構(gòu)眾核上,在雙精度求解下性能達(dá)到了7.95 PFlops。實(shí)驗(yàn)中,在488 m水平分辨率(超過(guò)7 700億個(gè)非零元)條件下,該應(yīng)用依然能夠?qū)崿F(xiàn)快速而精確的大氣模擬,成為世界上較大規(guī)模的完全隱式模擬之一。

4.2 非線性大地震模擬中的顯式求解

我國(guó)是受地震災(zāi)害影響嚴(yán)重的國(guó)家,分布有23條地震帶,7度以上的高烈度區(qū)域約占國(guó)土面積的50%。對(duì)地震的模擬和預(yù)測(cè)可以有效減少地震災(zāi)害帶來(lái)的損失。很多與地震模擬相關(guān)的應(yīng)用已經(jīng)開(kāi)始在大規(guī)模并行計(jì)算機(jī)系統(tǒng)上尋找答案,以開(kāi)源軟件AWP-ODC(anelastic wave propagation by Olsen,Day and Cui)為例,該軟件自2008年起開(kāi)始推進(jìn)在千兆級(jí)計(jì)算機(jī)系統(tǒng)上的應(yīng)用,2016年該應(yīng)用完成了對(duì)非線性效應(yīng)模擬的支持,并在“泰坦”超級(jí)計(jì)算機(jī)上取得1.6 PFlops的性能,擴(kuò)展到半系統(tǒng)級(jí)別。由于計(jì)算過(guò)程中每個(gè)網(wǎng)格點(diǎn)都需要對(duì)超過(guò)20個(gè)變量進(jìn)行讀寫,傳統(tǒng)的分塊策略并不適用。為此,參考提出了一種自定義的多級(jí)計(jì)算區(qū)域分解策略(如圖7所示),包括MPI分解、CG核組分塊劃分和CPE從核分塊劃分。在LDM空間利用策略的計(jì)算過(guò)程中,計(jì)算區(qū)域和完成區(qū)域不斷向前推進(jìn),未完成區(qū)域逐漸縮小,緩沖區(qū)域用來(lái)存儲(chǔ)計(jì)算所需的鄰接區(qū)。這里假設(shè)主存內(nèi)的三維AOS數(shù)據(jù)按照z-x-y的維度順序存儲(chǔ),該方法先沿著xy平面對(duì)求解區(qū)域進(jìn)行2D劃分,并分配到每個(gè)MPI進(jìn)程中。這是由于在該應(yīng)用中豎直(z軸)方向的長(zhǎng)度要遠(yuǎn)小于水平(x軸和y軸)方向的長(zhǎng)度,這種劃分方法可以有效減少M(fèi)PI進(jìn)程間的通信量。第二層沿著zy平面進(jìn)行塊劃分,并將該層的每個(gè)塊分配給一個(gè)核組。最終,第三層依然沿著zy平面把核組中的塊劃分成數(shù)個(gè)不同的區(qū)域,將每個(gè)區(qū)域分配給一個(gè)SW26010處理器從核,每個(gè)從核線程沿著x軸方向開(kāi)展迭代,從而確保快速訪問(wèn)內(nèi)存。考慮到每個(gè)LDM空間大小有限,每個(gè)從核一次通過(guò)DMA載入適當(dāng)大小的計(jì)算區(qū)域,包括內(nèi)部計(jì)算區(qū)域和halo區(qū)。隨著計(jì)算的進(jìn)行,從核緩存區(qū)域會(huì)沿x軸方向向后推進(jìn)。DMA被設(shè)置為異步的,以達(dá)到與計(jì)算重疊的效果。這里各層級(jí)的分塊大小可以根據(jù)問(wèn)題規(guī)模、LDM空間大小及單個(gè)網(wǎng)格點(diǎn)的變量數(shù)目等因素動(dòng)態(tài)計(jì)算得出,實(shí)際應(yīng)用中采取計(jì)算分析得到的最優(yōu)值。圖7???非線性大地震模擬中的多級(jí)區(qū)域劃分策略為了在同樣的內(nèi)存帶寬和存儲(chǔ)空間大小的限制條件下取得更高的性能,參考文獻(xiàn)還提出一種有損壓縮策略,有效解決了在線壓縮和解壓縮開(kāi)銷與整體應(yīng)用有效性能提升的矛盾,也有效保證了應(yīng)用的工程計(jì)算精度。如圖8所示,每個(gè)參與計(jì)算的從核(CPE)先從主核內(nèi)存,也就是主存中通過(guò)DMA讀操作(dma_get)將壓縮后的16位數(shù)據(jù)讀入LDM,并解壓縮為32位數(shù)據(jù),然后進(jìn)行32位數(shù)據(jù)上的實(shí)際計(jì)算,并將計(jì)算結(jié)果重新由32位壓縮為16位的數(shù)據(jù),通過(guò)DMA寫操作(dma_put)存入內(nèi)存。圖8???有損壓縮工作流程圖9展示了3種不同的有損壓縮方法,其中用sign exp表示指數(shù),frac表示尾數(shù)。計(jì)算所用數(shù)據(jù)在壓縮前固定為32位浮點(diǎn)數(shù),壓縮后的16位數(shù)據(jù)可以采取不同的表示方法。方法1進(jìn)行IEEE 754標(biāo)準(zhǔn)32位到16位浮點(diǎn)數(shù)的轉(zhuǎn)化,直接將壓縮后的數(shù)據(jù)定義為IEEE 754標(biāo)準(zhǔn)的半精度浮點(diǎn)數(shù),包含固定的5位指數(shù)和10位尾數(shù)。編譯器內(nèi)置的對(duì)半精度浮點(diǎn)數(shù)的支持使得壓縮前后的數(shù)據(jù)轉(zhuǎn)換效率很高,但由于指數(shù)位數(shù)少,數(shù)值分布范圍較大的變量可能出現(xiàn)溢出,進(jìn)而引入數(shù)值精度問(wèn)題。而對(duì)于數(shù)值分布范圍很小的變量而言,5位的指數(shù)可能是一種浪費(fèi)。針對(duì)這一問(wèn)題,方法2使用動(dòng)態(tài)方法定義指數(shù)位數(shù)。對(duì)于每個(gè)參與計(jì)算的變量,計(jì)算其一定范圍內(nèi)的數(shù)值范圍分布,并根據(jù)范圍動(dòng)態(tài)分配不同變量壓縮后的指數(shù)位數(shù),在保證能覆蓋大范圍指數(shù)分布的同時(shí),也能為小范圍數(shù)值分布的變量保留更多的尾數(shù)位數(shù)。但這一方法的轉(zhuǎn)換效率和計(jì)算效率較低。方法3被用于模擬程序速度和壓力變量的壓縮,它將數(shù)組中的元素規(guī)格化到1和2之間,并采用16位定點(diǎn)小數(shù)的表示方法。這種方法平衡了性能和精度,因此在實(shí)際應(yīng)用中具有最好的效果。在地震波傳播核心部分采用有損壓縮策略,最終能取得約24%的性能提升。圖9???3種不同的有損壓縮方法該地震模擬應(yīng)用經(jīng)過(guò)以上優(yōu)化,可以在“神威·太湖之光”超級(jí)計(jì)算機(jī)上達(dá)到超過(guò)15%的系統(tǒng)峰值性能,超過(guò)了類似應(yīng)用在“泰坦”超級(jí)計(jì)算機(jī)上的表現(xiàn)(11.8%),且其具有強(qiáng)可擴(kuò)展性,幾乎可以線性擴(kuò)展到全機(jī)上千萬(wàn)核。在18 H z、8 m分辨率的超大規(guī)模地震模擬中,該應(yīng)用可以達(dá)到18.9 PLlops的持續(xù)性能。

4.3 “神圖”圖計(jì)算框架

圖是數(shù)值科學(xué)領(lǐng)域應(yīng)用頻繁的概念之一,隨著大數(shù)據(jù)處理問(wèn)題規(guī)模的增大,圖數(shù)據(jù)結(jié)構(gòu)的大小也相應(yīng)增大,需要高效可擴(kuò)展的圖處理系統(tǒng)來(lái)解決圖計(jì)算問(wèn)題。比如,人類基因研究目前需要對(duì)擁有超過(guò)50億個(gè)點(diǎn)/邊的布魯因圖(de Bruijn graph)進(jìn)行處理,類似地,人腦建模分析要考慮超過(guò)1 000億個(gè)神經(jīng)元以及每個(gè)神經(jīng)元的平均7 000個(gè)突觸連接。圖計(jì)算是典型的大數(shù)據(jù)稀疏處理類問(wèn)題,浮點(diǎn)運(yùn)算少,訪存隨機(jī)性大,對(duì)數(shù)據(jù)存儲(chǔ)和管理提出了很高要求。同時(shí),冪律分布造成通信和計(jì)算負(fù)載不均衡,對(duì)于復(fù)雜圖而言,計(jì)算過(guò)程中存在大量的核間和節(jié)點(diǎn)間通信,通信次數(shù)多,通信量少,非常低效,給系統(tǒng)的效率和可擴(kuò)展性提出了巨大挑戰(zhàn)。“神圖”是首個(gè)運(yùn)用千兆級(jí)系統(tǒng)解決百萬(wàn)規(guī)模圖處理問(wèn)題的通用框架。針對(duì)申威處理器的異構(gòu)特性,“神圖”在不同層級(jí)對(duì)硬件功能進(jìn)行劃分。在粗粒度的層級(jí)上,每4個(gè)核組被分為一個(gè)節(jié)點(diǎn),分別具備4種不同的功能:一是生成,讀入當(dāng)前組分配的節(jié)點(diǎn)數(shù)據(jù),識(shí)別待處理圖中的“活躍”點(diǎn),并生成通信消息;二是轉(zhuǎn)發(fā),路由聚合后的消息,提供高吞吐率的組間通信;三是粗排序,實(shí)行第一階段的初步桶排序,每個(gè)桶可以適應(yīng)性地放入從核LDM中,為下一階段做準(zhǔn)備;四是更新,圖處理過(guò)程的最后一步,對(duì)每個(gè)桶進(jìn)行排序,并更新目標(biāo)節(jié)點(diǎn)。“神圖”引入了超節(jié)點(diǎn)和處理器上的兩級(jí)路由機(jī)制與高效的專用數(shù)據(jù)排序策略。超節(jié)點(diǎn)路由方法解決了小型消息過(guò)多及通信節(jié)點(diǎn)對(duì)過(guò)多帶來(lái)的通信開(kāi)銷問(wèn)題。“神圖”將數(shù)個(gè)節(jié)點(diǎn)劃分為一個(gè)組,數(shù)個(gè)組屬于一個(gè)超級(jí)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)將屬于相同目標(biāo)組的通信消息聚合為一條,發(fā)送給相應(yīng)組內(nèi)的一個(gè)節(jié)點(diǎn)。該節(jié)點(diǎn)中負(fù)責(zé)轉(zhuǎn)發(fā)的核組會(huì)將消息解包并發(fā)送給其他核組。圖10展示了超節(jié)點(diǎn)多級(jí)路由的工作過(guò)程,超節(jié)點(diǎn)中的一組包含4個(gè)核組,超節(jié)點(diǎn)X中A節(jié)點(diǎn)作為生成節(jié)點(diǎn),發(fā)送消息給超節(jié)點(diǎn)Y中的排序和更新節(jié)點(diǎn)C,中途通過(guò)超節(jié)點(diǎn)Y中的轉(zhuǎn)發(fā)節(jié)點(diǎn)B進(jìn)行轉(zhuǎn)發(fā)。大部分圖計(jì)算應(yīng)用受限于內(nèi)存帶寬,細(xì)粒度的隨機(jī)內(nèi)存訪問(wèn)會(huì)對(duì)性能造成影響。為此,“神圖”提出了一種片上排序的方法。圖10中節(jié)點(diǎn)C可能會(huì)按隨機(jī)順序接收?qǐng)D中節(jié)點(diǎn)更新的消息,片上排序把更新消息的不同目標(biāo)點(diǎn)進(jìn)行劃分和排序,同時(shí)合并對(duì)相同目標(biāo)點(diǎn)進(jìn)行更新的消息,顯著減少了內(nèi)存總線負(fù)載和同步開(kāi)銷。如圖11所示,每個(gè)用于排序的核組中的眾核又被分為3類:p為消費(fèi)者,負(fù)責(zé)讀入數(shù)據(jù);r為路由者,負(fù)責(zé)傳遞數(shù)據(jù);c為消費(fèi)者,負(fù)責(zé)使用數(shù)據(jù)進(jìn)行計(jì)算,剩下的從核被用于其他任務(wù)。初始輸入是無(wú)序輸入,經(jīng)過(guò)兩步片上洗牌操作,數(shù)據(jù)變?yōu)橛行?#xff0c;可開(kāi)展后續(xù)處理。核組3完成第一階段的初步桶排序操作,把數(shù)據(jù)放在不同的桶中,使數(shù)據(jù)成為半有序狀態(tài),核組4利用其結(jié)果完成對(duì)整個(gè)數(shù)據(jù)的排序。圖10???“神圖”的超節(jié)點(diǎn)多級(jí)路由圖11???片上排序過(guò)程在真實(shí)應(yīng)用的圖中,點(diǎn)的入度/出度往往呈現(xiàn)指數(shù)級(jí)增長(zhǎng)。在分布式圖處理系統(tǒng)中,度數(shù)高的點(diǎn)會(huì)產(chǎn)生大量的數(shù)據(jù)通信,涉及系統(tǒng)中的大部分節(jié)點(diǎn),給通信網(wǎng)絡(luò)帶來(lái)巨大負(fù)載。“神圖”將這種度數(shù)高的點(diǎn)復(fù)制到每一個(gè)計(jì)算節(jié)點(diǎn)中,原本負(fù)責(zé)該點(diǎn)的計(jì)算節(jié)點(diǎn)存儲(chǔ)的是原件,其他計(jì)算節(jié)點(diǎn)存儲(chǔ)的是鏡像。高出度的點(diǎn)需要向外發(fā)送的消息很多,為了避免大規(guī)模地發(fā)送更新消息,每一個(gè)計(jì)算節(jié)點(diǎn)通過(guò)簡(jiǎn)單的MPI_Bcast接口協(xié)作更新所有鏡像,再根據(jù)鏡像來(lái)更新其對(duì)本地點(diǎn)的影響。對(duì)于高入度的點(diǎn),“神圖”采用類似的方法,計(jì)算節(jié)點(diǎn)先對(duì)本地鏡像進(jìn)行更新,最后使用MPI_Gather或MPI_Reduce接口更新原件。這種與節(jié)點(diǎn)度相關(guān)的通信優(yōu)化模式顯著減少了通信量,減輕了并行系統(tǒng)互聯(lián)網(wǎng)絡(luò)的壓力;同時(shí),鏡像的存在將高度數(shù)點(diǎn)的處理工作平均分配給每一個(gè)計(jì)算節(jié)點(diǎn),均衡了系統(tǒng)負(fù)載。“神圖”圖計(jì)算框架可在分鐘級(jí)完成對(duì)搜狗中文網(wǎng)頁(yè)圖的處理,每次迭代僅需8.5 s,解決了過(guò)去由于機(jī)器規(guī)模和計(jì)算框架限制而無(wú)法解決的問(wèn)題。

5 結(jié)束語(yǔ)

目前超算發(fā)展進(jìn)入E級(jí)階段,新的超大規(guī)模異構(gòu)并行計(jì)算機(jī)在解決富有挑戰(zhàn)性的計(jì)算問(wèn)題方面的潛力是值得期待的。異構(gòu)眾核并行系統(tǒng)的設(shè)計(jì)已經(jīng)成為高端超算系統(tǒng)的重要構(gòu)建方式。但其給大規(guī)模稀疏處理問(wèn)題帶來(lái)了挑戰(zhàn)。稀疏問(wèn)題具有非規(guī)則的計(jì)算與訪存特征,對(duì)并行應(yīng)用的存儲(chǔ)管理、負(fù)載均衡、數(shù)據(jù)通信等提出了更高的要求,需要開(kāi)發(fā)者依據(jù)軟硬件特點(diǎn)開(kāi)展設(shè)計(jì)和優(yōu)化,兼顧性能、成本、功耗等多方面的約束。異構(gòu)眾核系統(tǒng)的架構(gòu)設(shè)計(jì)具有巨大的性能潛力,但也給應(yīng)用實(shí)現(xiàn)和優(yōu)化帶來(lái)更高的難度。本文總結(jié)了基于“神威·太湖之光”超級(jí)計(jì)算機(jī)的大規(guī)模隱式/顯式求解器和“神圖”圖計(jì)算框架的性能優(yōu)化經(jīng)驗(yàn),涵蓋任務(wù)劃分、存儲(chǔ)訪問(wèn)、數(shù)據(jù)壓縮、數(shù)據(jù)共享與通信等多方面,為新一代異構(gòu)眾核計(jì)算系統(tǒng)的稀疏問(wèn)題求解提供了借鑒。實(shí)際上,基于異構(gòu)眾核架構(gòu)的大規(guī)模計(jì)算問(wèn)題的求解和優(yōu)化案例還有很多,在應(yīng)用和算法設(shè)計(jì)層面,動(dòng)態(tài)稀疏問(wèn)題的高效求解算法設(shè)計(jì)依然是急需解決的問(wèn)題。同時(shí),許多實(shí)際科學(xué)與工程問(wèn)題中的大規(guī)模應(yīng)用性能優(yōu)化方法還期待著更多的開(kāi)發(fā)者投入研究。

作者簡(jiǎn)介

胡正丁(1997-),男,清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系碩士生,主要研究方向?yàn)楦咝阅苡?jì)算 。

薛巍(1974-),男,博士,清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系副教授,高性能計(jì)算研究所所長(zhǎng),中國(guó)計(jì)算機(jī)學(xué)會(huì)高級(jí)會(huì)員,主要研究方向?yàn)榇笠?guī)模科學(xué)計(jì)算、量化不確定分析 。

往期文章回顧

《大數(shù)據(jù)》2020年第4期目次&摘要

專題導(dǎo)讀:大數(shù)據(jù)異構(gòu)并行系統(tǒng)

GPU事務(wù)性內(nèi)存技術(shù)研究

大規(guī)模異構(gòu)數(shù)據(jù)并行處理系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)與實(shí)踐

面向大數(shù)據(jù)異構(gòu)系統(tǒng)的神威并行存儲(chǔ)系統(tǒng)


聯(lián)系我們:

Tel:010-81055448

? ? ? ?010-81055490

? ? ? ?010-81055534

E-mail:bdr@bjxintong.com.cn?

http://www.infocomm-journal.com/bdr

http://www.j-bigdataresearch.com.cn/

轉(zhuǎn)載、合作:010-81055537

大數(shù)據(jù)期刊

《大數(shù)據(jù)(Big Data Research,BDR)》雙月刊是由中華人民共和國(guó)工業(yè)和信息化部主管,人民郵電出版社主辦,中國(guó)計(jì)算機(jī)學(xué)會(huì)大數(shù)據(jù)專家委員會(huì)學(xué)術(shù)指導(dǎo),北京信通傳媒有限責(zé)任公司出版的期刊,已成功入選中文科技核心期刊、中國(guó)計(jì)算機(jī)學(xué)會(huì)會(huì)刊、中國(guó)計(jì)算機(jī)學(xué)會(huì)推薦中文科技期刊,并被評(píng)為2018年國(guó)家哲學(xué)社會(huì)科學(xué)文獻(xiàn)中心學(xué)術(shù)期刊數(shù)據(jù)庫(kù)“綜合性人文社會(huì)科學(xué)”學(xué)科最受歡迎期刊。

關(guān)注《大數(shù)據(jù)》期刊微信公眾號(hào),獲取更多內(nèi)容

總結(jié)

以上是生活随笔為你收集整理的随机生成稀疏矩阵_面向异构众核超级计算机的大规模稀疏计算性能优化研究的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。