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

        ?

        面向非易失內(nèi)存的MPI-IO接口優(yōu)化

        2021-03-22 10:56:10鄧鎮(zhèn)龍陳志廣
        大數(shù)據(jù) 2021年2期
        關(guān)鍵詞:請求者進程內(nèi)存

        鄧鎮(zhèn)龍,陳志廣

        中山大學計算機學院,廣東 廣州 510006

        1 引言

        內(nèi)存和外存的合理使用是大數(shù)據(jù)環(huán)境下計算機系統(tǒng)研究的重要內(nèi)容。根據(jù)存儲介質(zhì)的特性設(shè)計計算機的存儲架構(gòu)、軟件,可在經(jīng)濟的前提下得到更好的存儲性能。長期以來,快速的動態(tài)隨機存取存儲器(dynamic random access memory,DRAM)設(shè)備與大容量的外存設(shè)備的組合使用使得計算機可以在較低的成本下實現(xiàn)高速的計算以及大容量的數(shù)據(jù)存儲。但是,隨著計算機處理器的快速迭代,外存設(shè)備的性能成為數(shù)據(jù)密集型應(yīng)用的性能瓶頸,訪問外存的I/O開銷成為計算機應(yīng)用開銷的重要部分。在高性能計算(high performance computing,HPC)系統(tǒng)中,計算節(jié)點配備了高性能的處理器,但在訪問共享文件系統(tǒng)中的文件時,其I/O性能同樣受到底層存儲設(shè)備的限制。如何減小I/O開銷成為HPC系統(tǒng)設(shè)計的一個重要課題。

        作為并行編程模型,消息傳遞接口(message passing interface,MPI)協(xié)議被廣泛應(yīng)用在HPC系統(tǒng)中,在科學研究與工程仿真中,常使用MPI將模型數(shù)據(jù)分布到不同的節(jié)點上進行計算仿真。MPI的I/O模塊使用數(shù)據(jù)篩選(data sieving)以及聚合I/O(collective I/O)等優(yōu)化手段[1-2],將進程需要的大量小粒度I/O經(jīng)過聚合形成少量的大粒度I/O,從而減少文件系統(tǒng)的小粒度隨機訪問,降低應(yīng)用的I/O開銷。但是,應(yīng)用分布式地多次訪問同一文件時,需要多次向文件系統(tǒng)請求數(shù)據(jù),其I/O性能仍然限制了應(yīng)用的整體性能。如果可以在計算節(jié)點中建立并維護文件的緩存,使計算節(jié)點可以從緩存中獲取數(shù)據(jù),則可進一步減小I/O開銷。

        新型存儲介質(zhì)的出現(xiàn)有助于實現(xiàn)這一設(shè)計。非易失內(nèi)存(non-volati le memory,NVM)具有可按字節(jié)尋址、數(shù)據(jù)可持久性、容量大等特點,且其帶寬、時延接近DRAM;Intel Optane DC PMM(persistent memory module)存儲器是以3D Xpoint為介質(zhì)的雙列直插式存儲模塊(dual inline memory module,DIMM)接口非易失存儲設(shè)備。非易失內(nèi)存兼顧傳統(tǒng)內(nèi)存、外存的優(yōu)點,將改變計算機的存儲架構(gòu)設(shè)計,有望被配備在HPC系統(tǒng)中的每一個計算節(jié)點上。使用非易失內(nèi)存部署計算節(jié)點上的緩存,可在較低成本下獲得優(yōu)秀的緩存性能。本文研究如何優(yōu)化MPI-IO接口,使應(yīng)用可以在NVM設(shè)備上建立、維護并使用數(shù)據(jù)緩存,以充分發(fā)揮NVM設(shè)備的優(yōu)秀性能,并降低應(yīng)用的I/O開銷。

        為了實現(xiàn)對非易失內(nèi)存的管理與利用、對文件數(shù)據(jù)緩存的管理與訪問,本文設(shè)計并實現(xiàn)了面向非易失內(nèi)存的MPI-IO接口優(yōu)化(NVMPI-IO)。本文的工作主要包括:

        ● 修改MPI-IO接口,截取應(yīng)用對底層共享文件系統(tǒng)的訪問,并將其轉(zhuǎn)化為對計算節(jié)點內(nèi)或計算節(jié)點之間的非易失緩存的訪問;

        ● 在非易失內(nèi)存中建立并維護緩存數(shù)據(jù),使計算節(jié)點之間的緩存一致且有效,使應(yīng)用失效重啟后可以快速地從非易失內(nèi)存中恢復(fù)有效數(shù)據(jù);

        ● 通過多種優(yōu)化,降低維護、訪問緩存的開銷;

        ● 最后給出一個原型系統(tǒng),并對其進行實驗,實驗表明,此系統(tǒng)可以有效地管理、應(yīng)用非易失內(nèi)存,并使MPI應(yīng)用獲得性能提升。

        使用NVMPI-IO,MPI應(yīng)用無須進行修改,即可通過MPI-IO中間件將非易失內(nèi)存作為數(shù)據(jù)緩存,實現(xiàn)對文件緩存的分布式訪問,從而減少I/O開銷,并減輕共享文件系統(tǒng)的負載;同時,在非易失內(nèi)存中維護元數(shù)據(jù),使程序在崩潰重啟后可以快速恢復(fù)數(shù)據(jù),并繼續(xù)運行。

        2 應(yīng)用現(xiàn)狀

        2.1 MPI應(yīng)用的文件訪問模式

        MPI是基于消息傳遞的并行編程模型,可使多個節(jié)點中的多個進程合作完成同一個計算任務(wù),達到并行加速的目的。MPI被廣泛地應(yīng)用在科學研究與工程仿真中,常見的MPI實現(xiàn)包括Intel MPI、OpenMPI、MPICH等。

        使用MPI的應(yīng)用在訪問文件時顯示出以下訪問特征。

        ● 多個進程同時訪問同一文件的不同部分。研究物理模型或工程結(jié)構(gòu)的MPI應(yīng)用在進行計算前,首先需要準備模型文件,多個進程將同時利用模型文件上的數(shù)據(jù)進行計算,如每個進程讀取多維矩陣的不同部分;進程間按需通信,并將計算結(jié)果寫回文件的相應(yīng)位置。

        ● MPI-IO使用聚合I/O與數(shù)據(jù)篩選技術(shù),將多個進程需要的大量小粒度數(shù)據(jù)聚合成少量的大粒度數(shù)據(jù),避免了小粒度的文件數(shù)據(jù)訪問。

        ● MPI標準不對文件數(shù)據(jù)進行緩存。MPI應(yīng)用在訪問文件時可能對同一文件進行多次讀寫,且每次讀寫的位置可能不一致;同時,多個進程對文件的并行訪問容易使節(jié)點內(nèi)緩存失效;內(nèi)存的空間有限,而工程模型的數(shù)據(jù)量可根據(jù)工程的精度呈指數(shù)型增大,將大量的文件數(shù)據(jù)緩存到內(nèi)存可能影響計算效率;在允許直接輸入輸出(direct I/O)的文件系統(tǒng)(如XFS、Lustre)中,MPI建議使用直接輸入輸出,以避免操作系統(tǒng)的緩存。

        ● MPI應(yīng)用應(yīng)周期性地寫出檢查點(checkpoint)文件[3]。大型工程仿真項目可能需要多個節(jié)點同時長時間運行,若其中某個節(jié)點出現(xiàn)故障導(dǎo)致作業(yè)失敗,仿真項目需要重新進行;為了避免過多的重復(fù)工作,MPI應(yīng)用應(yīng)周期性地輸出檢查點文件,若作業(yè)失敗,則從最近的有效檢查點開始繼續(xù)計算。同時,檢查點文件可用于仿真的可視化輸出。寫檢查點文件時,進程需要暫停計算任務(wù),或?qū)⑽募?shù)據(jù)復(fù)制一份,以避免數(shù)據(jù)不一致。

        ● MPI應(yīng)用多進程對文件進行訪問有顯著的同步特性。數(shù)據(jù)庫、文件系統(tǒng)等會在任何時間點接收來自多個客戶端的數(shù)據(jù)請求,若有分布式的緩存,則需要隨時保證數(shù)據(jù)的一致性;MPI應(yīng)用的多個進程在訪問同一文件時,多個進程同時訪問數(shù)據(jù),當這一階段完成后,進程之間需同步進度后再進行下一階段的訪問。MPI應(yīng)用多進程的同步避免了寫后讀等數(shù)據(jù)不一致的問題,可用于簡化緩存的設(shè)計。

        基于上述的MPI應(yīng)用的數(shù)據(jù)訪問特征,在計算節(jié)點上部署非易失緩存有利于MPI應(yīng)用的性能提升。利用非易失內(nèi)存容量大、帶寬高、可按字節(jié)尋址等特點,在非易失內(nèi)存上部署緩存層不占用高效的DRAM空間,并將緩慢的文件訪問轉(zhuǎn)變?yōu)楦咚俚姆且资?nèi)存訪問,可提高MPI應(yīng)用的性能,同時可減少底層文件系統(tǒng)的負載。

        2.2 NVM設(shè)備的特性與應(yīng)用

        計算機使用容量更大的塊設(shè)備(如固態(tài)硬盤(solid-state disk,SSD)和磁盤(hard disk drive,HDD)等)存儲持久性的數(shù)據(jù);使用速度更快的字節(jié)尋址設(shè)備(如DRAM內(nèi)存等)存儲程序運行產(chǎn)生的數(shù)據(jù),包括進程數(shù)據(jù)、堆棧空間等。DRAM與SSD/HDD的結(jié)合使得計算機可以在較低的成本下實現(xiàn)快速運行。非易失內(nèi)存的性能介于兩者之間,并同時具備兩者性能的優(yōu)點。在多線程訪問下,Intel Optane DC PMM的順序讀寫帶寬最高可達約35 GB/s,約為DRAM的1/3;同時其隨機讀取的時延約為305 ns,僅為DRAM的3倍[4-5]。

        非易失內(nèi)存具備良好的綜合性能,以及可持久性的特性,使多種應(yīng)用得以重新被設(shè)計。Volos H等人[6]為了在非易失內(nèi)存設(shè)備上創(chuàng)建和管理內(nèi)存空間、保證數(shù)據(jù)的一致性,設(shè)計了輕量級的非易失內(nèi)存編程模型Mnemosyne。Coburn J等人[7]設(shè)計并實現(xiàn)了非易失內(nèi)存上的對象模型NV-Heaps?;诜且资?nèi)存可按字節(jié)尋址、容量大、數(shù)據(jù)可持久化的特點,文件系統(tǒng)[8-10]可被部署在非易失內(nèi)存之上。Xu J等人[11]設(shè)計了DRAM與非易失內(nèi)存混合的日志結(jié)構(gòu)文件系統(tǒng)NOVA。NOVAFortis[12]在NOVA文件系統(tǒng)的基礎(chǔ)上加入了容錯措施,如快照、副本、檢驗和、RAID-4奇偶校驗等。Path Hashing[13]、Level Hashing[14]索引結(jié)構(gòu)在邏輯上采用樹形結(jié)構(gòu),物理上哈希表為一個數(shù)組;通過優(yōu)化哈希沖突時的插入策略以及插入失敗后的重哈希策略,達到減少隨機寫的目的。在分布式場景中,Octopus[15]是基于遠程直接數(shù)據(jù)存?。╮emote direct memory access,RDMA)的分布式NVM文件系統(tǒng),此文件系統(tǒng)中包括客戶端與數(shù)據(jù)服務(wù)器;其中所有文件的元數(shù)據(jù)分布在不同的數(shù)據(jù)服務(wù)器上,同一文件的元數(shù)據(jù)及其數(shù)據(jù)塊分布在同一數(shù)據(jù)服務(wù)器中。與Octopus不同,Orion文件系統(tǒng)[16]部署了元數(shù)據(jù)服務(wù)器、客戶端與數(shù)據(jù)存儲。此外,NVMD[17]利用NVM的密度高、空間大、性能高等特點,結(jié)合RDMA技術(shù),重構(gòu)了MapReduce框架,可加速基于有向無環(huán)圖(directed acyclic graph,DAG)的MR作業(yè)的執(zhí)行。

        但是,以上非易失文件系統(tǒng)、哈希索引等都將長期占用非易失內(nèi)存設(shè)備,若其中低熱度的數(shù)據(jù)長期實體化在非易失內(nèi)存上,則非易失內(nèi)存設(shè)備的優(yōu)秀性能不能得到充分的利用。

        3 系統(tǒng)設(shè)計

        3.1 設(shè)計目的

        面向非易失內(nèi)存的MPI-IO接口優(yōu)化被應(yīng)用在HPC系統(tǒng)中,其修改MPI-IO模塊接口以管理非易失內(nèi)存的空間及訪問形式。NVMPI-IO在MPI運行時初始化,并向操作系統(tǒng)申請NVM空間,當作業(yè)結(jié)束后釋放NVM資源,使NVM資源可供其他應(yīng)用使用。NVMPI-IO采用簡單而有效的方法獲得了以下優(yōu)點。

        ● NVM設(shè)備的非獨占使用:NVMPI-IO在運行時,只按需占用NVM的部分空間,其他應(yīng)用仍可以使用該設(shè)備進行其他作業(yè)。作業(yè)結(jié)束后,NVMPI-IO立即釋放NVM資源,使其可以被更高效地利用。

        ● 數(shù)據(jù)一致性:NVMPI-IO隨MPI程序的運行而運行,每個MPI進程維護文件的部分緩存數(shù)據(jù)及相應(yīng)的元數(shù)據(jù);通過維護元數(shù)據(jù)保證緩存數(shù)據(jù)的一致性。

        ● 后臺寫回:MPI應(yīng)用周期性地寫出checkpoint文件,引起大量的數(shù)據(jù)寫回。NVMPI-IO允許數(shù)據(jù)的后臺寫回,可在寫回過程同時進行計算任務(wù)。

        ● MPI應(yīng)用的快速重啟:若MPI應(yīng)用中某個進程失效引起整個程序的崩潰,在NVM設(shè)備上仍然存在有效的數(shù)據(jù);使用NVMPI-IO,MPI應(yīng)用重啟后,可以在NVM中快速恢復(fù)數(shù)據(jù),實現(xiàn)快速的重啟。

        ● 高可移植性:MPI可以在不同計算機架構(gòu)、操作系統(tǒng)上正常工作;NVMPI-IO繼承了MPI的高可移植性。同時,NVMPI-IO不修改提供給上層應(yīng)用的應(yīng)用程序接口(application programming interface,API),現(xiàn)有的MPI應(yīng)用不需要做任何修改即可在此系統(tǒng)上運行。

        NVMPI-IO部署在HPC系統(tǒng)中,需對HPC系統(tǒng)的軟硬件做相應(yīng)的調(diào)整。

        3.2 軟硬件組織

        NVMPI-IO在傳統(tǒng)HPC集群組織中引入NVM設(shè)備。在傳統(tǒng)HPC集群中,計算節(jié)點通過網(wǎng)絡(luò)與共享的存儲系統(tǒng)相連,計算節(jié)點從存儲系統(tǒng)中獲得數(shù)據(jù),并對數(shù)據(jù)進行加工處理;同時,計算節(jié)點之間通過TCP/IP網(wǎng)絡(luò)或RDMA技術(shù)進行通信。如圖1(a)所示,NVMPI-IO在每個計算節(jié)點中部署NVM設(shè)備,同時保持共享存儲系統(tǒng)的設(shè)計不變;節(jié)點間通信沿用傳統(tǒng)HPC系統(tǒng)中的網(wǎng)絡(luò)傳輸,若配備了RDMA網(wǎng)絡(luò),則可以使用RDMA直接訪問其他節(jié)點的非易失內(nèi)存。

        NVMPI-IO為MPI應(yīng)用服務(wù),同時也利用了MPI定義的通信過程。一個典型的HPC應(yīng)用包含多個MPI進程,其中每個進程使用MPI定義的接口與其他進程進行消息傳遞,使用MPI-IO模塊對底層存儲系統(tǒng)進行數(shù)據(jù)訪問。本系統(tǒng)保留MPI-IO的聚合I/O與數(shù)據(jù)篩選優(yōu)化,這些優(yōu)化將上層應(yīng)用需要的小粒度I/O整合成大粒度的I/O,避免了數(shù)據(jù)的小粒度隨機訪問。如圖1(b)所示,本系統(tǒng)部署在MPI-IO中間件中,截取MPI-IO對文件的系統(tǒng)調(diào)用,并按需轉(zhuǎn)發(fā)為非易失內(nèi)存的數(shù)據(jù)維護、訪問。NVMPI-IO在部署時,首先需要在NVM設(shè)備上掛載可以直接訪問(direct access,DAX)的文件系統(tǒng)。在NVM設(shè)備上掛載DAX文件系統(tǒng)可使應(yīng)用直接通過指針訪問NVM上的數(shù)據(jù)。具體地,進程使用內(nèi)存映射(memory map)技術(shù)將文件系統(tǒng)中的文件映射到應(yīng)用的進程空間中,進程可以通過指針直接修改NVM,而不是修改操作系統(tǒng)的內(nèi)核緩存(kernel cache)。此外,NVMPI-IO使用MPI定義的消息傳遞API與其他節(jié)點進行通信,使用POSIX API與底層文件系統(tǒng)進行數(shù)據(jù)的維護和訪問。

        圖1 NVMPI-IO 的集群組織和軟件架構(gòu)

        4 設(shè)計與實現(xiàn)

        為了優(yōu)化MPI-IO對文件的訪問,并管理和利用NVM設(shè)備,本系統(tǒng)將文件數(shù)據(jù)緩存到NVM設(shè)備上,并允許進程通過內(nèi)存映射的指針對NVM上的數(shù)據(jù)進行直接訪問。NVMPI-IO將管理NVM上的文件數(shù)據(jù)及其元數(shù)據(jù),并通過維護元數(shù)據(jù)來保證數(shù)據(jù)的正確訪問。

        4.1 數(shù)據(jù)布局

        如圖2所示,NVMPI-IO將NVM設(shè)備的空間在邏輯上分為兩部分:數(shù)據(jù)塊池和對象池。數(shù)據(jù)塊池被劃分為大小相同的塊,用于緩存文件數(shù)據(jù),如一個模型文件中多維矩陣的一部分;對象池用于存儲大小各異的各種數(shù)據(jù)結(jié)構(gòu),用戶可以申請空間存放持久性的數(shù)據(jù),包括用于管理數(shù)據(jù)塊池及緩存文件的數(shù)據(jù)等。

        本系統(tǒng)中,每個進程維護一個數(shù)據(jù)塊池及對象池。其中,各個進程的數(shù)據(jù)塊池在邏輯上是一個整體,在配備了RDMA網(wǎng)絡(luò)的環(huán)境中,進程可以通過進程編號、數(shù)據(jù)塊編號直接訪問其他進程的數(shù)據(jù)塊池。

        在初始化時,每個進程首先向操作系統(tǒng)申請NVM的空間,用于創(chuàng)建數(shù)據(jù)塊池與對象池。在對象池中,進程在該空間的起始地址創(chuàng)建并維護一個根對象,使對象池中的其他數(shù)據(jù)均可經(jīng)過根對象直接或間接可達。根對象包含用于描述數(shù)據(jù)塊池的位圖和空閑隊列、本進程已緩存文件的列表,其中緩存文件的列表可以索引各個文件及其緩存的元數(shù)據(jù)。元數(shù)據(jù)描述了數(shù)據(jù)緩存的位置及其狀態(tài)。

        應(yīng)用使用NVMPI-IO打開一個文件時,相關(guān)的進程首先構(gòu)建緩存的元數(shù)據(jù):根據(jù)文件的大小,文件在邏輯上被劃分為固定大小的塊,各個進程互斥地成為這些數(shù)據(jù)塊的管理者,即數(shù)據(jù)緩存的元數(shù)據(jù)將分布到不同的進程中。管理者將維護相應(yīng)數(shù)據(jù)塊的元數(shù)據(jù)。當文件中某個數(shù)據(jù)塊被訪問時,其數(shù)據(jù)將會被遷移到數(shù)據(jù)塊池中。使用分布式的元數(shù)據(jù)及緩存數(shù)據(jù)避免了多進程間出現(xiàn)負載不均的情況。

        4.2 數(shù)據(jù)維護與訪問

        NVMPI-IO將文件數(shù)據(jù)緩存到不同進程、不同節(jié)點的NVM空間中,為了使進程可以準確地訪問所需的數(shù)據(jù),本系統(tǒng)務(wù)必正確地管理、維護元數(shù)據(jù)信息。針對文件中的每一個塊,稱維護該數(shù)據(jù)塊元數(shù)據(jù)的進程為管理者,稱緩存該塊數(shù)據(jù)的進程為所有者,稱需要訪問該塊數(shù)據(jù)的進程為請求者。其中,管理者由該塊在文件中的位置確定;對于一個數(shù)據(jù)塊,一個進程可以同時承擔上述多種角色。

        圖2 NVMPI-IO 非易失內(nèi)存中的數(shù)據(jù)布局

        如圖3所示,當請求者需要訪問某塊數(shù)據(jù)時,其需要先查詢元數(shù)據(jù),再進行文件數(shù)據(jù)的傳輸。在向管理者發(fā)送元數(shù)據(jù)查詢請求之前,請求者使用預(yù)更新(pre update)方案,首先準備空閑的數(shù)據(jù)塊,將其編號組裝到查詢信息當中,一并發(fā)送至管理者。當收到管理者返回的信息后,請求者獲得數(shù)據(jù)緩存的狀態(tài),向數(shù)據(jù)所有者發(fā)送信息,并按需交換數(shù)據(jù),完成應(yīng)用的需求。

        管理者負責管理、維護數(shù)據(jù)塊的元數(shù)據(jù)。NVMPI-IO將文件在邏輯上進行分塊,通過輪詢調(diào)度(round-robin)策略將數(shù)據(jù)塊的管理權(quán)分配到各個進程,以緩解負載不均帶來的影響;請求者可通過取模運算獲得數(shù)據(jù)塊的管理者編號。管理者在查詢元數(shù)據(jù)的同時,需要維護元數(shù)據(jù),使其始終有效。MPI語義規(guī)定,應(yīng)用訪問文件數(shù)據(jù)時上一次文件訪問已經(jīng)完成,這使得對元數(shù)據(jù)的維護可以延遲到下一階段文件訪問之前完成。管理者在接收到元數(shù)據(jù)查詢請求后,首先使用延遲提交(late commit)方案,提交上一次文件訪問引起的元數(shù)據(jù)變化,并將新的元數(shù)據(jù)記錄下來,待下一階段再實體化到NVM中;若不使用延遲提交而在元數(shù)據(jù)變化后馬上更新,則會額外增加一次數(shù)據(jù)交換,帶來更大的網(wǎng)絡(luò)開銷。管理者完成延遲提交之后,查詢元數(shù)據(jù),找到數(shù)據(jù)的緩存狀態(tài),將其緩存位置及狀態(tài)返回至請求者。若數(shù)據(jù)塊尚未被緩存,管理者任命某個請求者為該塊數(shù)據(jù)的所有者,并將緩存狀態(tài)發(fā)送至該數(shù)據(jù)塊的其他請求者;使用預(yù)更新方案時,允許在多個請求者同時請求一個未被緩存的數(shù)據(jù)塊時,不額外引入“任命數(shù)據(jù)塊的所有者”帶來的網(wǎng)絡(luò)開銷。

        所有者負責數(shù)據(jù)的存取。其收到請求者發(fā)送的數(shù)據(jù)請求時,該數(shù)據(jù)塊未必已經(jīng)被緩存在非易失緩存中。若數(shù)據(jù)塊未被緩存,所有者需首先使用POSIX API從文件系統(tǒng)中讀取數(shù)據(jù),并將其緩存到預(yù)更新時指定的數(shù)據(jù)塊中。所有者利用數(shù)據(jù)在緩存中的地址(指針),直接與請求者進行數(shù)據(jù)交換。同時,所有者需要維護一個文件數(shù)據(jù)塊到緩存地址的索引,這樣既可快速找到數(shù)據(jù)塊的地址,又可在應(yīng)用需要關(guān)閉文件時,使用POSIX API將有效的緩存寫回到共享文件系統(tǒng)中。

        NVMPI-IO使用預(yù)更新與延遲提交兩種優(yōu)化手段,在維持MPI-IO操作的語義不變的同時,盡可能地減少節(jié)點之間的數(shù)據(jù)傳輸,并有效地維護文件緩存的元數(shù)據(jù)。此外,相比使用塊粒度寫數(shù)據(jù),使用數(shù)據(jù)地址直接傳輸數(shù)據(jù)可以有效地減小寫放大,同時避免非必要的數(shù)據(jù)組裝及傳輸。

        使用分布式的非易失內(nèi)存時務(wù)必維護數(shù)據(jù)的分布式一致性[18]。NVMPI-IO在節(jié)點內(nèi)部使用持久性的可撤銷日志(undolog)來維護數(shù)據(jù)一致性,當進程出錯重啟后,進程從持久性日志中恢復(fù)原始數(shù)據(jù)。在節(jié)點之間,進程在延遲提交過程更新本地的元數(shù)據(jù)時進行通信;若存在更新元數(shù)據(jù)失敗的進程,則撤銷相關(guān)進程的更新操作,以維護數(shù)據(jù)的分布式一致性。

        圖3 進程訪問文件數(shù)據(jù)塊的架構(gòu)

        4.3 數(shù)據(jù)傳輸路徑

        在傳統(tǒng)MPI應(yīng)用的設(shè)計中,若應(yīng)用需要多次訪問同一個文件,則其向文件系統(tǒng)發(fā)出多次數(shù)據(jù)訪問的請求,數(shù)據(jù)在底層的共享文件系統(tǒng)與計算節(jié)點之間反復(fù)遷移,引起計算節(jié)點的大量I/O開銷以及底層文件系統(tǒng)的大量負載。NVMPI-IO將數(shù)據(jù)緩存至計算節(jié)點內(nèi)的NVM設(shè)備中,將對底層文件系統(tǒng)的訪問轉(zhuǎn)化為對本地或其他節(jié)點上NVM的訪問,即將中心化傳輸與慢速的磁盤訪問轉(zhuǎn)化為分布式的網(wǎng)絡(luò)傳輸與低時延高帶寬的NVM訪問。本系統(tǒng)僅在首次讀取數(shù)據(jù)以及關(guān)閉文件寫回數(shù)據(jù)時對文件系統(tǒng)進行訪問,即對于同一文件,最多發(fā)生兩次文件系統(tǒng)讀寫,采用這一策略縮短了計算節(jié)點訪問數(shù)據(jù)的時間,并減小了底層文件系統(tǒng)的I/O負載。

        5 效果評估

        5.1 實驗環(huán)境

        為了驗證本系統(tǒng)設(shè)計的有效性,搭建了實驗平臺用于對比實驗。實驗平臺包含4個計算節(jié)點及一個共享的存儲系統(tǒng),其中每個計算節(jié)點配備Intel Xeon Gold 6230N處理器、6×32 GB DRAM、2×128 GB Intel Optane DC PMM,所有節(jié)點運行CentOS7.6系統(tǒng)(Linux內(nèi)核版本3.10.0-957),共享的存儲系統(tǒng)將HDD作為存儲設(shè)備,掛載了Lustre-2.10文件系統(tǒng)。NVMPI-IO的原型系統(tǒng)在MPICH(v3.2.1)中實現(xiàn),同時實驗對照組運行MPICH(v3.2.1)。

        5.2 實驗設(shè)計

        本文采用對比實驗驗證本方案的有效性。為了模擬MPI應(yīng)用的文件訪問模式,并最大化MPI-IO的I/O優(yōu)化效果,實驗組與對照組均需滿足以下條件。

        ● 打開DIRECT I/O開關(guān),即允許進程使用direct I/O直接從文件系統(tǒng)中讀取數(shù)據(jù),而不將數(shù)據(jù)緩存到操作系統(tǒng)的緩沖區(qū)中。

        ● 避免粒度較小的文件訪問。MPI-IO使用聚合I/O與數(shù)據(jù)篩選的優(yōu)化手段,將進程需要的小粒度數(shù)據(jù)經(jīng)過節(jié)點之間的消息傳遞,組合成大粒度的數(shù)據(jù),再向文件系統(tǒng)發(fā)起I/O請求,避免了小粒度的隨機訪問;實驗中使用16 KB的粒度順序地讀寫文件,以模擬這一訪問模式。

        ● 對同一文件進行多次讀寫,比較訪問非易失緩存和訪問底層文件系統(tǒng)的性能。

        本實驗使用不同數(shù)量的MPI進程對同一文件進行多次順序讀寫,比較MPICH與NVMPI-IO的性能差異。根據(jù)MPI應(yīng)用的特點,本實驗只研究系統(tǒng)訪問文件數(shù)據(jù)的帶寬。

        5.3 實驗效果

        如圖4所示,MPI應(yīng)用訪問文件時,若使用16 KB的粒度對文件重復(fù)讀取,負載較輕,不會達到存儲設(shè)備的性能瓶頸。隨著進程數(shù)量增加,存儲設(shè)備的性能得到體現(xiàn),NVMPI-IO的吞吐率超過1 300 MB/s,是相同進程數(shù)量下MPICH訪問文件的吞吐率的2.87倍。

        圖4 不同進程數(shù)下應(yīng)用讀取數(shù)據(jù)的吞吐率

        圖5 不同數(shù)量的節(jié)點、進程下,應(yīng)用寫入數(shù)據(jù)的吞吐率

        如圖5所示,對文件進行重復(fù)寫入時,M P I C H 寫入文件系統(tǒng)的性能較低,而NVMPI-IO的吞吐率保持在較高狀態(tài)。在MPICH中,所有進程在同一節(jié)點與進程分布在4個節(jié)點時吞吐率相近,是因為在本實驗的訪問模式下,進程直接訪問文件系統(tǒng),而進程之間未發(fā)生文件數(shù)據(jù)的收發(fā),沒有引入開銷;隨著進程數(shù)量增加,訪問文件的吞吐率提升,這說明當前并行度下未達到Lustre文件系統(tǒng)的性能瓶頸。在NVMPI-IO下,吞吐率保持在較高水平,是相同條件下不使用緩存的20倍以上;但是,相同數(shù)量的進程運行在4個節(jié)點上時,由于管理、訪問數(shù)據(jù)緩存引入了跨節(jié)點的網(wǎng)絡(luò)開銷,其性能低于進程運行在同一節(jié)點上的情況;同時,由于Intel Optane DC PMM的并行性能不理想,在并行寫入數(shù)據(jù)時性能會出現(xiàn)明顯下降[4-5],當節(jié)點內(nèi)進程數(shù)量從8增加到16后,系統(tǒng)的吞吐率出現(xiàn)下降。未來可使用更多的非易失內(nèi)存DIMM,以提高系統(tǒng)訪問非易失內(nèi)存的并行性。

        實驗結(jié)果顯示,面向非易失內(nèi)存的MPI-IO接口優(yōu)化盡管受到NVM設(shè)備并行性不理想、引入了節(jié)點間的網(wǎng)絡(luò)開銷等問題的影響,仍可使應(yīng)用獲得顯著的性能提升。

        6 結(jié)束語

        本文針對MPI應(yīng)用訪問文件的模式,利用非易失內(nèi)存設(shè)備的可按字節(jié)尋址、數(shù)據(jù)可持久化、讀寫性能優(yōu)秀等特點,設(shè)計了面向非易失內(nèi)存的MPI-IO接口優(yōu)化方案。NVMPIIO被透明地部署在MPI-IO中間件中,具備非獨占使用NVM、高可移植性、可快速恢復(fù)程序運行狀態(tài)等優(yōu)點,為MPI應(yīng)用提供文件的分布式緩存,在應(yīng)用重復(fù)訪問文件數(shù)據(jù)時,為應(yīng)用帶來顯著的性能提升。針對NVMPI-IO現(xiàn)存的不足,未來可著力于解決NVM設(shè)備的并行訪問問題,并嘗試使用RDMA網(wǎng)絡(luò)加速節(jié)點之間的數(shù)據(jù)傳輸,以降低節(jié)點間的網(wǎng)絡(luò)開銷。

        猜你喜歡
        請求者進程內(nèi)存
        基于D2D 多播通信的合作內(nèi)容下載機制
        通信學報(2020年11期)2020-12-10 11:31:20
        群智感知中基于云輔助的隱私信息保護機制
        債券市場對外開放的進程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        “春夏秋冬”的內(nèi)存
        當代陜西(2019年13期)2019-08-20 03:54:22
        漢語自然會話中請求行為的序列結(jié)構(gòu)
        基于差值誘導(dǎo)的Web服務(wù)評價可信度的評估
        電信科學(2016年8期)2016-12-01 07:14:24
        社會進程中的新聞學探尋
        民主與科學(2014年3期)2014-02-28 11:23:03
        基于內(nèi)存的地理信息訪問技術(shù)
        我國高等教育改革進程與反思
        Linux僵死進程的產(chǎn)生與避免
        内射精品无码中文字幕| 99成人无码精品视频| 伊人亚洲综合影院首页 | 青青草手机在线观看视频在线观看| 日本不卡一区二区三区在线视频| 99麻豆久久久国产精品免费| 黑森林福利视频导航| 成年男女免费视频网站| 精品无码久久久九九九AV| 亚洲中文有码一区二区| 中文字幕精品一区久久| 亚洲人精品亚洲人成在线| 在线高清精品第一区二区三区| 亚洲深夜福利| 亚洲精品熟女乱色一区| 一本一道久久综合久久| 色综合久久无码五十路人妻| 福利视频一二三在线观看| 欧美一级在线全免费| 一区二区三区国产视频在线观看| 国产精品一区二区av不卡| 医院人妻闷声隔着帘子被中出| 国产精品无码成人午夜电影| 国内揄拍国内精品| 亚洲成a人网站在线看| av天堂手机在线看片资源| 亚洲中文字幕av天堂自拍| 欧美色欧美亚洲另类二区| 国产成人综合久久精品推| 在线观看黄片在线播放视频| 日韩中文字幕有码午夜美女| 国产涩涩视频在线观看| 中文乱码字幕高清在线观看 | 人妻中文字幕在线中文字幕| 少妇下蹲露大唇无遮挡| 在线无码国产精品亚洲а∨| 中文字幕精品一区二区日本| 中文字幕有码在线人妻| av天堂精品久久综合网| 欧妇女乱妇女乱视频| 又硬又粗又大一区二区三区视频 |