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

        ?

        基于“嵩山”超級計算機(jī)系統(tǒng)的大規(guī)模管網(wǎng)仿真

        2022-09-15 06:59:14楊周凡李冰洋謝景明劉勇杰
        計算機(jī)工程 2022年9期
        關(guān)鍵詞:進(jìn)程

        楊周凡,韓 林,李冰洋,謝景明,韓 璞,劉勇杰

        (1.鄭州大學(xué) 信息工程學(xué)院,鄭州 450000;2.鄭州大學(xué) 國家超級計算鄭州中心,鄭州 450000)

        0 概述

        隨著世界各國對清潔能源需求的不斷增長,供水管道在能源結(jié)構(gòu)中發(fā)揮著重要的作用[1-2]。由于供水管道規(guī)模的擴(kuò)大,導(dǎo)致拓?fù)浣Y(jié)構(gòu)也越來越復(fù)雜[3-4]。供水管道中數(shù)值的準(zhǔn)確預(yù)測對整個管道建設(shè)和管道安全至關(guān)重要,供水管道系統(tǒng)的高效仿真是解決上述問題的重要手段[5]。初期人們可通過對數(shù)值方法進(jìn)行改進(jìn),也可以使用更好的計算設(shè)備提升模擬計算效率,但是隨著管網(wǎng)拓?fù)浣Y(jié)構(gòu)大規(guī)模的擴(kuò)大以及CPU 功耗墻的出現(xiàn),該方法性能逐漸降低。

        近年來,GPU 加速器開始廣泛用于科學(xué)計算,其提供了優(yōu)越的計算處理能力和內(nèi)存帶寬,并提高了計算效率[6-8]。文獻(xiàn)[8]提出一種加速單GPU 芯片上開放通道和管道組合流瞬態(tài)模擬的方法。在計算統(tǒng)一設(shè)備架構(gòu)(CUDA)的線程級并行結(jié)構(gòu)中,GPU 可以很好地利用其固有的并行性[9-10]。但是,對大規(guī)模管道網(wǎng)絡(luò)仿真計算時,仿真計算粒度密集,而傳統(tǒng)計算機(jī)受限于計算粒度密集的程序,可能會影響供水管網(wǎng)大規(guī)模數(shù)值模擬時的效率?!搬陨健背売嬎銠C(jī)是我國自主研發(fā)的新一代E 級超級計算機(jī),其采用符合超算國際主流趨勢的海光1 號CPU+海光1 號DCU 加速器的異構(gòu)體系結(jié)構(gòu),所配備的DCU 加速器件使得該平臺更適合于部署高度密集型計算應(yīng)用。因此,供水管網(wǎng)模擬系統(tǒng)在“嵩山”超級計算機(jī)平臺上進(jìn)行模擬計算,可以進(jìn)一步突破瓶頸提升計算性能。

        盡管管網(wǎng)在超級計算機(jī)平臺上比傳統(tǒng)CPU 具有更高的計算效率,但單個DCU 節(jié)點(diǎn)的極限存儲和計算能力可能會影響管網(wǎng)在超擴(kuò)展尺度上處理計算系統(tǒng)時的效率。在這種情況下,如果在多塊DCU 中進(jìn)行計算,則需大幅擴(kuò)展管網(wǎng)模擬計算的規(guī)模。

        本文提出一種有效的并行化方案來提高管網(wǎng)的計算效率。面向“嵩山”超級計算機(jī)平臺,利用HIP-C 語言修改程序完成程序跨平臺移植,在單DCU 中實(shí)現(xiàn)計算的并發(fā)。針對管網(wǎng)中管道元件中數(shù)據(jù)依賴問題,對其進(jìn)行數(shù)據(jù)劃分,并結(jié)合HIP 編程模型和消息傳遞接口,將多個DCU 加速器集成到網(wǎng)絡(luò)體系結(jié)構(gòu)中,通過高效的混合并行化方案對管網(wǎng)進(jìn)行優(yōu)化[11]。

        1 相關(guān)工作

        本節(jié)主要介紹管網(wǎng)管道拓?fù)浣Y(jié)構(gòu),并描述HIP+MPI 混合編程。

        1.1 管道網(wǎng)絡(luò)模型

        管道運(yùn)輸是各種清潔能源開發(fā)與輸送過程中一項(xiàng)重要的技術(shù)[12-13]。目前,管道運(yùn)輸技術(shù)已有很多成熟的理論和模型,隨著計算機(jī)技術(shù)和網(wǎng)絡(luò)通信的飛速發(fā)展,能源運(yùn)輸技術(shù)也逐漸實(shí)現(xiàn)了信息化,運(yùn)輸管道仿真模擬系統(tǒng)應(yīng)運(yùn)而生。模擬仿真通過把數(shù)據(jù)訪問接口連接到系統(tǒng),及時更新數(shù)據(jù),將實(shí)時數(shù)據(jù)傳入到系統(tǒng)中進(jìn)行計算,實(shí)現(xiàn)管網(wǎng)的動態(tài)模擬仿真[14-16]。

        首先以管網(wǎng)實(shí)際拓?fù)鋱D為基礎(chǔ)來考慮管網(wǎng)模型,為清晰地描述管網(wǎng)的模擬計算過程,本文通過以下簡單管網(wǎng)進(jìn)行說明。圖1 所示是一根獨(dú)立管道的兩個邊界節(jié)點(diǎn)。圖2 所示是一個簡單的管道系統(tǒng),中間用一個非管道元件連接兩根管道,共有4 個臨界點(diǎn)。圖3 所示為擴(kuò)大管道規(guī)模后構(gòu)建一個閉環(huán)的管道系統(tǒng),管道內(nèi)由方程計算的值與非管道元件內(nèi)由方程計算得出的結(jié)果通過邊界值計算進(jìn)行數(shù)值交互,模擬仿真得出需要的數(shù)值。

        圖1 單個管道圖Fig.1 Single pipeline diagram

        圖2 簡單的管道系統(tǒng)Fig.2 Simple pipeline system

        圖3 閉環(huán)的管道系統(tǒng)Fig.3 Closed-loop pipeline system

        1.2 MPI+HIP 混合編程

        并行計算在不同的粒度層次優(yōu)化,粒度一般分為粗粒度和細(xì)粒度。在集群上多個進(jìn)程進(jìn)行計算,進(jìn)程間通過消息傳遞的方式進(jìn)行通信[17-18]。由于MPI 的通信占用成本較高,因此更適合任務(wù)劃分清晰、通信不頻繁的粗粒度并行[19-20]。與MPI 相比,DCU 擅長大規(guī)模密集計算,可在細(xì)粒度上進(jìn)行并行計算。本文結(jié)合MPI和DCU 的優(yōu)點(diǎn),通過MPI 消息傳遞機(jī)制控制多進(jìn)程計算,實(shí)現(xiàn)粗粒度上的并發(fā),并在每個進(jìn)程中使用DCU實(shí)現(xiàn)線程級計算和細(xì)粒度上的并發(fā)[21]。

        “嵩山”超級計算機(jī)一個節(jié)點(diǎn)內(nèi)共有4 塊DCU,如果只在單DCU 中進(jìn)行計算,每個節(jié)點(diǎn)的計算能力沒有被充分利用。為擴(kuò)展DCU 計算規(guī)模,在實(shí)現(xiàn)多DCU 計算時,MPI+HIP 混合編程可以發(fā)揮優(yōu)勢,為每一個DCU分別分配一個進(jìn)程,使用MPI 控制多進(jìn)程計算并進(jìn)行通信[22-23]。進(jìn)程之間使用消息傳遞接口傳輸數(shù)據(jù),進(jìn)程內(nèi)采用HIP 技術(shù)進(jìn)行線程級優(yōu)化,實(shí)現(xiàn)粗粒度和細(xì)粒度的結(jié)合,提升科學(xué)計算的性能。HIP+MPI 混合編程結(jié)構(gòu)如圖4 所示。

        圖4 MPI+HIP 混合編程結(jié)構(gòu)Fig.4 MPI+HIP mixed programming structure

        2 管網(wǎng)仿真計算的異構(gòu)實(shí)現(xiàn)

        2.1 管網(wǎng)計算的并行性

        管網(wǎng)模擬仿真系統(tǒng)在進(jìn)行數(shù)值模擬時,大量的數(shù)據(jù)增加了計算時間,影響數(shù)值模擬的時間和精度。根據(jù)上文的內(nèi)容可以了解到DCU 的計算能力,這可以解決目前模擬計算中所遇到的問題。下面將詳細(xì)介紹管網(wǎng)拓?fù)浣Y(jié)構(gòu)中管道與非管道的并行特性。參照圖3 結(jié)構(gòu)中各元件計算的流程如圖5 所示。

        圖5 管網(wǎng)元件計算流程Fig.5 Calculation procedure of pipeline network components

        本文管道網(wǎng)絡(luò)仿真計算基于王海[13]提出的立體管網(wǎng)建模方法。將管網(wǎng)“對象化”,然后把管網(wǎng)元件的對象屬性賦予具體數(shù)值,得到每個元件與相鄰元件的連接屬性以及每個元件的初始狀態(tài)和邊界條件。管道元件和非管道元件在初始化后,可開始第1 個時間步長的計算,每次計算完成后,需要進(jìn)行收斂分析,如果計算精度達(dá)到0.000 1%,則結(jié)束循環(huán)。這時能夠得到穩(wěn)態(tài)時管道元件與非管道元件的流量、壓力和水力工況等數(shù)值。

        在分析該程序代碼進(jìn)行數(shù)值模擬計算時,首先需要設(shè)置循環(huán)條件,直到計算結(jié)果不發(fā)散才可計算結(jié)束。在外循環(huán)中先對非管道元件進(jìn)行計算,在邏輯上將數(shù)組進(jìn)行切分,數(shù)組不同的分段執(zhí)行不同的非管道元件,使用hipDeviceSynchronize()函數(shù)進(jìn)行同步,直到所有非管道元件計算完畢,才能對管道元件進(jìn)行計算,然后同步直到所有管道元件計算完成。以上所有步驟在內(nèi)循環(huán)每5 000 次后進(jìn)行數(shù)值更新,并對計算結(jié)果進(jìn)行收斂計算,直到計算結(jié)果收斂或達(dá)到最大循環(huán)次數(shù),整個循環(huán)計算結(jié)束。在此過程中,各個非管道元件之間的計算是獨(dú)立的,管道元件之間的計算也沒有依賴,管道和管道、非管道與非管道之間有較高的并行度。因此,可以考慮在粗粒度上把各管道和非管道元件作為求解任務(wù),將其傳輸?shù)皆O(shè)備端進(jìn)行并行計算。

        2.2 異構(gòu)實(shí)現(xiàn)

        供水管網(wǎng)仿真系統(tǒng)代碼是由C/C++語言編寫的,本文通過使用HIP-C 對代碼進(jìn)行改寫,改寫后的代碼可以在“嵩山”超級計算機(jī)上運(yùn)行并進(jìn)行測試。通過測試可以發(fā)現(xiàn),管道和非管道中水力計算部分耗時較長,一定程度上影響了模擬仿真計算的效率。因此,在工作中把管道和非管道中的計算部分在DCU 中進(jìn)行并行計算,因?yàn)镈CU 加速器對數(shù)據(jù)量較大、運(yùn)算復(fù)雜的密集性計算有顯著優(yōu)勢,所以對于供水管網(wǎng)模擬計算時把計算耗時較長的部分傳輸?shù)紻CU 中,計算效率有了顯著的提升。供水管網(wǎng)仿真系統(tǒng)在異構(gòu)架構(gòu)中的模擬實(shí)現(xiàn)流程如圖6 所示。

        結(jié)合圖6 分析在程序中需要讀取管道和非管道元件中的數(shù)據(jù),并寫入不同的結(jié)構(gòu)體數(shù)組,然后定義結(jié)構(gòu)體指針,動態(tài)分配各個管道和非管道結(jié)構(gòu)體指針的內(nèi)存,將主機(jī)端內(nèi)存的管道元件和非管道元件的結(jié)構(gòu)體數(shù)組傳輸?shù)紻CU 加速器設(shè)備內(nèi)存中,并對其進(jìn)行初始化。管網(wǎng)中管道元件和非管道元件需循環(huán)計算,直到達(dá)到收斂條件或最大循環(huán)次數(shù)方可跳出循環(huán)結(jié)束計算。在外循環(huán)中,對管網(wǎng)中各元件循環(huán)計算時,管道元件和非管道元件將DCU 加速器映射到block 塊中,每個block 中可以根據(jù)實(shí)際應(yīng)用分配線程,非管道元件和管道元件計算時按順序計算。首先計算非管道元件并同步,當(dāng)所有非管道元件計算完畢之后開始管道的計算,同理,管道計算后也需要同步。以上操作以5 000 次為基準(zhǔn),開啟內(nèi)循環(huán),每循環(huán)計算5 000 次,所有元件進(jìn)行一次更新,并對其中的二通、三通、四通進(jìn)行收斂條件判斷,若達(dá)到收斂條件,則跳出循環(huán);否則再次重復(fù)上述步驟對非管道和管道進(jìn)行并行操作,直到外循環(huán)結(jié)束,跳出循環(huán),將最終的計算結(jié)果從設(shè)備端傳回到主機(jī)端,重新關(guān)聯(lián)非管道元件和管道,直至模擬計算結(jié)束。

        圖6 異構(gòu)版本供水管網(wǎng)仿真系統(tǒng)模擬流程Fig.6 Simulation procedure of water supply pipeline network simulation system of heterogeneous versions

        對于小規(guī)模的管道網(wǎng)絡(luò),可以實(shí)現(xiàn)在單DCU 中計算,當(dāng)管道網(wǎng)絡(luò)規(guī)模逐漸擴(kuò)大時,單DCU 中計算規(guī)模不能滿足仿真計算的需求,因此將單DCU 擴(kuò)展到多DCU 中進(jìn)行模擬計算。

        3 DCU 多卡的實(shí)現(xiàn)

        供水管網(wǎng)模擬仿真系統(tǒng)在多DCU 中的實(shí)現(xiàn),合理的管道劃分方式和數(shù)據(jù)通信傳輸尤其重要。

        3.1 管道數(shù)據(jù)劃分

        管網(wǎng)數(shù)據(jù)必須根據(jù)DCU 節(jié)點(diǎn)處理管道數(shù)據(jù),并將這些數(shù)據(jù)逐個寫入DCU,而不是計算整個過程中的所有管道數(shù)據(jù)。在程序優(yōu)化過程中直接將管道數(shù)據(jù)分成兩個部分,并將這兩個部分的數(shù)據(jù)分別寫入到兩塊DCU 內(nèi)存中進(jìn)行計算,但在計算過程中程序運(yùn)行到一半發(fā)生了中斷,測試調(diào)試發(fā)現(xiàn)在對管道數(shù)據(jù)循環(huán)讀取時,讀到一部分管道數(shù)據(jù)后循環(huán)中斷,發(fā)生數(shù)據(jù)缺失的情況。經(jīng)過分析,管道之間數(shù)據(jù)交互密切,各個DCU 中一部分管道和非管道元件之間存在數(shù)據(jù)依賴問題。在對管道數(shù)據(jù)進(jìn)行讀取時,無法實(shí)現(xiàn)跨進(jìn)程讀取操作,DCU 之間也無法進(jìn)行跨設(shè)備的數(shù)據(jù)訪問。為解決該問題,需要使用消息傳遞接口(MPI)使相關(guān)進(jìn)程之間進(jìn)行通信,實(shí)現(xiàn)數(shù)據(jù)跨進(jìn)程通信交互。

        使用MPI 控制兩進(jìn)程計算并進(jìn)行通信時,將管道元件分成兩部分,同時需要找到一部分管道元件作為兩進(jìn)程中的公有部分,傳回到主機(jī)端通信傳遞。在此項(xiàng)目組的成員提出一種一維分割方法,該方法將整個管道和非管道數(shù)據(jù)分成兩個部分,管道數(shù)據(jù)按組號被分割為三部分:GroupId=0,GroupId=1 和GroupId=2。把分組GroupId=1 的管道數(shù)據(jù)寫入到DCU0 中,然后將分組GroupId=2 的管道數(shù)據(jù)寫入到DCU1 中,管道分割圖如圖7 所示。從圖7 可以看出,管道數(shù)據(jù)被相對均勻地分配到了兩塊DCU 加速器中,在兩塊DCU 中有一部分管道數(shù)據(jù)GroupId=0屬于兩塊DCU 中的公有部分。這一部分?jǐn)?shù)據(jù)需要同時寫入到兩塊DCU 中,GroupId=0 的管道數(shù)據(jù)作為連接兩部分管道數(shù)據(jù)的橋梁,在管道元件和非管道元件計算5 000 次后,將GroupId=0 的管道數(shù)據(jù)從DCU0 中傳回到主機(jī)端進(jìn)行通信,然后再傳回到DCU1中,最后對管道元件刷新,代表一次通信完成。

        圖7 管道分割圖Fig.7 Pipeline segmentation diagram

        3.2 MPI 優(yōu)化

        本節(jié)主要描寫MPI 的具體實(shí)現(xiàn)以及在實(shí)現(xiàn)過程中遇到的問題。

        3.2.1 數(shù)據(jù)類型重定義

        數(shù)據(jù)類型在數(shù)據(jù)結(jié)構(gòu)中的定義是一組性質(zhì)相同的值的集合以及定義在這個值集合上的一組操作的總稱。變量用來存儲值,它們有名字和數(shù)據(jù)類型。結(jié)合供水管網(wǎng)仿真模擬的代碼,管道和非管道元件被封裝成結(jié)構(gòu)體,MPI 需要知道結(jié)構(gòu)體的數(shù)據(jù)類型才能實(shí)現(xiàn)通信傳輸。因此,需要對結(jié)構(gòu)體實(shí)現(xiàn)數(shù)據(jù)類型重定義。

        本文對程序中管道接口和管道的結(jié)構(gòu)體進(jìn)行重定義。首先程序中使用MPI_Datatype 定義新的數(shù)據(jù)類型名稱,通過blocklens 數(shù)組定義管道接口和管道中每個數(shù)據(jù)類型的長度,并根據(jù)oldTypes 數(shù)組描述管道接口和管道舊數(shù)據(jù)的類型,通過MPI_Address指定數(shù)組中每個塊中的偏移量。然后運(yùn)用MPI_Type_struct 生成新的管道接口和管道數(shù)據(jù)類型。最后采用MPI_Type_commit 提交注冊新的數(shù)據(jù)類型&PipeStruct 和&PipePortStruct。

        3.2.2 MPI 實(shí)現(xiàn)過程

        在MPI 信息傳遞接口進(jìn)行通信前,應(yīng)先對分割好的管道元件和非管道元件實(shí)現(xiàn)讀取和寫入操作。利用一維分割方法對各個元件進(jìn)行分割后,通過MPI_Comm_rank()獲取進(jìn)程號,進(jìn)程號控制各個進(jìn)程對非管道元件和管道的讀取,將各自的數(shù)據(jù)分別讀取到各進(jìn)程的結(jié)構(gòu)體數(shù)組中。本文主要使用數(shù)組指針進(jìn)行讀寫操作,數(shù)組指針是動態(tài)分配空間,使用更加靈活,相比直接使用數(shù)組,其代碼擴(kuò)展性更好。在讀寫完成之后,再由hipMemcpy()將其分別傳入到各自的DCU 進(jìn)行計算。由于MPI 的通信是在主機(jī)端進(jìn)行的,需要使用hipMemcpy()來控制設(shè)備端與主機(jī)端之間數(shù)據(jù)的傳輸。圖8 所示為MPI 通信時數(shù)據(jù)傳輸?shù)倪^程。

        圖8 MPI 通信過程Fig.8 MPI communication process

        MPI 在實(shí)現(xiàn)過程中,主機(jī)端使用MPI_Comm_rank()獲取當(dāng)前的進(jìn)程號,調(diào)用hipGetDevice()獲取DCU 加速器的設(shè)備編號,以此確定進(jìn)程編號和設(shè)備編號的對應(yīng)關(guān)系。每個進(jìn)程控制一個DCU,在對應(yīng)的設(shè)備上進(jìn)行數(shù)據(jù)顯存的劃分,完成主機(jī)端向設(shè)備端計算數(shù)據(jù)的傳輸,并各自啟動內(nèi)核函數(shù);每個進(jìn)程設(shè)置自己私有的主機(jī)端和設(shè)備端的數(shù)據(jù)指針,其中管道元件的數(shù)據(jù)被分為三部分,GroupId=0 是公有部分,這一部分管道元件數(shù)據(jù)使用hipMemcpy(DTH)從設(shè)備端傳輸?shù)街鳈C(jī)端被單獨(dú)寫入到Host_PublicPipeArray 數(shù)組中,MPI 在管道和非管道分別計算5 000 次后,將共有數(shù)據(jù)通過DCU 私有的設(shè)備端數(shù)據(jù)指針拷貝回私有主機(jī)端,在私有主機(jī)端進(jìn)行數(shù)據(jù)的通信及更新,并進(jìn)行收斂性檢查,在主機(jī)端中結(jié)束通信后分別拷貝到私有設(shè)備端中,之后對所有非管道元件更新一次。在外循環(huán)進(jìn)程中,進(jìn)程對各自的管道和非管道元件每進(jìn)行5 000 次密集計算都會使用MPI 通信接口進(jìn)行傳輸通信并更新所有元件,直至供水管網(wǎng)模擬計算結(jié)果收斂,計算結(jié)束通信完成。圖9 所示為MPI 通信傳遞實(shí)現(xiàn)過程。

        圖9 MPI 通信實(shí)現(xiàn)過程Fig.9 MPI communication realization process

        從單DCU 加速器擴(kuò)展到多DCU 加速器,由MPI控制多進(jìn)程計算的實(shí)現(xiàn)解決了DCU 自身的偽并行,完成了大規(guī)模數(shù)據(jù)多進(jìn)程的并發(fā)實(shí)現(xiàn)。多DCU 的實(shí)現(xiàn)擴(kuò)大了密集計算的規(guī)模,突破了單DCU 加速器計算資源的限制,對以后大規(guī)模程序的計算需求具有重要意義。

        4 實(shí)驗(yàn)測試

        “嵩山”超級計算機(jī)系統(tǒng)的操作系統(tǒng)為Centos-6.7,集群作業(yè)管理系統(tǒng)為Gridview,CPU 編譯器為gcc/g++-7.3.1,DCU 加速器編譯器為hipcc-2.9.6,MPI 版本為hpcx-2.4.1,CPU 處理器為英特爾?酷睿?i9-9980XE。

        4.1 功能性測試

        本文在“嵩山”超級計算機(jī)平臺單節(jié)點(diǎn)單DCU上進(jìn)行正確性驗(yàn)證。首先對CPU+DCU 異構(gòu)實(shí)現(xiàn)的供水管網(wǎng)模擬仿真計算進(jìn)行小規(guī)模數(shù)據(jù)測試,將記錄模擬出的數(shù)值與管網(wǎng)串行實(shí)現(xiàn)的模擬仿真結(jié)果進(jìn)行比較,經(jīng)對比發(fā)現(xiàn),兩者計算結(jié)果的數(shù)值變化在允許范圍內(nèi),通過了正確性驗(yàn)證。

        4.1.1 異構(gòu)實(shí)現(xiàn)結(jié)果對比

        將供水管網(wǎng)模擬實(shí)現(xiàn)的異構(gòu)版本與在CPU 處理器英特爾?酷睿?i9-9980XE 上的運(yùn)行結(jié)果進(jìn)行對比,為使描述清晰簡潔,將在單DCU 內(nèi)優(yōu)化方法簡稱為方法1,在多DCU 內(nèi)優(yōu)化方法簡稱為方法2。通過輸入小規(guī)模器件數(shù)量和大規(guī)模器件數(shù)量,并在不同的計算平臺上進(jìn)行仿真計算測試。如表1 所示,選取器件規(guī)模數(shù)分別為10 000、30 000。

        表1 不同規(guī)模器件在CPU 和方法1 下的結(jié)果對比Table 1 Comparison of results of different scale devices in CPU and method 1

        由表1 數(shù)據(jù)可以看出,在器件數(shù)為10 000 時,在DCU 加速器上的加速比為5.065,隨著計算規(guī)模的增加,當(dāng)輸入器件數(shù)為30 000 時,加速比達(dá)到了9.833。分析其原因,是因?yàn)樵谛∫?guī)模數(shù)據(jù)計算時,不能充分利用DCU 加速器的并行資源,計算性能有一定幅度的提升,但不能達(dá)到最優(yōu)。當(dāng)器件數(shù)量增多時,DCU加速器在大規(guī)模密集計算的計算優(yōu)勢突出,加速效果明顯提升。實(shí)驗(yàn)結(jié)果證明了CPU+DCU 異構(gòu)實(shí)現(xiàn)的供水管網(wǎng)模擬計算在“嵩山”超級計算機(jī)平臺的單DCU 加速器環(huán)境中,加速效果十分顯著,在保證相同計算精度的前提下,計算速度提升5~10 倍,且管網(wǎng)模型規(guī)模越大,DCU 加速效果則越顯著。

        表2 所示是GPU 異構(gòu)平臺上的運(yùn)行結(jié)果與方法1進(jìn)行對比,加速比提升了2~3 倍??梢钥闯?,在“嵩山”超級計算機(jī)上的移植相比顯卡為GT 730 的GPU異構(gòu)平臺仍有顯著的優(yōu)勢。

        表2 不同規(guī)模器件在GPU 和方法1 下的結(jié)果對比Table 2 Comparison of results of different scale devices in GPU and method 1

        本節(jié)實(shí)驗(yàn)驗(yàn)證了供水管網(wǎng)模擬仿真系統(tǒng)在不同平臺的測試結(jié)果,表明“嵩山”超級計算機(jī)更適合于大規(guī)模仿真計算,且其相對于以往實(shí)施x86 平臺或GPU 異構(gòu)平臺,計算性能都有明顯提升。

        4.1.2 多DCU(方法2)實(shí)現(xiàn)測試分析

        由于越來越多管道的建立,管網(wǎng)拓?fù)鋸?fù)雜,計算量大,單DCU 的計算規(guī)模已經(jīng)不能滿足龐大的管網(wǎng)數(shù)據(jù)計算量。本節(jié)基于MPI+HIP 模型選擇供水管網(wǎng)仿真計算在多DCU 上的實(shí)現(xiàn)進(jìn)行實(shí)驗(yàn),將在單DCU 上管網(wǎng)模擬仿真運(yùn)行的時間作為基準(zhǔn),測試該模擬程序在單節(jié)點(diǎn)內(nèi)多個DCU 上運(yùn)行的并行效率,如表3 所示。

        表3 不同規(guī)模器件在方法1 和方法2 下的結(jié)果對比Table 3 Comparison of results of different scale devices under method 1 and method 2 s

        在輸入管器件數(shù)量分別為10 000、30 000 時,DCU 單卡加速與DCU 多卡加速速度相當(dāng),多卡加速效果略優(yōu)于單卡,但當(dāng)面對超大規(guī)模管網(wǎng)模型時,多卡加速效果將明顯優(yōu)于單卡環(huán)境。原因是由于在MPI 進(jìn)行通信傳輸時,需要將管網(wǎng)中管道和非管道元件從設(shè)備端傳輸?shù)街鳈C(jī)端進(jìn)行數(shù)據(jù)通信,然后再傳回到設(shè)備端。在輸入規(guī)模少的管道和非管道數(shù)據(jù)進(jìn)行計算時,使用hipMemcpy()進(jìn)行傳輸所占用的時間較長,核函數(shù)內(nèi)密集計算占比較小,性能提升不明顯,但是隨著輸入管網(wǎng)規(guī)模的增大,在核函數(shù)內(nèi)計算占比遠(yuǎn)超過傳輸占比時,加速比取得大幅提升。

        表4 所示是將在CPU 加速器上的運(yùn)行結(jié)果與DCU 多卡加速結(jié)果進(jìn)行對比,加速比提升了5~10 倍。從表4 可以看出,將數(shù)據(jù)規(guī)模擴(kuò)展到多塊DCU 中測試結(jié)果取得較優(yōu)的性能,隨著規(guī)模的擴(kuò)大,加速比與規(guī)模的擴(kuò)大成正比。

        表4 不同規(guī)模器件在CPU 和方法2 下的結(jié)果對比Table 4 Comparison of results of different scale devices under CPU and method 2

        實(shí)驗(yàn)結(jié)果證明了基于HIP 編程模型和MPI 實(shí)現(xiàn)的供水管網(wǎng)模擬仿真計算在“嵩山”超級計算機(jī)系統(tǒng)的多DCU 上具有良好的可拓展性,對供水管網(wǎng)在“嵩山”超級計算機(jī)平臺上實(shí)現(xiàn)規(guī)模擴(kuò)展具有重要的意義。

        5 結(jié)束語

        本文利用HIP-C 語言實(shí)現(xiàn)供水管網(wǎng)模擬仿真計算在“嵩山”超級計算機(jī)平臺的移植,通過對管道和非管道元件的數(shù)據(jù)進(jìn)行劃分,并基于CPU+DCU 異構(gòu)架構(gòu),利用HIP 編程模型和消息傳遞接口控制DCU 的并發(fā)和多進(jìn)程之間數(shù)據(jù)的通信傳遞,擴(kuò)展管網(wǎng)仿真計算的規(guī)模,同時提升模擬實(shí)現(xiàn)的效率。實(shí)驗(yàn)結(jié)果驗(yàn)證了本文優(yōu)化方法的有效性。下一步將進(jìn)行管網(wǎng)內(nèi)核函數(shù)計算部分的優(yōu)化工作,研究擴(kuò)展核函數(shù)內(nèi)管道和非管道元件的并行特性,以達(dá)到提升管網(wǎng)仿真計算性能的目標(biāo)。

        猜你喜歡
        進(jìn)程
        債券市場對外開放的進(jìn)程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        改革開放進(jìn)程中的國際收支統(tǒng)計
        中國外匯(2019年8期)2019-07-13 06:01:06
        快速殺掉頑固進(jìn)程
        社會進(jìn)程中的新聞學(xué)探尋
        我國高等教育改革進(jìn)程與反思
        Linux僵死進(jìn)程的產(chǎn)生與避免
        講效率 結(jié)束進(jìn)程要批量
        電腦迷(2012年24期)2012-04-29 00:44:03
        男女平等進(jìn)程中出現(xiàn)的新矛盾和新問題
        俄羅斯現(xiàn)代化進(jìn)程的阻礙
        論文萊的民族獨(dú)立進(jìn)程
        成人免费va视频| 一本久久综合亚洲鲁鲁五月天| 一区二区三区av波多野结衣| 四虎成人精品无码永久在线| 校花高潮一区日韩| 亚洲一区二区在线观看av| 国产成人a∨激情视频厨房| 少妇厨房愉情理伦片免费| 97色综合| 在线视频一区二区国产| 欧美村妇激情内射| 中文字幕人妻偷伦在线视频| 在线观看av片永久免费| 亚洲一区亚洲二区视频在线| 国产人妻熟女高跟丝袜图片| 亚洲国产成人久久综合一区77| 亚洲区精品久久一区二区三区女同 | 国产sm调教视频在线观看| 无码天堂亚洲国产av麻豆| 国产自拍精品在线视频| 一边摸一边抽搐一进一出口述| 越南女子杂交内射bbwxz| 亚洲综合网站精品一区二区| 手机在线免费观看的av| 亚洲国产一区二区三区在线观看| 欧美日本日韩aⅴ在线视频| 亚洲精品一区二区在线播放| 免费视频无打码一区二区三区| 吃奶摸下激烈床震视频试看| 国产九色AV刺激露脸对白| 中文字幕日韩精品中文字幕| 少妇伦子伦情品无吗| 一二三四在线视频社区3| 日本中文字幕一区二区在线观看| 一区二区三区天堂在线| 亚洲精品久久久久久久久av无码| 国产va在线播放| 国产黑丝美女办公室激情啪啪| 377p日本欧洲亚洲大胆张筱雨| 99久久久精品免费香蕉| 亚洲av日韩精品一区二区|