摘要:在高性能計(jì)算環(huán)境中,MPI應(yīng)用多個(gè)計(jì)算節(jié)點(diǎn)同時(shí)訪問底層存儲(chǔ)系統(tǒng)文件時(shí),其I/O開銷受到訪問模式和外存設(shè)備性能的影響。針對(duì)MPI應(yīng)用訪問文件的特征,利用非易失內(nèi)存高帶寬、低時(shí)延、可字節(jié)尋址、數(shù)據(jù)可持久化等優(yōu)勢(shì),提出面向非易失內(nèi)存的MPI-IO接口優(yōu)化方案;對(duì)文件數(shù)據(jù)建立分布式的緩存并維護(hù)持久性的元數(shù)據(jù)、對(duì)進(jìn)程間數(shù)據(jù)傳輸策略進(jìn)行優(yōu)化,使應(yīng)用可以有效管理、利用非易失內(nèi)存設(shè)備,保持緩存數(shù)據(jù)一致有效。
為了實(shí)現(xiàn) 對(duì)非易失內(nèi)存的管理與利用、對(duì)文件數(shù)據(jù)緩存的管理與訪問,本文設(shè)計(jì)并實(shí)現(xiàn)了面向非易失內(nèi)存的MPI-IO接口優(yōu)化(NVMPI-IO)。本文的工作主要包括:
● 修改MPI-IO接口,截取應(yīng)用對(duì)底層共享文件系統(tǒng)的訪問,并將其轉(zhuǎn)化為對(duì)計(jì)算節(jié)點(diǎn)內(nèi)或計(jì)算節(jié)點(diǎn)之間的非易失緩存的訪問;
● 在非易失內(nèi)存中建立并維護(hù)緩存數(shù)據(jù),使計(jì)算節(jié)點(diǎn)之間的緩存一致且有效,使應(yīng)用失效重啟后可以快速地從非易失內(nèi)存中恢復(fù)有效數(shù)據(jù);
● 通過多種優(yōu)化,降低維護(hù)、訪問緩存的開銷;
● 最后給出一個(gè)原型系統(tǒng),并對(duì)其進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)表明,此系統(tǒng)可以有效地管理、應(yīng)用非易失內(nèi)存,并使MPI應(yīng)用獲得性能提升。
使用NVMPI-IO,MPI應(yīng)用無須進(jìn)行修改,即可通過MPI-IO中間件將非易失內(nèi)存作為數(shù)據(jù)緩存,實(shí)現(xiàn)對(duì)文件緩存的分布式訪問,從而減少I/O開銷,并減輕共享文件系統(tǒng)的負(fù)載;同時(shí),在非易失內(nèi)存中維護(hù)元數(shù)據(jù),使程序在崩潰重啟后可以快速恢復(fù)數(shù)據(jù),并繼續(xù)運(yùn)行。
MPI應(yīng)用的文件訪問模式
MPI是基于消息傳遞的并行編程模型,可使多個(gè)節(jié)點(diǎn)中的多個(gè)進(jìn)程合作完成同一個(gè)計(jì)算任務(wù),達(dá)到并行加速的目的。
MPI被廣泛地應(yīng)用在科學(xué)研究與工程仿真中,常見的MPI實(shí)現(xiàn)包括Intel MPI、OpenMPI、MPICH等。使用MPI的應(yīng)用在訪問文件時(shí)顯示出以下訪問特征。
● 多個(gè)進(jìn)程同時(shí)訪問同一文件的不同部分。研究物理模型或工程結(jié)構(gòu)的MPI應(yīng)用在進(jìn)行計(jì)算前,首先需要準(zhǔn)備模型文件,多個(gè)進(jìn)程將同時(shí)利用模型文件上的數(shù)據(jù)進(jìn)行計(jì)算,如每個(gè)進(jìn)程讀取多維矩陣的不同部分;進(jìn)程間按需通信,并將計(jì)算結(jié)果寫回文件的相應(yīng)位置。
● MPI-IO使用聚合I/O與數(shù)據(jù)篩選技術(shù),將多個(gè)進(jìn)程需要的大量小粒度數(shù)據(jù)聚合成少量的大粒度數(shù)據(jù),避免了小粒度的文件數(shù)據(jù)訪問。
● MPI標(biāo)準(zhǔn)不對(duì)文件數(shù)據(jù)進(jìn)行緩存。MPI應(yīng)用在訪問文件時(shí)可能對(duì)同一文件進(jìn)行多次讀寫,且每次讀寫的位置可能不一致;同時(shí),多個(gè)進(jìn)程對(duì)文件的并行訪問容易使節(jié)點(diǎn)內(nèi)緩存失效;內(nèi)存的空間有限,而工程模型的數(shù)據(jù)量可根據(jù)工程的精度呈指數(shù)型增大,將大量的文件數(shù)據(jù)緩存到內(nèi)存可能影響計(jì)算效率;在允許直接輸入輸出(direct I/O)的文件系統(tǒng)(如XFS、Lustre)中,MPI建議使用直接輸入輸出,以避免操作系統(tǒng)的緩存。
● MPI應(yīng)用應(yīng)周期性地寫出檢查點(diǎn)(checkpoint)文件。大型工程仿真項(xiàng)目可能需要多個(gè)節(jié)點(diǎn)同時(shí)長(zhǎng)時(shí)間運(yùn)行,若其中某個(gè)節(jié)點(diǎn)出現(xiàn)故障導(dǎo)致作業(yè)失敗,仿真項(xiàng)目需要重新進(jìn)行;為了避免過多的重復(fù)工作,MPI應(yīng)用應(yīng)周期性地輸出檢查點(diǎn)文件,若作業(yè)失敗,則從最近的有效檢查點(diǎn)開始繼續(xù)計(jì)算。同時(shí),檢查點(diǎn)文件可用于仿真的可視化輸出。寫檢查點(diǎn)文件時(shí),進(jìn)程需要暫停計(jì)算任務(wù),或?qū)⑽募?shù)據(jù)復(fù)制一份,以避免數(shù)據(jù)不一致。
● MPI應(yīng)用多進(jìn)程對(duì)文件進(jìn)行訪問有顯著的同步特性。數(shù)據(jù)庫、文件系統(tǒng)等會(huì)在任何時(shí)間點(diǎn)接收來自多個(gè)客戶端的數(shù)據(jù)請(qǐng)求,若有分布式的緩存,則需要隨時(shí)保證數(shù)據(jù)的一致性;MPI應(yīng)用的多個(gè)進(jìn)程在訪問同一文件時(shí),多個(gè)進(jìn)程同時(shí)訪問數(shù)據(jù),當(dāng)這一階段完成后,進(jìn)程之間需同步進(jìn)度后再進(jìn)行下一階段的訪問。MPI應(yīng)用多進(jìn)程的同步避免了寫后讀等數(shù)據(jù)不一致的問題,可用于簡(jiǎn)化緩存的設(shè)計(jì)。
基于上 述的MPI應(yīng)用的 數(shù) 據(jù) 訪問特征,在計(jì)算節(jié)點(diǎn)上部署非易失緩存有利于MPI應(yīng)用的性能提升。利用非易失內(nèi)存容量大、帶寬高、可按字節(jié)尋址等特點(diǎn),在非易失內(nèi)存上部署緩存層不占用高效的DRAM空間,并將緩慢的文件訪問轉(zhuǎn)變?yōu)楦咚俚姆且资?nèi)存訪問,可提高M(jìn)PI應(yīng)用的性能,同時(shí)可減少底層文件系統(tǒng)的負(fù)載。
面向非易失內(nèi)存的MPI-IO接口優(yōu)化被應(yīng)用在HPC系統(tǒng)中,其修改MPI-IO模塊接口以管理非易失內(nèi)存的空間及訪問形式。NVMPI-IO在MPI運(yùn)行時(shí)初始化,并向操作系統(tǒng)申請(qǐng)NVM空間,當(dāng)作業(yè)結(jié)束后釋放NVM資源,使NVM資源可供其他應(yīng)用使用。NVMPI-IO采用簡(jiǎn)單而有效的方法獲得了以下優(yōu)點(diǎn)。
● NVM設(shè)備的非獨(dú)占使用:NVMPI-IO在運(yùn)行時(shí),只按需占用NVM的部分空間,其他應(yīng)用仍可以使用該設(shè)備進(jìn)行其他作業(yè)。作業(yè) 結(jié) 束后,NVMPI-IO立即釋放NVM資源,使其可以被更高效地利用。
● 數(shù)據(jù)一致性:NVMPI-IO隨MPI程序的運(yùn)行而運(yùn)行,每個(gè)MPI進(jìn)程維護(hù)文件的部分緩存數(shù)據(jù)及相應(yīng)的元數(shù)據(jù);通過維護(hù)元數(shù)據(jù)保證緩存數(shù)據(jù)的一致性。
● 后臺(tái)寫回:MPI應(yīng)用周期性地寫出checkpoint文件,引起大量的數(shù)據(jù)寫回。NVMPI-IO允許數(shù)據(jù)的后臺(tái)寫回,可在寫回過程同時(shí)進(jìn)行計(jì)算任務(wù)。
● MPI應(yīng)用的快速重啟:若MPI應(yīng)用中某個(gè)進(jìn)程失效引起整個(gè)程序的崩潰,在NVM設(shè)備上仍然存在有效的數(shù)據(jù);使用NVMPI-IO,MPI應(yīng)用重啟后,可以在NVM中快速恢復(fù)數(shù)據(jù),實(shí)現(xiàn)快速的重啟。
● 高可移植性:MPI可以在不同計(jì)算機(jī)架構(gòu)、操作系統(tǒng)上正常工作;NVMPI-IO繼承了MPI的高可移植性。同時(shí),NVMPI-IO不修改提供給上層應(yīng)用的應(yīng)用程序接口(application programming interface,API),現(xiàn)有的MPI應(yīng)用不需要做任何修改即可在此系統(tǒng)上運(yùn)行。
NVMPI-IO部署在HPC系統(tǒng)中,需對(duì)HPC系統(tǒng)的軟硬件做相應(yīng)的調(diào)整。
NVMPI-IO在傳統(tǒng)HPC集群組織中引入NVM設(shè)備。在傳統(tǒng)HPC集群中,計(jì)算節(jié)點(diǎn)通過網(wǎng)絡(luò)與共享的存儲(chǔ)系統(tǒng)相連,計(jì)算節(jié)點(diǎn)從存儲(chǔ)系統(tǒng)中獲得數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行加工處理;同時(shí),計(jì)算節(jié)點(diǎn)之間通 過TCP/IP網(wǎng)絡(luò)或RDMA技術(shù)進(jìn)行通信。如圖所示,NVMPI-IO在每個(gè)計(jì)算節(jié)點(diǎn)中部署NVM設(shè)備,同時(shí)保持共享存儲(chǔ)系統(tǒng)的設(shè)計(jì)不變;節(jié)點(diǎn)間通信沿用傳統(tǒng)HPC系統(tǒng)中的網(wǎng)絡(luò)傳輸,若配備了RDMA網(wǎng)絡(luò),則可以使用RDMA直接訪問其他節(jié)點(diǎn)的非易失內(nèi)存。
NVMPI-IO為MPI應(yīng)用服務(wù),同時(shí)也利用了MPI定義的通信過程。一個(gè)典型的HPC應(yīng)用包含多個(gè)MPI進(jìn)程,其中每個(gè)進(jìn)程使用MPI定義的接口與其他進(jìn)程進(jìn)行消息傳遞,使用MPI-IO模塊對(duì)底層存儲(chǔ)系統(tǒng)進(jìn)行數(shù)據(jù)訪問。本系統(tǒng)保留MPI-IO的聚合I/O與數(shù)據(jù)篩選優(yōu)化,這些優(yōu)化將上層應(yīng)用需要的小粒度I/O整合成大粒度的I/O,避免了數(shù)據(jù)的小粒度隨機(jī)訪問。如圖所 示,本系統(tǒng)部署在MPI-IO中間件中,截取MPI-IO對(duì)文件的系統(tǒng)調(diào)用,并 按 需 轉(zhuǎn)發(fā)為非易失內(nèi)存的數(shù)據(jù)維護(hù)、訪問。
NVMPI-IO在部署時(shí),首先需要在NVM設(shè)備上掛載可以直接訪問(direct access,DAX)的文件系統(tǒng)。在NVM設(shè)備上掛載DAX文件系統(tǒng)可使應(yīng)用直接通過指針 訪問NVM上的數(shù)據(jù)。具體地,進(jìn)程使用內(nèi)存映射(memory map)技術(shù)將文件系統(tǒng)中的文件映射到應(yīng)用的進(jìn)程空間中,進(jìn)程可以通 過 指針直接 修改NVM,而不是修改操作系統(tǒng)的內(nèi)核緩存(kernel cache)。
此外,NVMPI-IO使用MPI定義的消息傳遞API與其他節(jié)點(diǎn)進(jìn)行通信,使用POSIX API與底層文件系統(tǒng)進(jìn)行數(shù)據(jù)的維護(hù)和訪問。
-
接口
+關(guān)注
關(guān)注
33文章
9005瀏覽量
153759 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3125瀏覽量
75270 -
數(shù)據(jù)緩存
+關(guān)注
關(guān)注
0文章
24瀏覽量
7338
原文標(biāo)題:面向非易失內(nèi)存的MPI-IO接口優(yōu)化
文章出處:【微信號(hào):AI_Architect,微信公眾號(hào):智能計(jì)算芯世界】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
TPL1401數(shù)字電位器易失性和非易失性的區(qū)別是什么?
Cypress非易失性SRAM技術(shù)
非易失性內(nèi)存有寫入限制嗎?
采用55納米非易失性內(nèi)存的Qorivva MCU
DS1250 4096k、非易失SRAM

DS1243Y 64K非易失SRAM

自旋晶體管:使晶體管實(shí)現(xiàn)非易失化

一文知道新興非易失性存儲(chǔ)(NVM)市場(chǎng)及技術(shù)趨勢(shì)

新型非易失存儲(chǔ)MVM數(shù)據(jù)管理

非易失可重復(fù)編程FPGA解決方案的應(yīng)用
NVDIMM-P非易失內(nèi)存標(biāo)準(zhǔn)公布:斷電不丟數(shù)據(jù)、兼容DDR4
NVDIMM-P非易失內(nèi)存標(biāo)準(zhǔn)正式公布

面向非易失性內(nèi)存文件的NVM模擬與驗(yàn)證
簡(jiǎn)單的非易失性門控

評(píng)論