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

        ?

        一個(gè)提高氣象數(shù)值模式計(jì)算性能的并行I/O優(yōu)化技術(shù)

        2019-11-15 06:15:46鄧平張慶花張玉龍
        關(guān)鍵詞:條帶進(jìn)程內(nèi)存

        鄧平 張慶花 張玉龍

        (作者單位:鄧平,深圳市氣象局;張慶花、張玉龍,曙光信息產(chǎn)業(yè)(北京)有限公司)

        闡述了開(kāi)展并行I/O研究對(duì)氣象數(shù)值預(yù)報(bào)的重要意義,以及通過(guò)并行I/O技術(shù)充分發(fā)揮并行存儲(chǔ)性能的必要性和迫切性,提出了并行文件系統(tǒng)底層優(yōu)化策略及基于MPI-IO的高層I/O庫(kù)的優(yōu)化方法,優(yōu)化后可支持氣象要素的并行輸出,試驗(yàn)測(cè)試數(shù)據(jù)表明,優(yōu)化后輸出效率明顯提升。

        氣象數(shù)值模式大規(guī)模并行計(jì)算會(huì)在短時(shí)間內(nèi)產(chǎn)生大量的數(shù)據(jù),并且小文件數(shù)量巨大,對(duì)整個(gè)系統(tǒng)的I/O性能、穩(wěn)定性要求很高,一般要求有分布式存儲(chǔ)系統(tǒng)或者并行文件系統(tǒng),否則容易形成I/O瓶頸,很難獲得理想的模式計(jì)算加速比。隨著氣象數(shù)值模式的時(shí)空分辨率不斷提升,要求更大的數(shù)據(jù)存儲(chǔ)容量及更高的并發(fā)I/O存儲(chǔ)帶寬,I/O性能成為模式運(yùn)行效率的主要瓶頸之一。本文以深圳市氣象局逐時(shí)雷達(dá)同化預(yù)報(bào)系統(tǒng)(Hourly Assimilation Prediction System,HAPS)1 km算例為例進(jìn)行分析。

        逐時(shí)雷達(dá)同化預(yù)報(bào)系統(tǒng)是深圳市氣象局業(yè)務(wù)化運(yùn)行系統(tǒng),“十三五”期間,為滿足精細(xì)化城市預(yù)報(bào)需求,該系統(tǒng)的水平分辨率要從4 km提升至1 km,垂直分辨率要從51層提高到70層。升級(jí)后的應(yīng)用系統(tǒng)對(duì)整個(gè)系統(tǒng)的I/O性能、穩(wěn)定性要求很高,模式讀入輸入數(shù)據(jù)后,以特定積分步長(zhǎng)、完成特定的計(jì)算任務(wù),在特定的時(shí)間間隔把計(jì)算結(jié)果的輸出到文件,該模式的輸出文件為NetCDF數(shù)據(jù)格式。

        HAPS 1 km算例模擬時(shí)間范圍為24 h,每積分30 min輸出一個(gè)wrfout文件,每個(gè)wrfout文件大小為8.1 G,一次算例的輸出文件大小共為396.9 G,串行輸出時(shí)耗時(shí)約為5880 s。因此,傳統(tǒng)的串行輸出方式一方面影響了模式運(yùn)行的效率,另一方面造成了計(jì)算資源的浪費(fèi),且未能充分發(fā)揮并行存儲(chǔ)的優(yōu)勢(shì)。

        針對(duì)深圳市氣象局?jǐn)?shù)值計(jì)算時(shí)普遍遇到的I/O性能瓶頸問(wèn)題,開(kāi)展了面向氣象領(lǐng)域的數(shù)據(jù)并行處理技術(shù)的研究,以解決模式運(yùn)行時(shí)數(shù)據(jù)的讀寫(xiě)效率問(wèn)題。經(jīng)過(guò)深入分析,可從以下兩個(gè)方面對(duì)應(yīng)用程序的輸出效率進(jìn)行優(yōu)化。

        一方面,從存取文件的方式以及應(yīng)用程序內(nèi)部的讀寫(xiě)算法進(jìn)行調(diào)整,提高氣象應(yīng)用的文件訪問(wèn)效率。應(yīng)用并行I/O庫(kù),由同一并發(fā)程序的多個(gè)進(jìn)程產(chǎn)生對(duì)文件數(shù)據(jù)的并發(fā)請(qǐng)求。減少了串行讀取數(shù)據(jù)時(shí)并行通信域中其他處理器核心處于等待狀態(tài)造成的計(jì)算資源浪費(fèi),同時(shí)多個(gè)處理器并行訪問(wèn)數(shù)據(jù)可充分發(fā)揮并行存儲(chǔ)的性能優(yōu)勢(shì)。另一方面,從文件系統(tǒng)角度,針對(duì)模式計(jì)算和前后處理的I/O特征,進(jìn)行并行文件系統(tǒng)底層軟件優(yōu)化和I/O策略優(yōu)化。優(yōu)化策略主要包含鎖顆粒優(yōu)化、atime優(yōu)化、文件鎖優(yōu)化、條帶塊大小自適應(yīng)、條帶寬度調(diào)整、條帶預(yù)讀、數(shù)據(jù)均衡、基于智能算法提高緩存命中率,優(yōu)化并行文件系統(tǒng)的性能。

        1 并行I/O優(yōu)化

        讀寫(xiě)文件策略(圖1)分為三類:

        1)只有一個(gè)進(jìn)程讀寫(xiě)

        主進(jìn)程需要負(fù)責(zé)所有文件的I/O操作,將文件中的所有數(shù)據(jù)讀入自己的緩沖區(qū)(buffer),然后用MPI發(fā)送接收函數(shù)將大部分?jǐn)?shù)據(jù)傳給并行程序的所有任務(wù)。計(jì)算結(jié)束后,主進(jìn)程負(fù)責(zé)將所有結(jié)果數(shù)據(jù)寫(xiě)到文件。顯然,該策略時(shí),應(yīng)用存取數(shù)據(jù)的效率取決于MPI通信性能和主任務(wù)對(duì)文件的訪問(wèn)性能。

        圖1 I/O策略

        2)多個(gè)進(jìn)程分別讀寫(xiě)

        用戶將應(yīng)用所需的一個(gè)數(shù)據(jù)文件按照特定的方式分成多個(gè)文件,每個(gè)進(jìn)程只操作自己的文件,彼此間不協(xié)調(diào),相互獨(dú)立。這種策略優(yōu)點(diǎn)為既能同時(shí)使用計(jì)算服務(wù)器的多個(gè)網(wǎng)絡(luò)通道,發(fā)揮并行存儲(chǔ)系統(tǒng)的多客戶端接入能力,并且沒(méi)有額外的鎖開(kāi)銷,適用于進(jìn)程數(shù)量較少且單進(jìn)程訪存的數(shù)據(jù)量大的情況。缺點(diǎn)是當(dāng)進(jìn)程數(shù)量較多時(shí),輸出的文件數(shù)據(jù)太多,增加了后續(xù)處理的復(fù)雜度及難度。

        3)多個(gè)進(jìn)程讀寫(xiě)同一文件

        MPI-2對(duì)MPI-1進(jìn)程了幾個(gè)重要的擴(kuò)展,增加了對(duì)MPI-IO的支持,MPI-IO是一個(gè)并行I/O庫(kù),提供了執(zhí)行可移植的、用戶級(jí)的I/O 操作接口。MPI可以通過(guò)該接口在文件和進(jìn)程間傳送數(shù)據(jù)。從而實(shí)現(xiàn)了并行程序通過(guò)多任務(wù)并發(fā)讀取同一個(gè)文件。多個(gè)進(jìn)程相互配合,避免無(wú)用操作。

        MPI-IO分為非集中式I/O操作及集中式I/O操作,相比于POSIX I/O接口,其具有以下優(yōu)點(diǎn):1)更高級(jí)別的數(shù)據(jù)接口,可以并行寫(xiě)入復(fù)雜的數(shù)據(jù)類型,允許并行文件系統(tǒng)及MPI-IO調(diào)用優(yōu)化性能;2)支持?jǐn)?shù)據(jù)一致性和原子性;3)優(yōu)化I/O函數(shù)。目前,已有Parallel-NetCDF及HDF5等支持MPI-IO的專業(yè)庫(kù)。Parallel-NetCDF繼承了傳統(tǒng)的NetCDF代碼。保持了NetCDF數(shù)據(jù)格式的兼容性的特點(diǎn),是一個(gè)高性能的對(duì)NetCDF格式數(shù)據(jù)進(jìn)行訪問(wèn)的應(yīng)用編程接口。Parallel-NetCDF及HDF5均創(chuàng)建于MPI-IO上層,提供集合I/O,驅(qū)動(dòng)底層MPI-IO,獲得持續(xù)的并行訪問(wèn)性能??蓸O大地提高I/O效率。

        原HAPS模式I/O策略采用串行I/O方式,只有一個(gè)進(jìn)程進(jìn)行讀寫(xiě),主進(jìn)程負(fù)責(zé)所有文件的I/O操作,數(shù)據(jù)輸出效率成為模式整體效率的瓶頸。而多個(gè)進(jìn)程分別讀寫(xiě)的方式則會(huì)產(chǎn)生與進(jìn)程數(shù)相同的文件,輸出的文件數(shù)目很多,增加了后處理的復(fù)雜度及難度。因此本文研究在HAPS模式中應(yīng)用并行I/O庫(kù),使用多個(gè)進(jìn)程讀寫(xiě)同一個(gè)文件的策略,一方面通過(guò)多進(jìn)程并行輸出提升I/O的性能,另一方面采用該策略不會(huì)增加后處理的復(fù)雜度。

        2 文件系統(tǒng)優(yōu)化

        MPI-IO基于軟件包ROMIO實(shí)現(xiàn),包含多個(gè)驅(qū)動(dòng),并可針對(duì)文件系統(tǒng)進(jìn)行針對(duì)性優(yōu)化,目前MPI-IO的優(yōu)化技術(shù)在部分文件系統(tǒng)的表現(xiàn)不如人意,根源是部分文件系統(tǒng)的分布式鎖沒(méi)有配合好。目前鎖協(xié)議類型多,通過(guò)研究測(cè)試選擇合適的鎖協(xié)議,減少申請(qǐng)鎖的次數(shù),減少不必要的時(shí)間消耗。

        分布式鎖是分布式系統(tǒng)控制同步訪問(wèn)共享資源的一種方式。如果不同的系統(tǒng)或是同一個(gè)系統(tǒng)的不同主機(jī)之間共享了一個(gè)或一組資源,那么訪問(wèn)這些資源的時(shí)候,需要互斥來(lái)防止彼此干擾來(lái)保證一致性,在這種情況下,便需要使用到分布式鎖。對(duì)于文件系統(tǒng),資源可以是文件的數(shù)據(jù)區(qū)間,也可以是文件的元數(shù)據(jù)屬性;對(duì)于數(shù)據(jù)庫(kù)系統(tǒng),資源可以是一張表或者一條記錄。資源實(shí)體是描述資源各種屬性的實(shí)體結(jié)構(gòu)。

        文件系統(tǒng)根據(jù)共享資源不同支持多種粒度的鎖:節(jié)點(diǎn)鎖、文件系統(tǒng)鎖、目錄鎖、文件鎖和區(qū)間鎖等。通過(guò)細(xì)化分布式鎖的粒度降低應(yīng)用請(qǐng)求之間的沖突,提升系統(tǒng)的并發(fā)性能。

        根據(jù)鎖處理過(guò)程中的角色不同,存儲(chǔ)文件系統(tǒng)將系統(tǒng)中的邏輯節(jié)點(diǎn)劃分為協(xié)調(diào)者和發(fā)起者。協(xié)調(diào)者負(fù)責(zé)某一資源上的所有鎖的授予召回操作,協(xié)調(diào)者根據(jù)資源上不同類型鎖之間的優(yōu)先級(jí)和互斥性決定是否授予相應(yīng)的鎖。每個(gè)資源對(duì)應(yīng)一個(gè)協(xié)調(diào)者,但是一個(gè)協(xié)調(diào)者可以管理多個(gè)資源的鎖操作。文件系統(tǒng)中存在多個(gè)協(xié)調(diào)者,而且一個(gè)資源可以切換協(xié)調(diào)者,但是同一時(shí)間,一個(gè)資源只有一個(gè)協(xié)調(diào)者。鎖的發(fā)起者可以是客戶端節(jié)點(diǎn)的應(yīng)用進(jìn)程,也可以是存儲(chǔ)后臺(tái)服務(wù)進(jìn)程,同一資源的鎖發(fā)起者之間存在競(jìng)爭(zhēng)。

        2.1 鎖顆粒優(yōu)化

        確定加鎖機(jī)制后,對(duì)文件系統(tǒng)中選擇合適的鎖顆粒,不合適的鎖顆粒就會(huì)造成巨大的資源消耗:內(nèi)存、CPU計(jì)算能力、存儲(chǔ)空間等。通過(guò)并行文件系統(tǒng)測(cè)試優(yōu)化鎖顆粒的設(shè)置。

        文件系統(tǒng)的默認(rèn)配置一般針對(duì)順序大塊I/O場(chǎng)景性能最優(yōu),通過(guò)鎖擴(kuò)展提升鎖命中度,進(jìn)一步提升I/O性能。多進(jìn)程并發(fā)讀寫(xiě)同一個(gè)文件的場(chǎng)景,鎖擴(kuò)展后每個(gè)進(jìn)程獲取到更大范圍的鎖空間,導(dǎo)致進(jìn)程之間鎖沖突的概率增大。對(duì)鎖沖突的處理會(huì)降低I/O效率,關(guān)閉鎖擴(kuò)展,根據(jù)I/O粒度加對(duì)應(yīng)的鎖,降低鎖沖突可以極大的提升I/O性能。

        2.2 atime 優(yōu)化

        按照標(biāo)準(zhǔn)的POSIX語(yǔ)義,讀操作需要更新文件的atime。在業(yè)務(wù)運(yùn)行過(guò)程中,讀取輸入數(shù)據(jù)階段,多個(gè)進(jìn)程讀同一個(gè)文件的場(chǎng)景,即為多個(gè)進(jìn)程并發(fā)修改同一個(gè)文件的atime的場(chǎng)景。

        對(duì)于需要上萬(wàn)核心并發(fā)執(zhí)行的高性能作業(yè),對(duì)于輸入文件atime的修改會(huì)成為讀取輸入數(shù)據(jù)的瓶頸。部分文件系統(tǒng)支持掛載時(shí)noatime參數(shù),即關(guān)閉atime更新,提升讀取輸入數(shù)據(jù)性能,關(guān)閉atime的優(yōu)化方案適用于不依賴atime的應(yīng)用程序。對(duì)于依賴atime的應(yīng)用程序,文件系統(tǒng)通過(guò)細(xì)化元數(shù)據(jù)鎖粒度,設(shè)置單獨(dú)的atime鎖,提升atime更新性能。

        2.3 文件鎖優(yōu)化

        應(yīng)用程序必須調(diào)用MPI庫(kù)讀寫(xiě)數(shù)據(jù)的場(chǎng)景,文件系統(tǒng)通過(guò)提升鎖服務(wù)線程個(gè)數(shù)并且在客戶端開(kāi)啟鎖緩存的方式提升加鎖性能。

        文件系統(tǒng)將用戶文件劃分成定長(zhǎng)的數(shù)據(jù)段,每個(gè)數(shù)據(jù)段中的數(shù)據(jù)對(duì)象以條帶化的方式存放在多個(gè)存儲(chǔ)設(shè)備上。為了保證數(shù)據(jù)的可靠性,同一個(gè)數(shù)據(jù)段中的數(shù)據(jù)對(duì)象之間采用多副本或糾刪碼的方式進(jìn)行冗余保護(hù):當(dāng)部分?jǐn)?shù)據(jù)對(duì)象所在的存儲(chǔ)節(jié)點(diǎn)、網(wǎng)絡(luò)或存儲(chǔ)設(shè)備發(fā)生故障時(shí),系統(tǒng)可以通過(guò)其他數(shù)據(jù)對(duì)象來(lái)及時(shí)重建該數(shù)據(jù),以保證數(shù)據(jù)的可靠性。

        文件系統(tǒng)對(duì)I/O 性能的優(yōu)化,除了鎖顆粒、atime、文件鎖優(yōu)化之外,還包括以下幾個(gè)方面:

        1)條帶塊大小自適應(yīng):針對(duì)不同大小的文件,文件系統(tǒng)可以自適應(yīng)的選擇不同的條帶塊大小,確保各種大小文件的I/O性能達(dá)到最優(yōu);

        2)增加條帶寬度:文件系統(tǒng)在線調(diào)整條帶寬度,在存儲(chǔ)系統(tǒng)擴(kuò)容后,可以通過(guò)增加條帶寬度,優(yōu)化文件的順序訪問(wèn)I/O性能;

        3)條帶預(yù)讀:條帶預(yù)讀是文件系統(tǒng)預(yù)讀算法中的一種,通過(guò)條帶預(yù)讀可以進(jìn)一步優(yōu)化順序讀I/O的性能;

        4)數(shù)據(jù)均衡:文件系統(tǒng)可存儲(chǔ)節(jié)點(diǎn)和存儲(chǔ)設(shè)備的容量進(jìn)行數(shù)據(jù)均衡,在保證冗余規(guī)則的前提下,調(diào)整數(shù)據(jù)對(duì)象在系統(tǒng)中的分布情況,提高數(shù)據(jù)訪問(wèn)性能。

        條帶化主要受限于存儲(chǔ)集群規(guī)模和數(shù)據(jù)冗余度。更大規(guī)模的集群可以支持更多的條帶化配置和數(shù)據(jù)冗余度配置,I/O性能優(yōu)化的空間越大。

        2.4 緩存命中率優(yōu)化

        隨著IT技術(shù)的發(fā)展,CPU計(jì)算能力發(fā)展迅速,機(jī)械硬盤(HDD)容量雖有著驚人的擴(kuò)展,但是性能的提升遠(yuǎn)遠(yuǎn)不夠,硬盤與CPU之間的性能鴻溝越來(lái)越大。在工作負(fù)載較大、對(duì)性能要求較高的I/O中,硬盤的性能往往成為瓶頸。增加內(nèi)存(RAM Cache)可以明顯提升系統(tǒng)的訪問(wèn)速度,但單位容量的內(nèi)存價(jià)格過(guò)于昂貴,絕大多數(shù)的用戶難以接受。

        SSD相較于機(jī)械硬盤,帶寬及響應(yīng)時(shí)間有著明顯的優(yōu)勢(shì),并且容量遠(yuǎn)大于普通內(nèi)存。將SSD作為緩存資源,可以顯著降低存儲(chǔ)系統(tǒng)的響應(yīng)時(shí)間,有效提高數(shù)據(jù)的訪問(wèn)頻率。

        文件系統(tǒng)利用SSD盤對(duì)隨機(jī)小文件讀取速度快的特點(diǎn),將SSD盤組成介于HDD與內(nèi)存之間的二級(jí)緩存池。通過(guò)智能算法將訪問(wèn)頻度高的隨機(jī)小文件熱點(diǎn)數(shù)據(jù)存放到SSD上,應(yīng)用程序再次訪問(wèn)該數(shù)據(jù)時(shí),可以直接從SSD上獲取。由于SSD盤的數(shù)據(jù)讀取速度遠(yuǎn)遠(yuǎn)高于機(jī)械硬盤,因此可以顯著縮短熱點(diǎn)數(shù)據(jù)的響應(yīng)時(shí)間,從而提升系統(tǒng)的性能。

        存儲(chǔ)系統(tǒng)的數(shù)據(jù)節(jié)點(diǎn)上配置一塊或多塊的SSD,通過(guò)配置參數(shù)設(shè)定作為緩存資源的SSD容量(其余容量可以用作普通數(shù)據(jù)盤)。SSD只能加速所在節(jié)點(diǎn)上的數(shù)據(jù)訪問(wèn),SSD故障后不影響數(shù)據(jù)正確性,拔掉SSD緩存盤后再插入,其上的緩存數(shù)據(jù)會(huì)自動(dòng)清除。

        SSD緩存功能需要消耗一定的內(nèi)存容量來(lái)記錄數(shù)據(jù)的訪問(wèn)熱度等信息。一般情況下,開(kāi)啟SSD緩存功能后,消耗的內(nèi)存與SSD緩存容量比例為1∶50,即1 TB的SSD緩存容量需要消耗20GB的普通內(nèi)存。

        基于智能算法,自動(dòng)識(shí)別連續(xù)/隨機(jī)I/O,過(guò)濾大塊連續(xù)I/O操作,僅將隨機(jī)訪問(wèn)的小塊數(shù)據(jù)放置到SSD,最大程度地發(fā)揮SSD緩存作用。開(kāi)啟SSD讀緩存功能后,數(shù)據(jù)節(jié)點(diǎn)將熱點(diǎn)數(shù)據(jù)拷貝至SSD緩存中。相較于機(jī)械硬盤,SSD無(wú)尋道時(shí)間,可以大大減少熱點(diǎn)數(shù)據(jù)的讀取時(shí)間,提高熱點(diǎn)數(shù)據(jù)的讀性能。

        SSD緩存讀取流程包括讀緩存命中和讀緩存未命中。

        2.4.1 讀緩存命中

        當(dāng)客戶端訪問(wèn)的數(shù)據(jù)在SSD緩存中時(shí),讀取請(qǐng)求將由SSD直接返回至內(nèi)存,稱之為讀緩存命中。以POSIX協(xié)議訪問(wèn)為例,讀取流程如圖2所示。具體如下:1)客戶端向索引節(jié)點(diǎn)請(qǐng)求文件的位置;2)索引節(jié)點(diǎn)返回文件元數(shù)據(jù)信息;3)客戶端計(jì)算得到文件存儲(chǔ)的數(shù)據(jù)節(jié)點(diǎn)位置,并向數(shù)據(jù)節(jié)點(diǎn)的內(nèi)存發(fā)送讀請(qǐng)求;4)若數(shù)據(jù)未在內(nèi)存中,繼續(xù)向本節(jié)點(diǎn)的SSD發(fā)送讀請(qǐng)求;5)SSD緩存命中后,將數(shù)據(jù)從SSD讀取到內(nèi)存中;6)內(nèi)存將讀取到的數(shù)據(jù)返回到客戶端。

        2.4.2 讀緩存未命中

        圖2 讀緩存命中流程

        當(dāng)客戶端訪問(wèn)的數(shù)據(jù)不在SSD緩存中時(shí),讀取請(qǐng)求需要從機(jī)械硬盤返回至內(nèi)存,稱之為讀緩存未命中。以POSIX協(xié)議訪問(wèn)為例,讀取流程如圖3所示。具體如下:1)客戶端向索引節(jié)點(diǎn)請(qǐng)求文件的位置;2)索引節(jié)點(diǎn)返回文件元數(shù)據(jù)信息;3)客戶端計(jì)算得到文件存儲(chǔ)的數(shù)據(jù)節(jié)點(diǎn)位置,并向數(shù)據(jù)節(jié)點(diǎn)的內(nèi)存發(fā)送讀請(qǐng)求;4)若數(shù)據(jù)未在內(nèi)存中,繼續(xù)向本節(jié)點(diǎn)的SSD發(fā)送讀請(qǐng)求;5)SSD緩存未命中,將結(jié)果返回給內(nèi)存;6)內(nèi)存下發(fā)I/O請(qǐng)求至機(jī)械硬盤;7)機(jī)械硬盤將數(shù)據(jù)返回至內(nèi)存;8)內(nèi)存將數(shù)據(jù)寫(xiě)入到SSD,作為熱點(diǎn)數(shù)據(jù)緩存;若SSD作為緩存的容量已滿,將根據(jù)LRU算法將之前寫(xiě)入的部分?jǐn)?shù)據(jù)拋棄;9)內(nèi)存將數(shù)據(jù)返回給客戶端。

        圖3 讀緩存未命中流程

        針對(duì)逐時(shí)雷達(dá)同化預(yù)報(bào)系統(tǒng)的讀操作,一方面將SSD盤作為二級(jí)緩存池,顯著降低存儲(chǔ)系統(tǒng)的響應(yīng)時(shí)間,有效提高數(shù)據(jù)的訪問(wèn)頻率;另一方面通過(guò)智能算法將訪問(wèn)頻度高的隨機(jī)小文件熱點(diǎn)數(shù)據(jù)存放到SSD上,應(yīng)用程序再次訪問(wèn)該數(shù)據(jù)時(shí),可以直接從SSD上獲取,提升應(yīng)用程序的訪存性能。

        3 優(yōu)化方案及測(cè)試

        3.1 HAPS 算例簡(jiǎn)介

        HAPS 1 km算例為單層嵌套網(wǎng)格,水平網(wǎng)格數(shù)為1281×961,垂向?qū)訑?shù)為70層,時(shí)間步長(zhǎng)為6 s,積分時(shí)長(zhǎng)為24 h,輸入文件大小共為1.549 G,輸出設(shè)置為每半小時(shí)輸出模擬結(jié)果,每次輸出文件大小為8.1 G,共輸出文件49個(gè),輸出文件大小共為396.9 G。

        3.2 測(cè)試環(huán)境

        1)硬件配置

        ● 單節(jié)點(diǎn)2顆Intel Xeon Gold 6142 CPU;

        ● 單節(jié)點(diǎn)內(nèi)存:192 GB;

        ● 通信網(wǎng)絡(luò):100 Gbps EDR infiniband

        ● 分布式并行文件存儲(chǔ)系統(tǒng)

        2)軟件配置

        ● Intel compiler 2017

        ● Intelmpi 2017

        ● Netcdf 4.4.0

        ● Pnetcdf 1.8.1

        ● Slurm作業(yè)調(diào)度系統(tǒng)

        3.3 優(yōu)化方案及關(guān)鍵技術(shù)參數(shù)

        1)MPI-IO庫(kù)優(yōu)化:在HAPS 應(yīng)用中調(diào)用支持PNETCDF庫(kù),提供集合I/O,驅(qū)動(dòng)底層MPI-IO,獲得持續(xù)的并行訪問(wèn)性能,以提高I/O效率。應(yīng)用中使用PNETCDF庫(kù),版本為1.8.1,具體驗(yàn)證時(shí)可在編譯HAPS應(yīng)用時(shí)添加-DPNETCDF選項(xiàng),通過(guò)設(shè)置namelist.input中的選項(xiàng)io_form_history參數(shù)判定輸出文件使用Netcdf方式或者并行Pnetcdf方式,設(shè)置io_form_history=2為使用串行I/O方式,設(shè)置io_form_hisory=11為使用MPI-IO方式。

        2)atime優(yōu)化:通過(guò)mount掛載時(shí)添加-o noatime參數(shù)實(shí)現(xiàn),提升讀取輸入數(shù)據(jù)性能。在HAPS運(yùn)行過(guò)程中,多個(gè)進(jìn)程讀同一個(gè)文件的場(chǎng)景,即為多個(gè)進(jìn)程并發(fā)讀取同一個(gè)文件的atime的場(chǎng)景。對(duì)atime的修改成為數(shù)據(jù)讀取的瓶頸,因此在文件系統(tǒng)掛載時(shí)添加-o noatime參數(shù)關(guān)閉。

        3)文件鎖優(yōu)化:設(shè)置文件系統(tǒng)內(nèi)部一次I/O的塊大小chunksize為HAPS 1 km算例輸出文件I/O塊大小,針對(duì)不同的業(yè)務(wù),文件系統(tǒng)可以設(shè)置不同的chunksize,確保各種大小文件的I/O性能達(dá)到最優(yōu);避免浪費(fèi)網(wǎng)絡(luò)及磁盤資源,提升讀寫(xiě)效率。

        HAPS模式調(diào)用MPI庫(kù)讀寫(xiě)數(shù)據(jù)的場(chǎng)景,文件系統(tǒng)通過(guò)提升鎖服務(wù)線程個(gè)數(shù)并且在客戶端開(kāi)啟鎖緩存的方式提升加鎖性能。通過(guò)專門的鎖服務(wù)處理線程提升服務(wù)端鎖服務(wù)處理能力,并且降低對(duì)其他請(qǐng)求的影響??蛻舳嗽黾渔i緩存,進(jìn)一步降低服務(wù)端服務(wù)壓力。

        4)緩存命中率優(yōu)化: 該文件系統(tǒng)利用SSD盤對(duì)隨機(jī)小文件讀取速度快的特點(diǎn),將SSD盤組成介于HDD與內(nèi)存之間的二級(jí)緩存池。在存儲(chǔ)系統(tǒng)的數(shù)據(jù)節(jié)點(diǎn)上配置一塊或多塊的SSD,通過(guò)配置參數(shù)設(shè)定作為緩存資源的SSD容量。SSD只能加速所在節(jié)點(diǎn)上的數(shù)據(jù)訪問(wèn),SSD故障后不影響數(shù)據(jù)正確性,拔掉SSD緩存盤后再插入,其上的緩存數(shù)據(jù)會(huì)自動(dòng)被清除。

        通過(guò)智能算法將訪問(wèn)頻度高的隨機(jī)小文件熱點(diǎn)數(shù)據(jù)存放到SSD上,應(yīng)用程序再次訪問(wèn)該數(shù)據(jù)時(shí),可以直接從SSD上獲取。由于SSD盤的數(shù)據(jù)讀取速度遠(yuǎn)遠(yuǎn)高于機(jī)械硬盤,因此可以顯著縮短熱點(diǎn)數(shù)據(jù)的響應(yīng)時(shí)間,提高緩存命中率,提高系統(tǒng)I/O的性能。

        3.4 測(cè)試驗(yàn)證方案及步驟

        3.4.1 驗(yàn)證方案

        1)HAPS使用串行I/O輸出方式,統(tǒng)計(jì)I/O時(shí)間及整個(gè)模式的墻鐘時(shí)間;

        2)HAPS使用串行I/O輸出方式,對(duì)并行文件系統(tǒng)進(jìn)行調(diào)優(yōu),統(tǒng)計(jì)I/O時(shí)間及整個(gè)模式的墻鐘時(shí)間

        3)HAPS使用MPI-IO輸出方式,統(tǒng)計(jì)I/O時(shí)間及整個(gè)模式的墻鐘時(shí)間;

        4)HAPS使用MPI-IO輸出方式,同時(shí)對(duì)并行文件系統(tǒng)進(jìn)行調(diào)優(yōu),統(tǒng)計(jì)I/O時(shí)間及整個(gè)模式的墻鐘時(shí)間。

        通過(guò)以上四種運(yùn)行方式的對(duì)比,驗(yàn)證提出的并行I/O優(yōu)化技術(shù)的效果。

        3.4.2 驗(yàn)證步驟

        編譯NETCDF 庫(kù)、PNETCDF庫(kù)、及HAPS應(yīng)用,生成haps.exe可執(zhí)行文件。

        編寫(xiě)運(yùn)行驗(yàn)證運(yùn)行腳本haps.sh:

        #!/bin/bash

        #SBATCH -J HAPS

        #SBATCH --comment=HAPS

        #SBATCH -p normal

        #SBATCH -o log.%j

        #SBATCH -e log.%j

        #SBATCH -t 12:00:00

        #SBATCH -N 50

        #SBATCH -n 1500

        #SBATCH --exclusive

        module load compiler/intel/composer_xe_2017.2.174

        module load mpi/intelmpi/2017.2.174

        export I_MPI_FABRICS=shm:dapl

        export I_MPI_DAPL_UD_PROVIDER=ofa-v2-mlx5_0-1u

        export I_MPI_DAPL_PROVIDER=ofa-v2-mlx5_0-1u

        export I_MPI_LARGE_SCALE_THRESHOLD=8192

        export FORT_BUFFERED=1

        echo $(date +%H:%M:%d)

        mpirun ./haps.exe

        echo $(date +%H:%M:%d)

        通過(guò)提交sbatch haps.sh腳本進(jìn)行優(yōu)化驗(yàn)證。

        3.5 效率驗(yàn)證

        使用1500個(gè)處理器核心數(shù)運(yùn)行算例,運(yùn)行結(jié)果如圖4所示,其中:輸入時(shí)間=讀取初始場(chǎng)文件時(shí)間+讀取邊界場(chǎng)文件時(shí)間,輸出時(shí)間=wrfout文件輸出時(shí)間的總和,計(jì)算時(shí)間=墻鐘時(shí)間-輸入時(shí)間-輸出時(shí)間。

        圖4 墻鐘時(shí)間分解

        運(yùn)行HAPS 1 km時(shí)使用串行I/O方式,由于輸出文件數(shù)據(jù)量較大,I/O時(shí)間占總墻鐘運(yùn)行時(shí)間的61%。I/O成為整個(gè)模式的性能瓶頸。因此應(yīng)用并行I/O技術(shù)并對(duì)并行文件系統(tǒng)底層軟件進(jìn)行優(yōu)化,首先HAPS仍使用串行I/O輸出方式,對(duì)分布式文件系統(tǒng)進(jìn)行調(diào)優(yōu),I/O時(shí)間由61%降低為 57%;其次單獨(dú)應(yīng)用MPI-IO技術(shù)后進(jìn)行測(cè)試,實(shí)現(xiàn)并行輸出氣象要素,I/O時(shí)間占比由61%降低為16%;最后測(cè)試對(duì)分布式文件系統(tǒng)進(jìn)行調(diào)優(yōu)并應(yīng)用MPI-IO技術(shù),I/O時(shí)間占比由16%降低為12.2%,由于輸入文件大小僅為1.549 G,因此讀入部分耗時(shí)占比較低。該試驗(yàn)結(jié)果表明,通過(guò)該方法可顯著提高模式整體運(yùn)行性能。

        4 結(jié)語(yǔ)

        本文針對(duì)深圳市氣象局?jǐn)?shù)值計(jì)算時(shí)普遍遇到的I/O性能瓶頸問(wèn)題,開(kāi)展提高氣象數(shù)值模式計(jì)算性能的并行I/O優(yōu)化技術(shù)研究。一方面,在HAPS應(yīng)用中支持PNETCDF庫(kù),驅(qū)動(dòng)底層MPI-IO,獲得持續(xù)的并行訪問(wèn)性能;另一方面,針對(duì)業(yè)務(wù)特性,開(kāi)展并行文件系統(tǒng)參數(shù)優(yōu)化,通過(guò)調(diào)優(yōu)分布式鎖,提升MPI-IO優(yōu)化技術(shù)在實(shí)際應(yīng)用中的性能。通過(guò)實(shí)驗(yàn)驗(yàn)證表明,該優(yōu)化方法可顯著提升HAPS 1 km的整體I/O性能。

        深入閱讀

        Gropp W, Lusk E, Doss N, et al, 1996. A high-performance, portable implementation of the MPI message passing interface standard.Parallel Computing, 22(6): 789828.

        Gropp W, Lusk E, Thakur R, 1999. Using MPI-2: Advanced features of the message passing interface. Cambridge: MIT Press.

        Thakur R, Gropp W, Lusk E, 1999. On implementing MPI-IO portably and with high performance. In Proceedings of the Workshop on Input/Output in Parallel and Distributed Systems.

        猜你喜歡
        條帶進(jìn)程內(nèi)存
        債券市場(chǎng)對(duì)外開(kāi)放的進(jìn)程與展望
        “春夏秋冬”的內(nèi)存
        基于條帶模式GEOSAR-TOPS模式UAVSAR的雙基成像算法
        基于 Savitzky-Golay 加權(quán)擬合的紅外圖像非均勻性條帶校正方法
        社會(huì)進(jìn)程中的新聞學(xué)探尋
        一種基于MATLAB的聲吶條帶圖像自動(dòng)拼接算法
        海岸工程(2014年4期)2014-02-27 12:51:28
        基于內(nèi)存的地理信息訪問(wèn)技術(shù)
        我國(guó)高等教育改革進(jìn)程與反思
        Linux僵死進(jìn)程的產(chǎn)生與避免
        AVS標(biāo)準(zhǔn)中的靈活條帶結(jié)構(gòu)
        亚州五十路伊人网| 老妇女性较大毛片| 国产成人精品无码播放| 亚洲欧美另类日本久久影院| 美女被强吻并脱下胸罩内裤视频| 人妻丰满熟妇aⅴ无码| 欧美国产精品久久久乱码| 国产免费一区二区三区最新不卡| 白白色青青草视频免费观看| 中国久久久一级特黄久久久| 人妻中文无码久热丝袜| 亚洲免费av电影一区二区三区| 亚洲天堂av中文字幕| 国产一区二区三区日韩精品 | 国产美女精品AⅤ在线老女人| 国产91极品身材白皙| 色欲人妻综合aaaaa网| 草莓视频成人| 亚洲一级av大片在线观看| 久草视频在线手机免费看 | 无码夜色一区二区三区| 开心激情站开心激情网六月婷婷 | 亚洲视频一区二区蜜桃| 久久久精品国产亚洲av网深田| 国产高清在线精品一区二区三区| 美女一级毛片免费观看97| 一二三四在线观看韩国视频| 亚洲成av人片乱码色午夜| 午夜福利电影| 亚洲人成无码网站十八禁| 久久久精品毛片免费观看| 亚洲中文字幕久在线| 国产高清吃奶成免费视频网站 | 小宝极品内射国产在线| 毛片无遮挡高清免费久久| 亚洲av一区二区在线| 日本阿v片在线播放免费| 2021久久最新国产精品| 日韩中文字幕乱码在线| 免费不卡无码av在线观看| 1717国产精品久久|