一種基于觸發(fā)操作的Barrier操作性能分析方法
【專利摘要】本發(fā)明公開了一種基于觸發(fā)操作的Barrier操作性能分析方法,其實施步驟如下:1)根據(jù)執(zhí)行Barrier操作的數(shù)據(jù)傳輸關(guān)系生成觸發(fā)操作拓撲樹;2)將Barrier操作采用指令流的方式描述為原語序列;3)分析觸發(fā)操作的自動執(zhí)行部件的數(shù)據(jù)通信開銷;4)根據(jù)數(shù)據(jù)通信開銷計算進程集合中每一個進程的Barrier操作對應(yīng)原語序列的執(zhí)行時間;5)選擇執(zhí)行時間最長的進程的執(zhí)行時間作為分析得到的最小執(zhí)行時間。本發(fā)明能夠在不需要在并行計算機上運行Barrier算法的情況下估算出該Barrier算法的性能,具有Barrier算法設(shè)計和測試的復(fù)雜度低、Barrier算法運行測試機時少的優(yōu)點。
【專利說明】一種基于觸發(fā)操作的Barrier操作性能分析方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及并行計算機互連網(wǎng)絡(luò)的Barrier操作設(shè)計領(lǐng)域,具體涉及一種基于觸 發(fā)操作的Barrier操作性能分析方法。
【背景技術(shù)】
[0002] 近年來,隨著高性能計算技術(shù)的發(fā)展,并行計算機的系統(tǒng)規(guī)模不斷擴大。面向高性 能并行計算機,廠商和科研機構(gòu)開始研究更快并且功能更加強大的互連網(wǎng)絡(luò)。一方面,網(wǎng)絡(luò) 的帶寬逐漸增大、延遲逐漸降低;另一方面,操作系統(tǒng)和其上應(yīng)用軟件使用互連網(wǎng)絡(luò)的軟件 開銷占用網(wǎng)絡(luò)通信的時間比例逐漸增大。
[0003] 然而隨著并行程序的并行度的擴張,聚合操作占用程序執(zhí)行時間的比例逐漸增 大,為提高并行程序的執(zhí)行效率,需要迫切提高聚合操作的執(zhí)行效率。消息傳遞編程接口標 準3 (Message Passing Interface 3,簡稱MPI-3)定義了多種聚合操作類型,例如:柵欄同 步(Barrier)、廣播(Beast)和規(guī)約(Reduce)等。其中Barrier操作(柵欄同步操作)對 延遲最為敏感。對于Barrier操作而言,柵欄同步的語義是一個進程集合的所有進程都進 入柵欄同步操作后,該進程集合中的進程才可以退出柵欄同步操作。
[0004] 為了更加高效的支持MPI-3所定義的聚合通信操作,目前已經(jīng)有多種高性能計算 機所使用的互連網(wǎng)絡(luò)設(shè)計了專門部件來加速聚合通信操作。例如IBM公司的藍色基因系列 并行計算機、Cray公司的XT和XC系列并行計算機、國防科學(xué)技術(shù)大學(xué)研制的天河系列并 行計算機。其中,天河系列并行計算機在其互聯(lián)網(wǎng)絡(luò)中嵌入了基于觸發(fā)操作的自動執(zhí)行機 制。
[0005] 基于觸發(fā)操作的聚合通信自動執(zhí)行機制由論文"Fast NIC-based Barrier over Myrinet/GM(2001) " 和"Broadcast/multicast over Myrinet using NIC-assisted multidestination messages (2000) "首先針對Myrinet互聯(lián)網(wǎng)絡(luò)而提出,其基本思想是在 互聯(lián)網(wǎng)絡(luò)接口卡(Network Interface Card,簡稱NIC)中加入根據(jù)收到的網(wǎng)絡(luò)報文而自動 執(zhí)行的功能。根據(jù)此功能,一個"父親"節(jié)點可以把一個報文發(fā)給"兒子"節(jié)點,"兒子"節(jié)點 的NIC收到該報文的同時會自動的把該報文發(fā)送給"孫子"節(jié)點。這樣,"兒子"節(jié)點把報文 發(fā)送給"孫子"節(jié)點的動作就不是由"兒子"節(jié)點的處理器主動發(fā)起執(zhí)行,從而降低了集合 操作的等待延遲,提高了集合操作的性能。
[0006] 美國專利文獻 US8122228B2 "BROADCASTING COLLECTIVE OPERATION CONTRIBUTIONS THROUGHPUT A PARALLEL COMPUTER" 針對 IBM 公司的藍色基因系列并行計 算機的互聯(lián)網(wǎng)絡(luò),使用其"Collective Operation Network"(在NIC上集成的一種具有基 于觸發(fā)操作的聚合通信自動執(zhí)行部件),針對特殊的互聯(lián)網(wǎng)絡(luò)拓撲,優(yōu)化數(shù)據(jù)傳輸型集合操 作的方法。但是,該專利文獻沒有給出基于觸發(fā)操作的聚合通信的性能分析方法,導(dǎo)致該專 利的優(yōu)化方法無法獲取聚合通信操作的最小執(zhí)行時間。
[0007] 綜上所述,當前的專利與文獻中未見高性能并行計算機的互聯(lián)網(wǎng)絡(luò)中,基于觸發(fā) 操作的Barrier聚合通信的性能分析方法的相關(guān)報道,在高性能計算機互聯(lián)網(wǎng)絡(luò)設(shè)計、 并行程序性能分析、高性能計算機系統(tǒng)性能評估領(lǐng)域中,迫切需要一種基于觸發(fā)操作的 Barrier聚合通信的性能分析方法。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明要解決的技術(shù)問題是:針對現(xiàn)有技術(shù)的上述技術(shù)問題,提供一種能夠在不 需要在并行計算機上運行Barrier算法的情況下估算出該Barrier算法的性能,Barrier算 法設(shè)計和測試的復(fù)雜度低、Barrier算法運行測試機時少,能夠用于指導(dǎo)并行計算機通信網(wǎng) 絡(luò)拓撲設(shè)計、Barrier通信算法設(shè)計、并行程序性能優(yōu)化以及高性能計算機系統(tǒng)性能評估等 重要領(lǐng)域的基于觸發(fā)操作的Barrier操作性能分析方法。
[0009] 為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
[0010] -種基于觸發(fā)操作的Barrier操作性能分析方法,其實施步驟如下:
[0011] 1)根據(jù)執(zhí)行Barrier操作的進程集合中所有進程的數(shù)據(jù)傳輸關(guān)系生成觸發(fā)操作 拓撲樹,所述觸發(fā)操作拓撲樹中每一個節(jié)點為一個計算節(jié)點,且每一個計算節(jié)點均有一個 全局唯一的數(shù)字編號,該數(shù)字編號表示所述計算節(jié)點對應(yīng)進程的進程順序號;
[0012] 2)將Barrier操作以進程為單位采用指令流的方式描述為原語序列;
[0013] 3)分析觸發(fā)操作的自動執(zhí)行部件的數(shù)據(jù)通信開銷,所述數(shù)據(jù)通信開銷包括發(fā)送開 銷、傳輸開銷和接收開銷;
[0014] 4)根據(jù)所述數(shù)據(jù)通信開銷計算所述進程集合中每一個進程的Barrier操作對應(yīng) 原語序列的執(zhí)行時間;
[0015] 5)選擇執(zhí)行時間最長的進程的執(zhí)行時間作為分析得到的最小執(zhí)行時間。
[0016] 優(yōu)選地,所述步驟2)中的原語序列包括Start、End、Recv from、Send to、Wait共 五種原語;Start用于表示原語序列的開始;End用于表示原語序列的結(jié)束;Recv from帶有 參數(shù)node,用于表示從計算節(jié)點node收取一個數(shù)據(jù)報文,指令執(zhí)行完時數(shù)據(jù)報文可能到達 也可能沒有到達;Send to帶有參數(shù)node,用于表示向計算節(jié)點node發(fā)出一個數(shù)據(jù)報文,指 令執(zhí)行完時,數(shù)據(jù)報文只是發(fā)送到發(fā)送端的網(wǎng)絡(luò)接口,不一定到達接收方;Wait用于表示 等待上個原語區(qū)間的所有Recv from操作執(zhí)行完成,Wait指令的原語區(qū)間包括從上次Wait 操作或Start開始,到本次Wait指令結(jié)束。
[0017] 優(yōu)選地,所述步驟2)中將Barrier操作以進程為單位采用指令流的方式描述為原 語序列時,根據(jù)所述觸發(fā)操作拓撲樹中的拓撲關(guān)系,將Barrier操作的收集階段和通知階 段通過中間節(jié)點分步實現(xiàn)根節(jié)點和葉節(jié)點之間的報文發(fā)送和接收,且每一步中每個節(jié)點最 多發(fā)送或接收一個報文;在收集階段,每一個節(jié)點分別收集所有子節(jié)點的通知報文并發(fā)往 父節(jié)點,并最終匯集到根節(jié)點;在通知階段,根節(jié)點先把通知報文廣播給自己的子節(jié)點,一 個節(jié)點收到父節(jié)點的通知報文后再依次向所有子節(jié)點廣播,最終將通知報文傳達到所有葉 節(jié)點。
[0018] 本發(fā)明基于觸發(fā)操作的Barrier操作性能分析方法具有下述優(yōu)點:本發(fā)明針 對基于觸發(fā)操作的Barrier聚合通信的并行計算機,能夠在不需要在并行計算機上運行 Barrier算法的情況下估算出該Barrier操作的性能,減少了 Barrier算法設(shè)計和測試的復(fù) 雜度,減少了手工進行Barrier算法運行測試的機時。針對支持基于觸發(fā)操作的Barrier 聚合通信的并行計算機,在設(shè)計Barrier算法的時候只需要知道目標并行計算機的少許參 數(shù)就可以得到Barrier算法在并行計算機的執(zhí)行性能,該性能指標可以反饋給并行計算機 系統(tǒng)的設(shè)計者優(yōu)化網(wǎng)絡(luò)的設(shè)計,能夠用于指導(dǎo)并行計算機通信網(wǎng)絡(luò)拓撲設(shè)計、Barrier通信 算法設(shè)計、并行程序性能優(yōu)化,以及高性能計算機系統(tǒng)性能評估等重要領(lǐng)域。
【專利附圖】
【附圖說明】
[0019] 圖1為應(yīng)用本發(fā)明實施例的1?性能計算機系統(tǒng)結(jié)構(gòu)不意圖。
[0020] 圖2為應(yīng)用本發(fā)明實施例的高性能計算機系統(tǒng)的計算節(jié)點結(jié)構(gòu)示意圖。
[0021] 圖3為本發(fā)明實施例的基本方法流程示意圖。
[0022] 圖4為本發(fā)明實施例生成的觸發(fā)操作拓撲樹的結(jié)構(gòu)示意圖。
[0023] 圖5為現(xiàn)有技術(shù)基本的Barrier操作的收集階段和通知階段的工作原理示意圖。
[0024] 圖6為本發(fā)明實施例中Barrier操作的收集階段和通知階段的工作原理示意圖。
[0025] 圖7為現(xiàn)有技術(shù)基本的Barrier操作執(zhí)行時間分解示意圖。
[0026] 圖8為本發(fā)明實施例中Barrier操作執(zhí)行時間分解示意圖。
[0027] 圖9為本發(fā)明實施例中數(shù)據(jù)通信開銷的原理示意圖。
【具體實施方式】
[0028] 如圖1所示,本實施例應(yīng)用在國防科大的TH-IA型高性能并行計算機系統(tǒng)來進行 實驗驗證。該高性能并行計算機系統(tǒng)包括管理和登入節(jié)點、計算節(jié)點陣列、高性能互聯(lián)通信 網(wǎng)絡(luò)和全局共享存儲系統(tǒng),其中計算節(jié)點陣列包括128個計算節(jié)點,管理和登入節(jié)點以及 各個計算節(jié)點分別通過高性能互聯(lián)通信網(wǎng)絡(luò)和全局共享存儲系統(tǒng)相連。
[0029] 如圖2所示,每個計算節(jié)點中主存通過系統(tǒng)總線和處理器中的存儲控制器相連, 處理器中的外設(shè)控制器和存儲控制器相互連接,外設(shè)控制器通過PCI總線和網(wǎng)絡(luò)接口單元 相連,網(wǎng)絡(luò)接口單元包括外設(shè)接口部件、點點通信部件、聚合通信部件和網(wǎng)絡(luò)傳輸部件,且 網(wǎng)絡(luò)接口單元通過網(wǎng)絡(luò)傳輸部件連接到高性能互聯(lián)通信網(wǎng)絡(luò)。本實施例中,每個計算節(jié)點 的配置如下:兩個Intel Xeon 5670六核CPU(處理器中包含核0?核5共6個處理內(nèi)核), 每個核的頻率為2. 93GHz,兩個CPU的雙精度浮點計算理論峰值為HOGflops ;高性能互聯(lián) 通信網(wǎng)絡(luò)的雙向物理帶寬為160Gbps、雙向MPI通信帶寬為6. 3GB/s。不同節(jié)點間的發(fā)生開 銷、傳輸開銷、接收開銷使用微測試用例測試獲得。
[0030] 如圖3所示,本實施例基于觸發(fā)操作的Barrier操作性能分析方法的實施步驟如 下:
[0031] 1)根據(jù)執(zhí)行Barrier操作的進程集合中所有進程的數(shù)據(jù)傳輸關(guān)系生成觸發(fā)操作 拓撲樹,觸發(fā)操作拓撲樹中每一個節(jié)點為一個計算節(jié)點,且每一個計算節(jié)點均有一個全局 唯一的數(shù)字編號,該數(shù)字編號表示計算節(jié)點對應(yīng)進程的進程順序號。
[0032] 觸發(fā)操作拓撲樹的節(jié)點分為根節(jié)點、中間節(jié)點和葉節(jié)點,根節(jié)點的就是拓撲樹處 于樹根位置的節(jié)點,根節(jié)點的進程rank號通常為0,葉節(jié)點就是沒有子節(jié)點的結(jié)點,中間節(jié) 點是樹中除了根節(jié)點和葉節(jié)點的所有節(jié)點,中間節(jié)點必須存在子節(jié)點。如圖4所示,本實施 例生成的觸發(fā)操作拓撲樹為Quardnomial (4-nomial)樹,0號節(jié)點(進程順序號為0)為根 節(jié)點,4、8、12號節(jié)點為中間節(jié)點,其余節(jié)點則均為葉節(jié)點,任意兩者之間的邏輯連接為通信 鏈路。
[0033] 2)將Barrier操作以進程為單位采用指令流的方式描述為原語序列。
[0034] 本實施例中,步驟2)中的原語序列包括Start、End、Recv from、Send to、Wait共 五種原語;Start用于表示原語序列的開始;End用于表示原語序列的結(jié)束;Recv from帶 有參數(shù)node,用于表示從計算節(jié)點node收取一個數(shù)據(jù)報文,指令執(zhí)行完時數(shù)據(jù)報文可能 到達也可能沒有到達;Send to帶有參數(shù)node,用于表示向計算節(jié)點node發(fā)出一個數(shù)據(jù)報 文,指令執(zhí)行完時,數(shù)據(jù)報文只是發(fā)送到發(fā)送端的網(wǎng)絡(luò)接口,不一定到達接收方;Wait用于 表示等待上個原語區(qū)間的所有Recv from操作執(zhí)行完成,Wait指令的原語區(qū)間包括從上次 Wait操作或Start開始,到本次Wait指令結(jié)束。本實施例把支持基于觸發(fā)操作Barrier聚 合通信的硬件功能劃分為Start、End、Recv from、Send to、Wait共五種原語,Barrier操 作的基本算法可以由這個五個硬件原語組合實現(xiàn)。從軟硬件接口角度觀察,這個五個硬件 原語分別由五條指令實現(xiàn),軟件把這些原語對應(yīng)的指令寫入到內(nèi)存或者網(wǎng)絡(luò)接口卡的制定 指令緩沖區(qū),網(wǎng)絡(luò)接口卡就可以自動執(zhí)行這些指令?;谶@個五個硬件原語,基于觸發(fā)操作 的Barrier操作就可以以進程為單位,采用指令流(原語序列)的方式描述。軟件(CPU指 令)把指令流寫入到指令緩沖區(qū),網(wǎng)絡(luò)接口卡自動執(zhí)行指令緩沖區(qū)里面的硬件原語,在此 過程中,軟件(CPU)不參與原語流的執(zhí)行,可以執(zhí)行與通信操作(即Barrier操作)無關(guān)的 其它計算,進而降低了計算開銷。
[0035] Barrier操作的語義是一個進程集合的所有進程都進入Barrier操作后,該進程 集合中的進程才可以退出Barrier操作。在Barrier操作的實現(xiàn)過程中,Barrier操作可 以分為兩個階段:收集階段和通知階段。如圖5所示,基本的Barrier操作通過根進程(進 程0)來分別接收所有子進程的通知報文。在收集階段,一個根進程(進程0)收到所有進 程(進程1、進程2、進程3)達到柵欄同步點的通知報文;在通知階段,根進程(進程0)把 退出柵欄操作的通知報文發(fā)送給參與柵欄操作的所有進程(進程1、進程2、進程3),但是 基本的Barrier操作在實現(xiàn)過程中,根節(jié)點容易成為性能的瓶頸。本實施例中,步驟2)中 將Barrier操作以進程為單位采用指令流的方式描述為原語序列時,根據(jù)觸發(fā)操作拓撲樹 中的拓撲關(guān)系,將Barr i er操作的收集階段和通知階段通過中間節(jié)點分步實現(xiàn)根節(jié)點和葉 節(jié)點之間的報文發(fā)送和接收,且每一步中每個節(jié)點最多發(fā)送或接收一個報文;在收集階段, 每一個節(jié)點分別收集所有子節(jié)點的通知報文并發(fā)往父節(jié)點,并最終匯集到根節(jié)點;在通知 階段,根節(jié)點先把通知報文廣播給自己的子節(jié)點,一個節(jié)點收到父節(jié)點的通知報文后再依 次向所有子節(jié)點廣播,最終將通知報文傳達到所有葉節(jié)點。如圖6所示,在收集階段,第一 步為根進程(進程〇)接收進程1的通知、進程2接收進程3的通知,第二步為根進程(進 程〇)接收進程2的通知,從而能夠有效減少根節(jié)點的負載,防止根節(jié)點成為性能的瓶頸。
[0036] 參見圖5,基本Barrier操作的算法是進程0接收來自進程1、進程2、進程3的通 知報文,收齊報文后,再發(fā)送報文通知進程1、進程2、進程3退出Barrier操作。進程0順 序執(zhí)行Recv from 1、Recv from 2、Recv from 3三個操作,但是實際的數(shù)據(jù)到達順序不一 定是首先收到來自進程1的數(shù)據(jù),因為不能假定進程的相對執(zhí)行順序和數(shù)據(jù)在網(wǎng)絡(luò)中的傳 播順序。但是后續(xù)的Wait操作必須在前面三個Recv from操作都收到相應(yīng)的數(shù)據(jù)后才執(zhí) 行完成,Wait操作的阻塞語義保證了 Barrier算法的正確性。進程0?進程3執(zhí)行的原語 序列如表1所示,且基本Barrier操作的執(zhí)行時間分解如圖7所示。
[0037] 表1 :基本Barrier操作下各進程執(zhí)行的原語序列表。
[0038]
【權(quán)利要求】
1. 一種基于觸發(fā)操作的Barrier操作性能分析方法,其特征在于實施步驟如下: 1) 根據(jù)執(zhí)行Barrier操作的進程集合中所有進程的數(shù)據(jù)傳輸關(guān)系生成觸發(fā)操作拓撲 樹,所述觸發(fā)操作拓撲樹中每一個節(jié)點為一個計算節(jié)點,且每一個計算節(jié)點均有一個全局 唯一的數(shù)字編號,該數(shù)字編號表示所述計算節(jié)點對應(yīng)進程的進程順序號; 2) 將Barrier操作以進程為單位采用指令流的方式描述為原語序列; 3) 分析觸發(fā)操作的自動執(zhí)行部件的數(shù)據(jù)通信開銷,所述數(shù)據(jù)通信開銷包括發(fā)送開銷、 傳輸開銷和接收開銷; 4) 根據(jù)所述數(shù)據(jù)通信開銷計算所述進程集合中每一個進程的Barrier操作對應(yīng)原語 序列的執(zhí)行時間; 5) 選擇執(zhí)行時間最長的進程的執(zhí)行時間作為分析得到的最小執(zhí)行時間。
2. 根據(jù)權(quán)利要求1所述的基于觸發(fā)操作的Barrier操作性能分析方法,其特征在于: 所述步驟2)中的原語序列包括Start、End、Recv from、Send to、Wait共五種原語;Start 用于表示原語序列的開始;End用于表示原語序列的結(jié)束;Recv from帶有參數(shù)node,用于 表示從計算節(jié)點node收取一個數(shù)據(jù)報文,指令執(zhí)行完時數(shù)據(jù)報文可能到達也可能沒有到 達;Send to帶有參數(shù)node,用于表示向計算節(jié)點node發(fā)出一個數(shù)據(jù)報文,指令執(zhí)行完時, 數(shù)據(jù)報文只是發(fā)送到發(fā)送端的網(wǎng)絡(luò)接口,不一定到達接收方;Wait用于表示等待上個原語 區(qū)間的所有Recv from操作執(zhí)行完成,Wait指令的原語區(qū)間包括從上次Wait操作或Start 開始,到本次Wait指令結(jié)束。
3. 根據(jù)權(quán)利要求2所述的基于觸發(fā)操作的Barrier操作性能分析方法,其特征在于: 所述步驟2)中將Barrier操作以進程為單位采用指令流的方式描述為原語序列時,根據(jù)所 述觸發(fā)操作拓撲樹中的拓撲關(guān)系,將Barrier操作的收集階段和通知階段通過中間節(jié)點分 步實現(xiàn)根節(jié)點和葉節(jié)點之間的報文發(fā)送和接收,且每一步中每個節(jié)點最多發(fā)送或接收一個 報文;在收集階段,每一個節(jié)點分別收集所有子節(jié)點的通知報文并發(fā)往父節(jié)點,并最終匯集 到根節(jié)點;在通知階段,根節(jié)點先把通知報文廣播給自己的子節(jié)點,一個節(jié)點收到父節(jié)點的 通知報文后再依次向所有子節(jié)點廣播,最終將通知報文傳達到所有葉節(jié)點。
【文檔編號】G06F11/36GK104360936SQ201410553331
【公開日】2015年2月18日 申請日期:2014年10月17日 優(yōu)先權(quán)日:2014年10月17日
【發(fā)明者】廖湘科, 謝旻, 盧宇彤, 所光, 曹宏嘉, 張百達 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)