• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      石 劉 肖 麗 曹立強 莫則堯

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

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

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

      (shilbill@vip.sina.com)

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

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

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

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

      1 背 景

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

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

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

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

      存儲服務器集群中通常包含較多的存儲節(jié)點(存儲服務器)以及大量的存儲設備(磁盤),為了充分利用這些存儲系統(tǒ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進程(每進程1個線程,進程數(shù)等于線程數(shù),也即等于IO訪問并發(fā)度)數(shù)量變化,IBM Blue GeneP的數(shù)據(jù)讀取性能擴展性如圖2所示(該測試直接基于底層POSIX接口,在全系統(tǒng)獨占模式下進行).

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

      1.2 科學計算可視化應用工作流程

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

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

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

      科學計算可視化應用通常采用一個適當?shù)倪M程規(guī)模,這是因為:

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

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

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

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

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

      1.3 科學計算可視化應用典型IO訪問模式

      TeraVAP(terascale visualization & analysis platform)[6-7]是一款典型的科學計算可視化應用,由北京應用物理與計算數(shù)學研究所研制,服務于基于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]三個科學計算領域編程框架研制的科學計算應用.

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

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

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

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

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

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

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

      2 問 題

      P=F(N),

      (1)

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

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

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

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

      3 方法與實現(xiàn)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      為此,首先凝煉了TeraVAPReader與TeraVAP之間的數(shù)據(jù)讀取接口,以方便實現(xiàn)可視化進程內的線程并行數(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ù)文件所對應應用元數(shù)據(jù)文件summary的文件名,patch_id_list表示多個網(wǎng)格片,patch_count表示需要讀取的網(wǎng)格片數(shù)量,var_name_list表示網(wǎng)格片上需要讀取的變量列表,var_count表示需要讀取的變量個數(shù).

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

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

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

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

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

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

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

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

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

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

      4 實驗結果與分析

      為了驗證兩級并行數(shù)據(jù)讀取加速方法,我們使用科學計算應用LinAdvSL(單層均勻矩形結構網(wǎng)格上求解線性對流方程)在一臺曙光計算機以及廣州超算中心的天河2超級計算機上分別對該方法進行了測試.測試方法為:1)通過LinAdvSL 3D應用產生測試數(shù)據(jù)集;2)使用TeraVAPReader分別進行單級并行和兩級并行數(shù)據(jù)讀取性能測試(IO性能只跟數(shù)據(jù)總量和變量總數(shù)相關,采用LinAdvSL單個應用產生測試數(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ù)集

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

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

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

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

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

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

      在天河2-b集群上進行了大規(guī)模進程數(shù)(進程數(shù)為128~1024,每進程的線程數(shù)為1~64)的性能測試,圖14顯示了使用不同進程線程數(shù)的性能測試結果.由于天河2-b集群是目前計算性能世界排名第一的超級計算機系統(tǒ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集群使用不同進程線程數(shù)的數(shù)據(jù)讀取速率

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

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

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

      Table 3 Overall Running Speed Enhancement of ViSC Applications

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

      5 相關研究

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

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

      6 未來工作

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

      猜你喜歡
      科學計算超級計算機線程
      高中物理科學計算工具的設計與實施研究
      玩具世界(2024年2期)2024-05-07 08:15:34
      超級計算機
      《計算機程序設計》課程中科學計算思維能力的培養(yǎng)
      湖北農機化(2020年4期)2020-07-24 09:07:28
      超級計算機及其在航空航天領域中的應用
      科技傳播(2019年22期)2020-01-14 03:06:36
      美國制造出全球最快超級計算機
      每秒100億億次 中國超級計算機
      淺談linux多線程協(xié)作
      大學物理教學中培養(yǎng)科學計算能力的研究
      物理與工程(2013年3期)2013-03-11 16:04:49
      Linux線程實現(xiàn)技術研究
      么移動中間件線程池并發(fā)機制優(yōu)化改進
      大丰市| 金塔县| 石台县| 麟游县| 桑日县| 定襄县| 东丽区| 东海县| 河池市| 寻乌县| 平南县| 宜君县| 玉门市| 蒲江县| 富宁县| 万源市| 渭南市| 大理市| 阜康市| 彭阳县| 和静县| 甘洛县| 永顺县| 万全县| 合作市| 临沧市| 改则县| 洞口县| 庆安县| 班玛县| 博白县| 辛集市| 清涧县| 沽源县| 垫江县| 肇州县| 皮山县| 阿荣旗| 长沙市| 图片| 阳东县|