亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向科學(xué)計算可視化的兩級并行數(shù)據(jù)讀取加速方法

        2017-11-07 08:38:56曹立強莫則堯
        計算機研究與發(fā)展 2017年4期
        關(guān)鍵詞:科學(xué)計算超級計算機線程

        石 劉 肖 麗 曹立強 莫則堯

        1(中國艦船研究院 北京 100101)

        2(北京應(yīng)用物理與計算數(shù)學(xué)研究所 北京 100088)

        3 (中物院高性能數(shù)值模擬軟件中心 北京 100088)

        (shilbill@vip.sina.com)

        科學(xué)計算是以實際應(yīng)用為牽引、以高性能計算機為依托而快速發(fā)展的一門交叉學(xué)科,被廣泛應(yīng)用于核武器、能源、信息、制造、材料和氣候等諸多領(lǐng)域的科研和生產(chǎn),對國防安全和國民經(jīng)濟發(fā)展起著非常積極的作用[1-2].科學(xué)計算可視化(visualization in scientific computing, ViSC)簡稱可視化,是運用計算機圖形學(xué)和圖像處理技術(shù),將科學(xué)計算過程中產(chǎn)生的數(shù)據(jù)及計算結(jié)果轉(zhuǎn)換為圖像,在屏幕上顯示出來并進(jìn)行交互處理的技術(shù),已成為科學(xué)研究的重要手段之一[3].

        為了匹配超級計算機系統(tǒng)的整體計算能力,超級計算機的存儲子系統(tǒng)通常被設(shè)計為具有良好的IO性能可擴展性[5],表現(xiàn)為:應(yīng)用獲得存儲子系統(tǒng)最佳性能時的IO訪問并發(fā)度,與超級計算機系統(tǒng)總計算核數(shù)通常處于同一數(shù)量級.

        但是,相對于超級計算機系統(tǒng)超大的總計算核數(shù)(可達(dá)數(shù)萬至數(shù)百萬),科學(xué)計算可視化應(yīng)用的進(jìn)程規(guī)模(等于IO訪問并發(fā)度)則相對偏小(經(jīng)驗上通常設(shè)為科學(xué)計算應(yīng)用進(jìn)程規(guī)模的1%,典型值為數(shù)個至數(shù)百個),甚至遠(yuǎn)小于超級計算機系統(tǒng)的總計算核數(shù)(比如廣州超算中心的天河2號超級計算機系統(tǒng)具有約300萬個計算核心,而可視化應(yīng)用典型進(jìn)程規(guī)模與之相比,一般小幾個數(shù)量級).因此,科學(xué)計算可視化應(yīng)用往往無法充分利用超級計算機的IO性能,影響可視化應(yīng)用整體的運行效率.

        本文提出了一種面向科學(xué)計算可視化的兩級并行數(shù)據(jù)讀取加速方法,其創(chuàng)新和貢獻(xiàn)如下:1)根據(jù)可視化應(yīng)用典型IO進(jìn)程規(guī)模,遠(yuǎn)小于超級計算機存儲子系統(tǒng)發(fā)揮最佳性能時的IO訪問并發(fā)度這一特性,提出了面向科學(xué)計算可視化的兩級并行數(shù)據(jù)讀取加速方法;2)以典型科學(xué)計算可視化應(yīng)用TeraVAP[6-7]為基礎(chǔ),設(shè)計并實現(xiàn)了功能獨立的兩級并行數(shù)據(jù)讀取加速模塊,驗證了可視化兩級并行數(shù)據(jù)讀取方法的有效性.

        1 背 景

        1.1 超級計算機存儲子系統(tǒng)及性能特征

        超級計算機上的存儲子系統(tǒng)通常使用并行文件系統(tǒng)進(jìn)行文件管理,科學(xué)計算環(huán)境下常見的并行文件系統(tǒng)包括Lustre[8],PVFS[9],GPFS[10]等.

        并行文件系統(tǒng)的組件通常包括客戶端、元數(shù)據(jù)服務(wù)器(metadata server, MDS)和存儲服務(wù)器.并行文件系統(tǒng)通常使用存儲服務(wù)器集群的設(shè)計,以使存儲系統(tǒng)的容量和性能能夠容易地進(jìn)行橫向擴展(scale-out):也即通過增加存儲服務(wù)器的數(shù)量,即可容易地進(jìn)行存儲系統(tǒng)容量和性能的擴展.作為一個例子,圖1給出了Lustre文件系統(tǒng)的整體架構(gòu)[11],其中OSS(object storage service)servers即代表存儲服務(wù)器集群.

        Fig. 1 Lustre file system architecture圖1 Lustre文件系統(tǒng)架構(gòu)

        存儲服務(wù)器集群中通常包含較多的存儲節(jié)點(存儲服務(wù)器)以及大量的存儲設(shè)備(磁盤),為了充分利用這些存儲系統(tǒng)資源,應(yīng)用通常需要較高的IO訪問并發(fā)度(總的訪問線程數(shù)).其外在表現(xiàn)為:超級計算機中的存儲子系統(tǒng)通常具有良好的IO性能可擴展性,并以此匹配超級計算機的超大總計算核數(shù).作為一個例子,IBM Blue GeneP是2008年計算性能世界排名前5的超級計算機系統(tǒng),該系統(tǒng)具有40 960個4核計算節(jié)點,共計163 840個CPU核.隨著IO進(jìn)程(每進(jìn)程1個線程,進(jìn)程數(shù)等于線程數(shù),也即等于IO訪問并發(fā)度)數(shù)量變化,IBM Blue GeneP的數(shù)據(jù)讀取性能擴展性如圖2所示(該測試直接基于底層POSIX接口,在全系統(tǒng)獨占模式下進(jìn)行).

        Fig. 2 Data read performance scalability of IBM Blue GeneP system圖2 IBM Blue GeneP系統(tǒng)數(shù)據(jù)讀取性能擴展性

        1.2 科學(xué)計算可視化應(yīng)用工作流程

        科學(xué)計算可視化的主要工作包括并行數(shù)據(jù)讀取、并行數(shù)據(jù)抽取和并行圖形繪制3部分,其工作流程為:首先多個可視化進(jìn)程并行讀取科學(xué)計算結(jié)果數(shù)據(jù)集,然后多個進(jìn)程進(jìn)行并行數(shù)據(jù)抽取工作,最后多個進(jìn)程并行進(jìn)行圖形繪制工作,如圖3所示:

        Fig. 3 Workflow of visualization in scientific computing圖3 科學(xué)計算可視化工作流程

        目前的可視化應(yīng)用,圖3中所示的3部分工作是緊耦合在一起的.并行數(shù)據(jù)讀取性能是影響科學(xué)計算可視化應(yīng)用性能的最主要方面,其主要涉及到計算機數(shù)據(jù)存儲方面的知識,而并行數(shù)據(jù)抽取和圖形繪制則主要涉及計算機圖形學(xué)方面的知識.

        科學(xué)計算可視化應(yīng)用通常采用一個適當(dāng)?shù)倪M(jìn)程規(guī)模,這是因為:

        1) 為了保證可視化應(yīng)用具有一定的、用戶可接受的性能,需要使用多個進(jìn)程并行工作.

        2) 可視化應(yīng)用并行工作進(jìn)程數(shù)量又不能太多,其原因有3點:

        ② 對于打算重新購買超級計算機的用戶而言,更大進(jìn)程規(guī)模導(dǎo)致需要購買更多的計算節(jié)點資源,增大用戶使用成本,而對于使用公共計算機資源的用戶而言,更大進(jìn)程規(guī)模導(dǎo)致排隊等待時間變長、用戶使用體驗變差;

        ③ 程并行規(guī)模的增大,導(dǎo)致通信等開銷的加大,在某些情況下反而可能導(dǎo)致一些可視化并行算法的效率降低.

        目前,在這些因素(性能與功耗等)權(quán)衡下,經(jīng)驗上科學(xué)計算可視化應(yīng)用的進(jìn)程規(guī)模通常設(shè)為科學(xué)計算應(yīng)用進(jìn)程規(guī)模的1%,典型值為數(shù)個至數(shù)百個.

        1.3 科學(xué)計算可視化應(yīng)用典型IO訪問模式

        TeraVAP(terascale visualization & analysis platform)[6-7]是一款典型的科學(xué)計算可視化應(yīng)用,由北京應(yīng)用物理與計算數(shù)學(xué)研究所研制,服務(wù)于基于JASMIN(J parallel adaptive structured mesh application infrastructure)[12],JAUMIN(J parallel adaptive unstructured meshes applications infrastr-ucture)[13],JCOGIN(J parallel mesh-free combina-tory geometry infrastructure)[14]三個科學(xué)計算領(lǐng)域編程框架研制的科學(xué)計算應(yīng)用.

        目前TeraVAP已成功運用于數(shù)十個科學(xué)計算應(yīng)用的后處理可視化數(shù)據(jù)分析,是一款典型的科學(xué)計算可視化應(yīng)用,其數(shù)據(jù)訪問模式為:多個進(jìn)程并行讀取科學(xué)計算結(jié)果總數(shù)據(jù)集的不同子數(shù)據(jù)集,如圖4所示.這些子數(shù)據(jù)集之間交集為空,并集為總數(shù)據(jù)集.每個子數(shù)據(jù)集通常保存于一個數(shù)據(jù)文件中,總數(shù)據(jù)集的應(yīng)用元數(shù)據(jù)信息保存于一個summary文件中.

        Fig. 4 Access pattern of visualization in scientific computing applications圖4 科學(xué)計算可視化數(shù)據(jù)訪問模式

        TeraVAP中每個進(jìn)程讀取的數(shù)據(jù)分為2級:第1級為網(wǎng)格片(patch)級,該級為邏輯概念,每個進(jìn)程需要讀取多個網(wǎng)格片;第2級為變量(variable)級,每個邏輯網(wǎng)格片上可以擁有多個變量,實際科學(xué)計算數(shù)據(jù)存儲于變量中,如圖5所示:

        Fig. 5 Read data’s organization diagram for each TeraVAP process圖5 TeraVAP每進(jìn)程讀取數(shù)據(jù)組織示意圖

        單個TeraVAP進(jìn)程內(nèi)部的數(shù)據(jù)讀取的基本單位為一個變量,其訪問流程為:以網(wǎng)格片(patch)為主循環(huán)、以變量(variable)為次循環(huán)串行讀取數(shù)據(jù),直到該進(jìn)程被分配的所有網(wǎng)格片上的所有變量都讀取完成,該進(jìn)程數(shù)據(jù)讀取過程結(jié)束,其流程如圖6所示.這種數(shù)據(jù)訪問模式意味著可視化應(yīng)用對存儲子系統(tǒng)的訪問并發(fā)度(總IO線程數(shù))跟進(jìn)程數(shù)相等.

        Fig. 6 Data read flow of one TeraVAP process圖6 單個TeraVAP進(jìn)程數(shù)據(jù)讀取流程

        可視化應(yīng)用的進(jìn)程規(guī)模通常較小(數(shù)個至數(shù)百個,遠(yuǎn)小于超級計算機系統(tǒng)總計算核數(shù)),并且由于進(jìn)程數(shù)跟訪問并發(fā)度(IO線程數(shù))相等,因此,較低的訪問并發(fā)度導(dǎo)致可視化應(yīng)用無法獲得較高的IO性能(參見圖2).

        2 問 題

        P=F(N),

        (1)

        其中,P代表可視化應(yīng)用的IO性能,N代表可視化應(yīng)用使用的IO線程數(shù),函數(shù)F代表隨訪問線程數(shù)變化的IO性能.

        F的特點是:當(dāng)N=N*時(N*通常跟超級計算機系統(tǒng)總計算核數(shù)處于同一數(shù)量級),P達(dá)到最大值;當(dāng)NN*時,由于過分的競爭,性能會比峰值性能降低.

        可視化應(yīng)用通常使用較少的進(jìn)程數(shù)NP,也即可視化應(yīng)用使用的IO進(jìn)程數(shù)NP通常遠(yuǎn)小于N*,即NP?N*.由于可視化應(yīng)用采用單級進(jìn)程間并行方式讀取數(shù)據(jù)(每進(jìn)程內(nèi)線程數(shù)為1),因此可視化應(yīng)用的總IO線程數(shù)NT等于總進(jìn)程數(shù)NP,即NT=NP.

        需要解決的問題是:如何使得在NP較小時得到較大的P值?

        3 方法與實現(xiàn)

        通過第1節(jié)和第2節(jié)介紹和分析可見:1)科學(xué)計算可視化應(yīng)用所采用的進(jìn)程數(shù)相對較小,通常為數(shù)個至數(shù)百個;2)設(shè)計良好的超級計算機存儲子系統(tǒng)通常具有較好的IO性能可擴展性,應(yīng)用獲得存儲子系統(tǒng)最佳性能時的IO訪問并發(fā)度與超級計算機系統(tǒng)總計算核數(shù)通常處于同一數(shù)量級.由于可視化應(yīng)用的典型進(jìn)程規(guī)模通常遠(yuǎn)小于超級計算機的總計算核數(shù),因此科學(xué)計算可視化應(yīng)用在超級計算機上無法充分利用IO資源,從而無法獲取較高的IO性能.本節(jié)介紹可視化應(yīng)用的兩級并行數(shù)據(jù)讀取方法與實現(xiàn).

        3.1 兩級并行數(shù)據(jù)讀取方法

        兩級并行數(shù)據(jù)讀取方法的思想是:

        1) 在保持可視化進(jìn)程規(guī)模不變的前提下,在進(jìn)程間進(jìn)行數(shù)據(jù)讀取任務(wù)分配,使得進(jìn)程間并行讀取數(shù)據(jù);

        2) 在可視化進(jìn)程內(nèi)部引入多線程并行讀取數(shù)據(jù),使得進(jìn)程內(nèi)并行讀取數(shù)據(jù).

        兩級并行數(shù)據(jù)讀取方法的流程如圖7所示,通過進(jìn)程間和進(jìn)程內(nèi)的兩級并行數(shù)據(jù)讀取方法,增加存儲系統(tǒng)總的IO訪問并發(fā)度,提高可視化應(yīng)用整體的讀取性能.

        圖7中,如果NT=1,則該進(jìn)程內(nèi)無需引入多線程并行,采用串行讀取即可(如圖6所示);如果NT>1,則該進(jìn)程內(nèi)引入NT個線程并行讀取數(shù)據(jù).

        一方面,從計算角度看,由于數(shù)據(jù)讀取過程并不是計算密集型的,因此進(jìn)程內(nèi)的多個線程可以運行于同一個計算核上,無需增加計算核數(shù),即保持第2節(jié)問題中的進(jìn)程數(shù)NP較??;另一方面,從存儲角度看,進(jìn)程內(nèi)的多線程并行讀取的引入,導(dǎo)致應(yīng)用對存儲子系統(tǒng)的訪問并發(fā)度增加,使得可視化應(yīng)用可以獲取更大的讀取性能,即第2節(jié)問題中的P值變大.

        在兩級并行數(shù)據(jù)讀取方法中,一個需要解決的關(guān)鍵問題是:如何確定每個進(jìn)程的線程數(shù)以使得可視化應(yīng)用讀取性能最大化?需要考慮的因素包括2點:1)可視化應(yīng)用獨占超級計算機系統(tǒng)資源的情況.不同的超級計算機系統(tǒng),其IO達(dá)到峰值的訪問并發(fā)度不盡相同,如果可視化應(yīng)用單級純進(jìn)程并行時的訪問并發(fā)度,已經(jīng)超過了特定超級計算機存儲子系統(tǒng)獲得最佳性能時的IO訪問并發(fā)度,則進(jìn)程內(nèi)引入多線程的兩級并行讀取技術(shù),不但不會提升讀取性能,反而會導(dǎo)致讀取性能下降(過分競爭所致).2)可視化應(yīng)用與其他應(yīng)用共享超級計算機系統(tǒng)資源的情況.存儲子系統(tǒng)是個多應(yīng)用共享系統(tǒng),因此其他應(yīng)用(可能)已經(jīng)對存儲子系統(tǒng)產(chǎn)生了一定的IO訪問并發(fā)度,應(yīng)該使得可視化應(yīng)用采用兩級并行數(shù)據(jù)讀取之后,所有應(yīng)用(包括可視化應(yīng)用)對存儲子系統(tǒng)產(chǎn)生的總訪問并發(fā)度,不超過存儲子系統(tǒng)達(dá)到峰值性能時的IO訪問并發(fā)度(避免過分競爭導(dǎo)致性能下降).

        Fig. 7 Two level parallel data read flow of ViSC applications圖7 科學(xué)計算可視化兩級并行數(shù)據(jù)讀取流程

        Fig. 8 Thread number calculation algorithm flow in one ViSC process圖8 計算可視化進(jìn)程內(nèi)線程數(shù)算法流程

        Fig. 9 Memory data structure for multi threads parallel read data in one ViSC process圖9 可視化進(jìn)程內(nèi)多線程并行讀取數(shù)據(jù)的內(nèi)存數(shù)據(jù)結(jié)構(gòu)

        N*可通過測試形成映射表由用戶配置或者根據(jù)存儲子系統(tǒng)的軟硬件配置,按照一定的隨訪問并發(fā)度變化的存儲系統(tǒng)性能模型計算得到.

        NC可通過測試形成映射表由用戶配置,或者根據(jù)存儲子系統(tǒng)的實時負(fù)載狀況,按照一定的隨訪問并發(fā)度變化的存儲系統(tǒng)負(fù)載模型計算得到.

        NC是否大于N*的判斷可由存儲子系統(tǒng)的實時負(fù)載狀況確定.

        3.2 可視化讀取模塊實現(xiàn)

        我們以TeraVAP可視化平臺為基礎(chǔ),獨立出并行數(shù)據(jù)讀取部分,實現(xiàn)了功能獨立的可視化兩級并行數(shù)據(jù)讀取加速模塊TeraVAPReader.

        為此,首先凝煉了TeraVAPReader與TeraVAP之間的數(shù)據(jù)讀取接口,以方便實現(xiàn)可視化進(jìn)程內(nèi)的線程并行數(shù)據(jù)讀取,如下:

        1) 讀取多網(wǎng)格片數(shù)據(jù)接口原型.st_patches_raw_data*ReadPatchData(IN char*full_path_file_name,IN int*patch_id_list,IN intpatch_count,IN const char*var_name_list[],IN intvar_count).

        在以上接口原型中,full_path_file_name表示數(shù)據(jù)文件所對應(yīng)應(yīng)用元數(shù)據(jù)文件summary的文件名,patch_id_list表示多個網(wǎng)格片,patch_count表示需要讀取的網(wǎng)格片數(shù)量,var_name_list表示網(wǎng)格片上需要讀取的變量列表,var_count表示需要讀取的變量個數(shù).

        2) 設(shè)計了新的數(shù)據(jù)結(jié)構(gòu),用于在單個進(jìn)程內(nèi)供多線程并行讀取并保存數(shù)據(jù).接口返回值類型st_patches_raw_data即為該數(shù)據(jù)結(jié)構(gòu),其由多個結(jié)構(gòu)體組合定義而成,用于保存單個可視化進(jìn)程內(nèi)部的多個網(wǎng)格片上的多個變量數(shù)據(jù),內(nèi)存結(jié)構(gòu)示意如圖9所示.需要指出的是,由于每個變量都有各自獨立的內(nèi)存存儲空間,相互之間不會干擾,因此該結(jié)構(gòu)采用無鎖設(shè)計,避免了多個線程并行訪問時的同步開銷.其中,error_code域用于保存多線程并行讀取數(shù)據(jù)的錯誤碼,patch_count域表示該進(jìn)程需要讀取的網(wǎng)格片數(shù)量,patch_id域表示網(wǎng)格片全局編號,var_count域表示網(wǎng)格片上的變量數(shù),var_raw_data域用于存放ViSC應(yīng)用實際讀取的單個變量的原始數(shù)據(jù),其他以“var_”開頭域為讀取變量數(shù)據(jù)的輔助信息(應(yīng)用元數(shù)據(jù),例如變量字節(jié)數(shù)、變量數(shù)據(jù)類型等).

        3) 針對典型可視化應(yīng)用TeraVAP的數(shù)據(jù)組織特點,基于單生產(chǎn)者多消費者模型,設(shè)計了針對性的兩級并行數(shù)據(jù)讀取算法,步驟如下:

        步驟1. 以網(wǎng)格片為單位,進(jìn)行多個可視化進(jìn)程間的讀取任務(wù)分配,達(dá)到進(jìn)程間并行數(shù)據(jù)讀取.如圖10所示:

        Fig. 10 Patch-based read task allocating diagram among ViSC processes圖10 可視化進(jìn)程間以網(wǎng)格片為單位的讀取任務(wù)分配

        步驟2. 每個可視化進(jìn)程內(nèi),以單個網(wǎng)格片上的單個變量讀取作為一個讀取任務(wù),一次性生產(chǎn)出該可視化進(jìn)程的所有讀取任務(wù).

        步驟3. 每個可視化進(jìn)程內(nèi)啟動多個讀取線程,采用多消費者模型逐個獲取讀取任務(wù)并進(jìn)行實際數(shù)據(jù)讀取,達(dá)到進(jìn)程內(nèi)并行數(shù)據(jù)讀取.如圖11所示.

        算法步驟1和步驟3聯(lián)合,實現(xiàn)了兩級并行數(shù)據(jù)讀取.當(dāng)所有進(jìn)程內(nèi)的讀取任務(wù)處理完成,整個可視化應(yīng)用的并行數(shù)據(jù)讀取過程結(jié)束,進(jìn)入并行數(shù)據(jù)抽取階段.

        假定單個可視化進(jìn)程內(nèi)所有網(wǎng)格片上的所有變量總數(shù)為n,則該算法的時間復(fù)雜度和空間復(fù)雜度都為O(n).

        Fig. 11 Multi consumers model-based multi threads parallel data read diagram in one ViSC process圖11 可視化進(jìn)程內(nèi)基于多消費者模型的多線程并行數(shù)據(jù)讀取

        4) 實現(xiàn)了功能獨立的可視化兩級并行數(shù)據(jù)讀取加速模塊.進(jìn)程間任務(wù)分配以網(wǎng)格片為單位,進(jìn)程內(nèi)創(chuàng)建所有讀取任務(wù)以變量為單位(以〈PatchID,VarID〉為鍵值,如圖7所示).采用用戶配置的方式設(shè)置N*和NC(如圖8所示),并由此計算出當(dāng)前進(jìn)程所需線程數(shù)NT.進(jìn)程間以網(wǎng)格片為單位的多MPI進(jìn)程并行數(shù)據(jù)讀取,與進(jìn)程內(nèi)以變量為單位的多pThread線程并行數(shù)據(jù)讀取一起,共同實現(xiàn)了兩級并行數(shù)據(jù)讀取.

        4 實驗結(jié)果與分析

        為了驗證兩級并行數(shù)據(jù)讀取加速方法,我們使用科學(xué)計算應(yīng)用LinAdvSL(單層均勻矩形結(jié)構(gòu)網(wǎng)格上求解線性對流方程)在一臺曙光計算機以及廣州超算中心的天河2超級計算機上分別對該方法進(jìn)行了測試.測試方法為:1)通過LinAdvSL 3D應(yīng)用產(chǎn)生測試數(shù)據(jù)集;2)使用TeraVAPReader分別進(jìn)行單級并行和兩級并行數(shù)據(jù)讀取性能測試(IO性能只跟數(shù)據(jù)總量和變量總數(shù)相關(guān),采用LinAdvSL單個應(yīng)用產(chǎn)生測試數(shù)據(jù)集即可).表1顯示了測試的軟硬件環(huán)境.

        Table 1 Software and Hardware for Test表1 測試軟硬件環(huán)境

        表1中需要說明的是HDF5[15]庫采用的是1.8.6版本,在編譯時通過--enable-threadsafe選項打開HDF5對pThread庫的多線程并行訪問支持,未使用MPI-IO[16].

        表2顯示了測試所采用的數(shù)據(jù)集:

        Table 2 Dataset for Test表2 測試采用的數(shù)據(jù)集

        我們通過在每個進(jìn)程內(nèi)變動讀取線程數(shù)的方法來進(jìn)行數(shù)據(jù)讀取性能測試.每種測試進(jìn)行5次,結(jié)果取平均值.進(jìn)程內(nèi)線程數(shù)等于1代表單級并行數(shù)據(jù)讀取,進(jìn)程內(nèi)線程數(shù)大于1代表兩級并行數(shù)據(jù)讀取.測試過程中,使用的計算核數(shù)等于進(jìn)程數(shù);當(dāng)進(jìn)程內(nèi)的線程數(shù)變化時,使用的計算核數(shù)不變.

        曙光集群的存儲子系統(tǒng)規(guī)模相對較小,因此在曙光集群上進(jìn)行了小規(guī)模進(jìn)程數(shù)(進(jìn)程數(shù)為1~8,每進(jìn)程的線程數(shù)為1,4,8)的性能測試.圖12顯示了使用不同進(jìn)程線程數(shù)在曙光集群上的性能測試結(jié)果,可以看出:當(dāng)進(jìn)程數(shù)小于4時,單級并行數(shù)據(jù)讀取速率反而比兩級并行數(shù)據(jù)讀取速率高,這是因為兩級并行引入多線程的開銷所致;隨著進(jìn)程規(guī)模逐漸增大,兩級并行的性能優(yōu)勢逐漸增加,掩蓋了其多線程開銷,最終導(dǎo)致兩級并行的數(shù)據(jù)讀取速率超過單級并行數(shù)據(jù)讀取速率,并在8進(jìn)程時兩級并行與單級并行數(shù)據(jù)讀取速率差值達(dá)到最大.

        Fig. 12 Data read rate of Sugon cluster using different process number and thread number圖12 曙光集群使用不同進(jìn)程線程數(shù)的數(shù)據(jù)讀取速率

        圖12中單級并行數(shù)據(jù)讀取時(1線程情況,進(jìn)程內(nèi)采用圖6中串行讀取方式),當(dāng)進(jìn)程數(shù)超過4以后,隨著進(jìn)程數(shù)的增加,數(shù)據(jù)讀取性能反而有所下降,這與圖2中的IO性能曲線規(guī)律并不一致.我們的測試中使用了HDF5庫,而圖2的測試中并未使用該庫,我們分析認(rèn)為,這種不一致應(yīng)該跟HDF5庫中進(jìn)程和線程2種模式下的數(shù)據(jù)讀取算法相關(guān).

        圖13顯示了曙光集群8進(jìn)程下使用不同線程數(shù)的數(shù)據(jù)讀取速率,可以看出,在8進(jìn)程下,兩級并行比單級并行峰值數(shù)據(jù)讀取速率提高269.5%(7線程vs 1線程),均值數(shù)據(jù)讀取速率(2~8線程數(shù)據(jù)讀取速率的平均值vs 1線程)提高232.2%.從圖13中也可以看出,單個計算節(jié)點的IO帶寬具有上限,也就是進(jìn)程內(nèi)的線程數(shù)并不是越多越好.

        Fig. 13 Data read rate of Sugon cluster under 8 processes圖13 曙光集群8進(jìn)程數(shù)據(jù)讀取速率

        在天河2-b集群上進(jìn)行了大規(guī)模進(jìn)程數(shù)(進(jìn)程數(shù)為128~1024,每進(jìn)程的線程數(shù)為1~64)的性能測試,圖14顯示了使用不同進(jìn)程線程數(shù)的性能測試結(jié)果.由于天河2-b集群是目前計算性能世界排名第一的超級計算機系統(tǒng),其上同時運行著較多的應(yīng)用軟件,這些應(yīng)用軟件之間共享存儲子系統(tǒng)資源,彼此之間會造成IO性能干擾.因此,圖14的IO性能曲線特征沒有圖2那樣明顯,但從圖中仍然可以看出,兩級并行數(shù)據(jù)讀取速率超過單級并行.

        Fig. 14 Data read rate of Tianhe2-b cluster using different process number and thread number圖14 天河2-b集群使用不同進(jìn)程線程數(shù)的數(shù)據(jù)讀取速率

        圖15顯示了不同進(jìn)程規(guī)模下天河2-b集群兩級并行比單級并行數(shù)據(jù)讀取速率峰值提升比例:不同進(jìn)程下兩級并行比單級并行峰值數(shù)據(jù)讀取速率提高33.5%(1024進(jìn)程下),均值數(shù)據(jù)讀取速率(128~1024進(jìn)程下數(shù)據(jù)讀取速率提高比例的平均值)提高26.6%.

        Fig. 15 Two level parallel-based data read peak enhance-ment of Tianhe2-b cluster compared with one level parallel under different process scales圖15 天河2-b集群不同進(jìn)程規(guī)模下兩級并行比單級并行數(shù)據(jù)讀取速率峰值提升比例

        對比圖15和圖13可以發(fā)現(xiàn),相比于小規(guī)模進(jìn)程下大幅度的性能提升,大規(guī)模進(jìn)程下兩級并行比單級并行數(shù)據(jù)讀取速率提升比例變小.一方面原因是,大規(guī)模進(jìn)程下單級并行數(shù)據(jù)讀取速率已經(jīng)提高,兩級并行數(shù)據(jù)讀取性能能夠提升的空間縮小了(參見圖2隨訪問并發(fā)度變化的IO性能曲線);另一方面可能原因是,測試時系統(tǒng)中由其他應(yīng)用產(chǎn)生的訪問并發(fā)度已經(jīng)較高,剩余的性能提升空間已不大.

        綜合圖12~15可以看出,在不同的進(jìn)程規(guī)模下,兩級并行比單級并行峰值數(shù)據(jù)讀取速率提高33.5%~269.5%,均值數(shù)據(jù)讀取速率提高26.6%~232.2%,可視化應(yīng)用IO數(shù)據(jù)讀取速率得到顯著提升,驗證了兩級并行數(shù)據(jù)讀取加速方法的有效性.

        Table 3 Overall Running Speed Enhancement of ViSC Applications

        表3中分別計算出了可視化應(yīng)用整體峰值和均值運行速度提升比例的最小值和最大值,可以看出,隨著科學(xué)計算應(yīng)用種類以及應(yīng)用規(guī)模的變化,兩級并行數(shù)據(jù)讀取可使可視化應(yīng)用整體峰值運行速度加速19.5%~225.7%,均值運行速度加速15.8%~197.6%.

        5 相關(guān)研究

        ADIOS(adaptable IO system)[17]項目由美國橡樹嶺國家實驗室計算科學(xué)國家中心牽頭,聯(lián)合勞倫斯伯克利國家實驗室科學(xué)數(shù)據(jù)管理中心以及美國國防部等單位針對科學(xué)計算應(yīng)用提出應(yīng)用級IO框架.該項目采用可擴展的架構(gòu),集成了多種IO訪問策略并且定制了針對科學(xué)計算應(yīng)用的專用數(shù)據(jù)格式,以盡量獲取最大IO帶寬,從而減輕科學(xué)計算及可視化應(yīng)用運行過程中所遭遇的IO性能瓶頸問題.該項目采用基于希爾伯特空間填充曲線的方式進(jìn)行數(shù)據(jù)分塊,以提高可視化數(shù)據(jù)讀取效率,該方法主要針對直交平面這種數(shù)據(jù)讀取模式提出.

        DCPL(dual channel parallel IO library)[18]通過預(yù)取可視化應(yīng)用元數(shù)據(jù)、減少應(yīng)用元數(shù)據(jù)讀取次數(shù)的方法,提升可視化應(yīng)用的讀取性能.由于下層的DCPL庫并不了解上層可視化應(yīng)用的語意,元數(shù)據(jù)預(yù)取可能失敗.

        6 未來工作

        目前在單個可視化進(jìn)程內(nèi)部,啟動多少個線程進(jìn)行數(shù)據(jù)讀取加速是由參數(shù)N*和NC決定的(如圖8所示),而在目前的實現(xiàn)中,N*和NC是通過測試形成映射表由用戶配置的方式確定的.采用用戶配置的方式確定N*和NC,需要用戶具有比較專業(yè)的知識,對超級計算機存儲子系統(tǒng)的性能較為熟悉,這對普通用戶使用可視化應(yīng)用造成了一定的困難.考慮到可視化應(yīng)用具有跨不同超級計算機平臺運行的需求,未來需要研究基于存儲體系結(jié)構(gòu)感知和運行時存儲子系統(tǒng)負(fù)載感知的IO性能自動優(yōu)化方法:通過自動識別超級計算機存儲子系統(tǒng)的軟硬件配置以自動確定參數(shù)N*,通過自動感知存儲子系統(tǒng)的實時負(fù)載以自動確定參數(shù)NC.通過N*和NC的自動確定,自動設(shè)置進(jìn)程內(nèi)最優(yōu)的多線程參數(shù)NT,達(dá)到可視化應(yīng)用IO性能自動優(yōu)化的目標(biāo).

        猜你喜歡
        科學(xué)計算超級計算機線程
        高中物理科學(xué)計算工具的設(shè)計與實施研究
        玩具世界(2024年2期)2024-05-07 08:15:34
        超級計算機
        《計算機程序設(shè)計》課程中科學(xué)計算思維能力的培養(yǎng)
        超級計算機及其在航空航天領(lǐng)域中的應(yīng)用
        科技傳播(2019年22期)2020-01-14 03:06:36
        美國制造出全球最快超級計算機
        每秒100億億次 中國超級計算機
        淺談linux多線程協(xié)作
        大學(xué)物理教學(xué)中培養(yǎng)科學(xué)計算能力的研究
        物理與工程(2013年3期)2013-03-11 16:04:49
        Linux線程實現(xiàn)技術(shù)研究
        么移動中間件線程池并發(fā)機制優(yōu)化改進(jìn)
        视频在线播放观看免费| 一群黑人大战亚裔女在线播放| 国产人成无码视频在线| 女同国产日韩精品在线| 久久精品国产亚洲av不卡国产| 欧美牲交a欧美牲交aⅴ免费真| 日本www一道久久久免费榴莲| 久久AⅤ无码精品色午麻豆| 无人视频在线播放免费| 国产精品三级av及在线观看| 国产精品亚洲综合一区在线观看| 亚洲成AV人片无码不卡| 国产交换精品一区二区三区| 亚洲乱亚洲乱妇无码麻豆| 一群黑人大战亚裔女在线播放| 中文字幕日韩精品美一区二区三区| 激情五月天在线观看视频| 久久天天躁狠狠躁夜夜不卡| 四虎影视在线观看2413| 亚洲日本人妻中文字幕| 丰满少妇被猛进去高潮| 午夜无码伦费影视在线观看| 精品免费人伦一区二区三区蜜桃| 熟女人妻一区二区中文字幕| 久久久久av综合网成人| 中文字幕亚洲欧美日韩2019| 亚洲av高清在线观看三区| 亚洲无人区乱码中文字幕动画 | 四虎影在永久在线观看| 67194熟妇在线永久免费观看 | 在线偷窥制服另类| 谷原希美中文字幕在线| 狠狠躁夜夜躁人人爽天天古典| 亚洲AV无码专区一级婬片毛片| 国内激情一区二区视频| 天天做天天爱夜夜爽女人爽| 亚洲色大成网站www永久一区| 亚洲午夜无码久久久久软件| 风韵犹存丰满熟妇大屁股啪啪| 特黄特色的大片观看免费视频| 亚洲国产精品悠悠久久琪琪|