国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

話說超級計(jì)算1)

2022-11-25 16:56李新亮
力學(xué)與實(shí)踐 2022年1期
關(guān)鍵詞:存儲系統(tǒng)數(shù)目超級計(jì)算機(jī)

李新亮

(中國科學(xué)院力學(xué)研究所高溫氣體動力學(xué)國家重點(diǎn)實(shí)驗(yàn)室,北京 100190)

(中國科學(xué)院大學(xué)工程科學(xué)學(xué)院,北京 100049)

超級計(jì)算,又稱大規(guī)模并行計(jì)算,是使用多個CPU 協(xié)同計(jì)算,形成強(qiáng)大算力的一種計(jì)算方式。并行計(jì)算是當(dāng)前計(jì)算機(jī)發(fā)展的主流及趨勢。發(fā)展并行計(jì)算的重要原因是當(dāng)前單個CPU 的計(jì)算能力遇到了瓶頸,隨著CPU 芯片電路尺寸越來越小,電路的漏電效應(yīng)、量子效應(yīng)等就顯現(xiàn)出來了,其主頻提升難度越來越大。當(dāng)前主流個人計(jì)算機(jī)(PC 機(jī))的CPU 主頻大約為3G 赫茲左右,而十年前的主流CPU 主頻也是3G 赫茲左右。單純從主頻來看,十年并沒有明顯提升,性能提升需要另辟途徑,增加處理器核心的數(shù)目就是一條重要途徑。除了CPU 之外,其他計(jì)算設(shè)備也是通過增加處理器的數(shù)目來提高性能,一塊顯卡內(nèi)部包含了數(shù)百到數(shù)千個流處理器,高端顯卡甚至有上萬個流處理器,靠這些處理器協(xié)同工作以達(dá)到很高的計(jì)算性能。頂級計(jì)算機(jī)更是如此,神威·太湖之光計(jì)算機(jī)總共有上千萬個CPU 核心,形成巨大的計(jì)算能力。依靠增加CPU 的數(shù)目來提升性能是當(dāng)前超級計(jì)算機(jī)發(fā)展的主要趨勢。隨著人們對計(jì)算機(jī)性能的要求不斷增長,未來計(jì)算機(jī)內(nèi)處理器的數(shù)目還會不斷提升。

人們對計(jì)算機(jī)性能的需求是永無止境的。以湍流數(shù)值模擬為例,對湍流最為精細(xì)的模擬方法是直接數(shù)值模擬(direct numerical simulation, DNS),這種模擬方法需要分辨湍流全部尺度的流動細(xì)節(jié)。湍流是多尺度的,最大尺度與最小尺度(即Kolmogorov尺度)相差非常懸殊。以一架大型飛機(jī)周圍的流場為例,其計(jì)算區(qū)域至少要幾十米的尺度,而最小尺度渦為亞毫米到微米的量級。如果實(shí)現(xiàn)該流場的直接數(shù)值模擬,網(wǎng)格的尺度為微米量級,網(wǎng)格需要覆蓋幾十米的區(qū)域,網(wǎng)格的總數(shù)將是一個天文數(shù)字,其模擬已超出了當(dāng)前最強(qiáng)計(jì)算機(jī)的能力。以當(dāng)前超級計(jì)算機(jī)的性能而言,只能實(shí)現(xiàn)飛行器局部流場的直接數(shù)值模擬。強(qiáng)勁的應(yīng)用需求推動著計(jì)算機(jī)性能不斷增長,無論超級計(jì)算機(jī)還是個人計(jì)算機(jī),其CPU 的數(shù)目都不斷增加,并行計(jì)算成為計(jì)算的主流。

并行計(jì)算機(jī)可分為共享存儲式與分布存儲式兩類。共享存儲計(jì)算機(jī)的多個CPU 共享內(nèi)存資源,所有CPU 都有讀寫權(quán)限。當(dāng)前的個人計(jì)算機(jī)(PC 機(jī))就是共享內(nèi)存式的。當(dāng)前PC 機(jī)的CPU 通常有多個核心,例如4 核,8 核等。這些CPU 核心可以看成獨(dú)立的CPU。這些CPU 共享PC 機(jī)的內(nèi)存。共享存儲系統(tǒng)程序編寫比較容易,串行程序很容易改造成在共享存儲系統(tǒng)上運(yùn)行的并行程序。其主要原因就是由于存儲空間是單一的,數(shù)據(jù)結(jié)構(gòu)與串行系統(tǒng)相同,因而程序結(jié)構(gòu)與算法無需太大改變。共享存儲系統(tǒng)的不足之處在于其擴(kuò)展性不強(qiáng),CPU 規(guī)模難以做得很大。其主要原因是由于多個CPU 共享同一段內(nèi)存,當(dāng)CPU 數(shù)目增加后訪存沖突就會很嚴(yán)重,此外訪存帶寬也會成為瓶頸,因而共享存儲系統(tǒng)的CPU數(shù)目通常在百核以內(nèi)。大規(guī)模并行系統(tǒng)通常采用分布存儲,即機(jī)群(cluster) 構(gòu)架。機(jī)群系統(tǒng)是由若干個獨(dú)立的計(jì)算機(jī)(稱為節(jié)點(diǎn))通過高性能網(wǎng)絡(luò)連接起來,節(jié)點(diǎn)內(nèi)的CPU 只能訪問本節(jié)點(diǎn)的內(nèi)存,這樣可以避免訪存沖突與內(nèi)存帶寬瓶頸,可實(shí)現(xiàn)成千上萬節(jié)點(diǎn)的高可擴(kuò)展性。機(jī)群系統(tǒng)是當(dāng)今超級計(jì)算機(jī)的主流構(gòu)架,其可擴(kuò)展性幾乎是沒有止境的。20 世紀(jì)末,中國科學(xué)院數(shù)學(xué)與系統(tǒng)科學(xué)研究院的張林波研究員建立了我國的第一個機(jī)群系統(tǒng)。該系統(tǒng)通過百兆以太網(wǎng)將32 臺PC 機(jī)組成了一個局域網(wǎng),并安裝了Linux 系統(tǒng)及MPI 等并行軟件。2000 年筆者在清華大學(xué)力學(xué)系做博士后,期間也搭建了一套每秒百億次的PC 機(jī)群系統(tǒng)。

筆者20 余年來見證了我國并行計(jì)算機(jī)的飛速發(fā)展。1997 年筆者在中國科學(xué)院力學(xué)研究所做博士生,當(dāng)時使用的是中國科學(xué)院計(jì)算中心的Power Challenge 并行機(jī),它的性能約每秒十億次(浮點(diǎn)運(yùn)算),2000 年筆者使用的PC 機(jī)群的性能為每秒百億次。隨后使用過千億次的神威1 號,萬億次的深騰6800,十萬億次的曙光4000,百萬億次的深騰7000,千萬億次的天河1 號,億億次的天河2 號以及十億億次級的神威·太湖之光。20 余年間,我國超級計(jì)算機(jī)的性能提升了一億倍。天河1 號、天河2 號和神威·太湖之光都曾排名世界第一,展示了我國在超級計(jì)算領(lǐng)域的實(shí)力。當(dāng)前,排名世界第一的機(jī)器是日本的“富岳”,其性能為400P 左右[1],即每秒40 億億次,而E 級計(jì)算機(jī)(百億億次計(jì)算機(jī))也將很快面世。

1 異構(gòu)并行計(jì)算

異構(gòu)并行是當(dāng)前超級計(jì)算機(jī)的發(fā)展趨勢,排名前列的超級計(jì)算機(jī)大多采用異構(gòu)體系。所謂“異構(gòu)”就是采用CPU 以外的加速部件來輔助計(jì)算,提升計(jì)算性能。當(dāng)前最常用的加速部件是GPU,也就是常說的顯卡。GPU 的計(jì)算性能非常強(qiáng),浮點(diǎn)計(jì)算性能遠(yuǎn)遠(yuǎn)超過CPU,這主要是因?yàn)镚PU 要快速處理圖像,每秒鐘實(shí)現(xiàn)數(shù)十上百幀圖像的計(jì)算,每幀圖像有上百萬像素,必須有強(qiáng)大的計(jì)算能力,才能處理如此巨大的運(yùn)算量。GPU 內(nèi)的處理器數(shù)目非常多,目前的高端顯卡通常有數(shù)千甚至上萬個流處理器。例如NVIDA RTX2080Ti 顯卡里面流處理器的數(shù)目為4352 個,而最新推出的NVIDA RTX3090 顯卡里面的流處理器數(shù)目達(dá)到了10 496 個。每一個流處理器相當(dāng)于一個小CPU,這些小CPU 協(xié)同工作,以提供強(qiáng)大的計(jì)算性能。天河1 號就是使用GPU 作為加速器的。除了GPU,還有其他類型的加速芯片,例如英特爾的MIC 加速卡,一塊MIC 卡里有61 個處理器,這些處理器與英特爾CPU 執(zhí)行相同的指令集,只是主頻略低些。天河2 號就是使用MIC 卡來加速的。另外,還有片內(nèi)眾核系統(tǒng),將加速部件放到CPU內(nèi)部。片內(nèi)眾核系統(tǒng)的典型例子是神威·太湖之光,其CPU 稱為“申威”,每個CPU 內(nèi)有4 個核組,每個核組包含1 個主核及64 個從核。每個CPU 內(nèi)包含了260 個CPU 核心(4 主核,256 從核)??梢钥闯觯悩?gòu)并行是依靠處理器數(shù)目的優(yōu)勢以實(shí)現(xiàn)強(qiáng)大的計(jì)算性能。

2 并行程序設(shè)計(jì)

超級計(jì)算機(jī)包含了大量的處理器,必須采用并行程序才能發(fā)揮其性能優(yōu)勢。不同硬件體系對編程的要求是不同的。共享存儲系統(tǒng)編程相對簡單,推薦大家使用OpenMP 程序設(shè)計(jì)。OpenMP 是一個多線程編程工具,嵌入到原編程語言中,對原始程序改動非常小。OpenMP 常用的并行編程方式是在原有程序的循環(huán)體前添加類似編譯指示符的語句,指示編譯器將緊鄰的循環(huán)體切割成多個線程并發(fā)執(zhí)行。由于共享存儲系統(tǒng)內(nèi)存中的數(shù)據(jù)所有處理器都能訪問,因而不需為了并行化而改變數(shù)據(jù)結(jié)構(gòu),程序移植非常便捷。當(dāng)然,受共享存儲系統(tǒng)的擴(kuò)展性限制,計(jì)算難以擴(kuò)展到很大規(guī)模。

大規(guī)模并行通常采用分布式存儲系統(tǒng)。對于分布式存儲系統(tǒng),推薦采用MPI 并行編程方式。消息傳遞接口(message passing interface, MPI)是當(dāng)前應(yīng)用最為廣泛的并行編程工具。MPI 既可在分布式存儲系統(tǒng)上運(yùn)行,也可以在共享存儲系統(tǒng)上運(yùn)行。MPI是一個并行函數(shù)庫,可以嵌入到C, Fortran 等編程語言中。MPI 程序的運(yùn)行機(jī)制是:前端機(jī)將MPI 程序編譯成可執(zhí)行代碼后,將代碼拷貝N份,由N個進(jìn)程執(zhí)行,通常每個CPU(或節(jié)點(diǎn)) 運(yùn)行一個進(jìn)程。雖然各進(jìn)程運(yùn)行的代碼相同,但是其計(jì)算的任務(wù)是不同的。因?yàn)镸PI 程序設(shè)計(jì)時,通常先要調(diào)用MPI庫函數(shù)得到本進(jìn)程的ID 號,然后通過程序設(shè)計(jì)安排不同ID 號的進(jìn)程做不同的工作。每個MPI 進(jìn)程有自己獨(dú)立的內(nèi)存空間,各進(jìn)程只能訪問自己的內(nèi)存。如果需要其他進(jìn)程的數(shù)據(jù),可以調(diào)用MPI 的通信函數(shù)(MPI SEND,MPIRECV 等),以進(jìn)程間通信的形式實(shí)現(xiàn)。

總之,通過大量CPU 并行的超級計(jì)算是當(dāng)今高性能計(jì)算機(jī)及數(shù)值計(jì)算技術(shù)發(fā)展的趨勢。關(guān)注及學(xué)習(xí)并行計(jì)算技術(shù)是十分必要的。關(guān)于并行編程方面的內(nèi)容可以參考筆者在中國科學(xué)院大學(xué)講授《計(jì)算流體力學(xué)》的第14 和15 講,課件和錄像可從筆者網(wǎng)盤下載[2]。此外,推薦“超算習(xí)堂” 網(wǎng)站[3], 該網(wǎng)站內(nèi)有大量并行程序設(shè)計(jì)的課程及資料。

猜你喜歡
存儲系統(tǒng)數(shù)目超級計(jì)算機(jī)
超級計(jì)算機(jī)
移火柴
英國
天河超算存儲系統(tǒng)在美創(chuàng)佳績
面向4K/8K的到來 存儲該怎么辦?
每秒100億億次 中國超級計(jì)算機(jī)
牧場里的馬
探索法在數(shù)學(xué)趣題中的應(yīng)用
五华县| 阿瓦提县| 鹤山市| 阳东县| 长岛县| 齐齐哈尔市| 当涂县| 博客| 寿光市| 田东县| 大城县| 石渠县| 吴堡县| 新沂市| 普洱| 奇台县| 新安县| 昭通市| 保康县| 杭州市| 喀喇沁旗| 栾城县| 白朗县| 枝江市| 瓦房店市| 门源| 钟山县| 新乡县| 康保县| 安岳县| 南昌县| 贵南县| 老河口市| 南和县| 常德市| 疏勒县| 德庆县| 砚山县| 汉寿县| 衡东县| 永川市|