999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種面向高性能計算的性能分析工具設計與實現(xiàn)

2019-07-15 01:52:18張?zhí)祺?/span>
現(xiàn)代計算機 2019年16期
關鍵詞:程序分析系統(tǒng)

張?zhí)祺?/p>

(國家超級計算天津中心,天津 300457)

0 引言

高性能計算的發(fā)展水平,是一個國家信息化發(fā)展程度的重要指標,它對于鞏固國防、促進經(jīng)濟和科技的發(fā)展有著十分重要的意義。近年來,超級計算機不斷推陳出新,高性能計算應用得到了越來越完善的硬件支持,各個領域的數(shù)值模擬研究逐漸趨向更大的規(guī)模、更高的復雜度和更加精細的尺度發(fā)展。

隨著軟件計算規(guī)模的增加,各類性能瓶頸也隨之產(chǎn)生。如存儲、計算、I/O和通信等方面的缺陷,在不同程度上制約了軟件的可擴展性。為了定位和分析這些性能瓶頸,眾多科研團隊和商業(yè)公司開發(fā)了不同的性能分析工具。然而,目前已有的性能分析工具往往只針對串行程序或小規(guī)模并行程序,對高性能計算軟件的適用性不強,且這些工具的功能較為單一,難以滿足軟件調(diào)試的需求,這造成了仿真研發(fā)人員在大尺度和大規(guī)模程序優(yōu)化上的困難。

本文參考開源庫PDToolkit和TAU[1-3]的設計思路,并在其基礎上進行功能擴展,同時集成了多款系統(tǒng)級性能分析工具,形成一套自主的性能分析工具,期望為超級計算平臺上的性能分析工作提供便利。同時,以典型的物理學大規(guī)模核聚變模擬軟件GTC為例,在E級計算機“天河三號”原型機上進行了測試和驗證。通過本文工作,將獲得一個適用于高性能計算的性能分析工具,可以從程序熱點、浮點運算、內(nèi)存以及CPU使用等方面對軟件的運行情況給出綜合評價,能夠為高性能計算軟件優(yōu)化提供全面的數(shù)據(jù)參考。

1 相關工作

1.1 性能分析方法

性能分析是指在程序運行過程中采集各種相關信息,通過提取分析這些信息,來獲得被測程序在運行時的行為特征,以便于開發(fā)人員找出程序可能存在的性能缺陷,從而做出相應的改進和優(yōu)化,達到提升運行效率的目的。性能分析涉及大量的分析和調(diào)試工作,從底層參數(shù)采集和記錄,到數(shù)據(jù)的統(tǒng)計、歸納和分析,最后到分析結果的可視化展示等過程,都需要分析工具的支持。這些工具種類繁多,目前高性能計算領域常見的有數(shù)十種,按照采集的參數(shù)層次的不同可以分為兩類:一是系統(tǒng)級性能分析工具;二是應用級性能分析工具。

系統(tǒng)級性能分析工具在程序運行過程中,從計算機系統(tǒng)底層采集各種性能參數(shù),從而反映出系統(tǒng)的負載情況,例如磁盤讀寫、內(nèi)存消耗以及網(wǎng)絡帶寬,等等。典型的工具有:Collectl、Perf以及Darshan,等等,這些工具結構簡單,具有很好的兼容性和穩(wěn)定性,在高性能計算領域應用廣泛。其缺點是只能用于評估系統(tǒng)狀態(tài),無法從代碼層面上做出分析和評價,開發(fā)人員很難直接得到針對軟件模塊的分析結果。

應用級性能分析工具通過在被測程序中植入特定的采集代碼,隨著程序運行而獲取指定模塊的性能參數(shù),從而反映出該模塊的行為特征,如通信頻率、I/O性能、執(zhí)行時間和調(diào)用次數(shù),等等。典型的應用級性能分析工具如英特爾公司發(fā)布的Intel VTune Amplifier和由俄勒岡州大學性能分析研究實驗室等研究機構合作開發(fā)的 TAU(Tuning and Analysis Utilities),這些工具具有功能豐富、采集信息全面和自動化程度高的優(yōu)點,為性能分析工作提供了一定的便利。

然而,應用級性能分析工具對使用者提出了比系統(tǒng)級更高的要求。以Intel VTune Amplifier為代表的商業(yè)軟件在使用時存在諸多限制,且用戶不掌握其內(nèi)部代碼,從而無法對分析過程進行有效跟蹤。而以TAU為代表的開源軟件,一般采用庫介入的方式配合代碼植入,改變了被測程序的編譯過程,在兼容性和穩(wěn)定性上存在一定的缺陷,需要用戶根據(jù)實際需求修改和調(diào)試代碼,以適應復雜的底層系統(tǒng)環(huán)境。

1.2 自主開發(fā)的性能分析工具

不同的研究領域?qū)π阅芊治龅男枨笠哺饔胁煌H缬嬎銠C網(wǎng)絡領域主要關注網(wǎng)絡的帶寬、延遲和吞吐等特性;計算機芯片和CPU等硬件領域則側重于主頻、浮點性能和功耗等性能參數(shù);而高性能計算領域主要關注的是程序的計算規(guī)模、可擴展性和并行效率等問題。因此,眾多不同領域的學者和科研人員開發(fā)了具有行業(yè)針對性的性能分析工具。

2011年,張拓宇、肖海力、遲學斌[4]針對網(wǎng)格計算應用軟件提出了一個集信息收集、分析和展示于一體的性能分析工具設計和實現(xiàn)方法,在提升分析效率,降低開銷方面對本文有較高的參考價值。2013年,張惠臻、王超、陳雁[5]基于GNU性能分析工具gprof,開發(fā)了一款面向嵌入式領域交叉開發(fā)環(huán)境的嵌入式性能分析工具Cross-Profiler,基于已有的軟件框架,在數(shù)據(jù)采集和處理能力方面作出優(yōu)化,為分析工具的架構設計提供了參考。2018年馮赟龍、劉勇、何王全[6]提出一種基于深度學習的程序性能分析框架,用于指導分析深度學習軟件的性能瓶頸,在提取程序負載特征和提升效率方面,給出了很好的示范。

由此可見,在現(xiàn)有的性能分析理論指導下,充分借鑒開源工具的技術和方法,開發(fā)自主的性能分析工具,是針對大規(guī)模數(shù)值模擬軟件性能分析的有效手段。

2 設計與實現(xiàn)

圖1 性能分析工具軟件框架

如圖1所示,本文所設計的軟件框架主要包括三個部分:

一是代碼植入模塊。該模塊首先基于PDTookit對被測程序的源代碼進行解析,識別源碼的特定語句,并在相應位置作出標記,保存為解析文件。通過設定采集信息的范圍,用戶可以選擇感興趣的部分代碼。接著,基于解析文件向被測程序植入具有信息采集和記錄功能的相關代碼,生成新的源碼文件,用戶通過庫介入的方式加載工具進行編譯,生成可執(zhí)行文件。最后,為了實時采集底層系統(tǒng)的參數(shù),將多個系統(tǒng)級分析模塊如CollectL、Darshan等以批處理腳本的方式做定制化集成,實現(xiàn)采集內(nèi)存、磁盤讀寫、CPU使用率等系統(tǒng)狀態(tài)信息等功能。

二是信息采集和處理模塊。被測程序運行過程中,由CPU硬件支持可以獲得系統(tǒng)狀態(tài)數(shù)據(jù),如物理內(nèi)存、進程、CPU利用率情況。通過指令計數(shù)器可以對特定的系統(tǒng)事件進行統(tǒng)計,如浮點運算、L1/L2cache命中等。在軟件層面,通過插樁獲得函數(shù)運行時間和通信開銷、函數(shù)調(diào)用次數(shù)和調(diào)用關系等。這些數(shù)據(jù)將以計算節(jié)點為單位記錄在本地,從而建立起節(jié)點狀態(tài)和程序運行狀態(tài)的實時對應關系,為分析和優(yōu)化被測程序提供必要的信息。

三是可視化模塊。高性能計算應用程序一般在多個計算節(jié)點上并發(fā)運行,包含了從數(shù)十到數(shù)百乃至成千上萬個并行進程,由分析工具產(chǎn)生的大量數(shù)據(jù)記錄僅靠人力進行逐條分析是十分困難的。借助于可視化工具對分析數(shù)據(jù)進行統(tǒng)計和整理,集成后處理工具Paraprof分析被測程序架構,生成函數(shù)調(diào)用關系示意圖。基于PAPI將生成的性能參數(shù)日志文件標準化,通過繪圖工具轉化為圖表,以簡潔直觀的方式呈現(xiàn)給用戶。

3 測試結果與分析

以典型的物理學大規(guī)模核聚變模擬軟件GTC為例,在E級計算機“天河三號”原型機上進行大規(guī)模性能分析測試,從而對本程序針對大規(guī)模高性能計算應用的分析能力進行驗證。

3.1 測試軟件與環(huán)境

測試系統(tǒng)選用E級計算機“天河三號”原型機,該系統(tǒng)采用“邁創(chuàng)”眾核處理器Matrix-2000+,麒麟Linux-3.14.57操作系統(tǒng),每個計算節(jié)點配備32核CPU,64GB內(nèi)存,節(jié)點間采用自主天河高速互聯(lián)網(wǎng)絡連接。軟件環(huán)境方面基于GCC-4.9.1編譯器和MPICH-3.2.1并行庫,是非常具有代表性的高性能計算環(huán)境。

GTC(Gyrokinetic Toroidal Code)是一種回旋動力學環(huán)形粒子模擬軟件。該軟件基于粒子云網(wǎng)格方法,主要用于研究模擬核聚變過程中多模式多尺度的全域等離子體湍流和運輸過程。GTC軟件基于C/Fortran語言,依賴于MPI并行編程環(huán)境,是超級計算平臺上典型的大規(guī)模并行數(shù)值軟件。本章測試中所求解的物理問題是磁約束聚變模擬中的“物理模擬”,基于第一性原理方程,通過大規(guī)模運算來預測等離子體的運動過程[7]。

測試采用了GTC軟件的計算性能評估算例,共使用了1280個CPU核,在80個計算節(jié)點上運行作業(yè),每個計算節(jié)點上開啟16個進程,測試運行總時間為1小時18分。下面詳細說明測試結果和各類性能參數(shù)的分析情況。

圖2 GTC程序結構圖

3.2 測試結果

(1)函數(shù)追蹤與系統(tǒng)狀態(tài)

程序結構是軟件系統(tǒng)的抽象模式,用于指導軟件各個方面的設計和優(yōu)化。高性能計算應用程序結構相對復雜,代碼數(shù)量較大,所采用的編程語言也各不相同,依靠人力去總結和梳理程序結構十分困難。基于開源的代碼識別庫構建程序結構分析模塊,自動生成函數(shù)之間的調(diào)用關系圖,為程序結構分析提供幫助。

圖2展示了由結構分析模塊生成的GTC程序結構圖,可見該程序采用了非常簡潔清晰的結構化程序設計,自頂部向下共有4層結構。采用單向箭頭來表示函數(shù)的調(diào)用關系,同時也對這些函數(shù)在代碼中的位置做出了標記,以便于用戶查找和編輯代碼。程序結構圖可以顯示出程序的框架結構,但無法提供程序在時間上的實際運行軌跡,而這一功能可以通過函數(shù)追蹤來實現(xiàn)。

圖3 函數(shù)追蹤界面

圖3展示了函數(shù)追蹤功能的可視化頁面,橫軸表示時間,單位是秒,縱軸表示進程標號,矩形塊表示函數(shù)在時間軸上的覆蓋范圍。各個進程的函數(shù)運行情況基本相似,這里顯示編號為0-3的進程作為例子,選取了PUSHI、LOAD和CHARGEI三個函數(shù)分析,可以看出LOAD函數(shù)僅在程序初始的一段時間內(nèi)執(zhí)行,而PUSHI和CHARGEI大約從200s開始執(zhí)行,直到程序結束,幾乎覆蓋了程序90%以上的運行時間。

圖4 系統(tǒng)狀態(tài)信息界面

圖4是通過系統(tǒng)級分析模塊所獲得的單節(jié)點系統(tǒng)狀態(tài)圖表,顯示了編號為0的節(jié)點上內(nèi)存、CPU和網(wǎng)絡狀態(tài)信息。可以看出CPU核的使用率始終接近100%;單節(jié)點上的內(nèi)存使用量逐漸增加,最后趨于穩(wěn)定,最高使用量為6.4GB,約占總內(nèi)存的20%左右;網(wǎng)絡方面可以看出進程間的通信量極少,說明該程序更偏向與任務型并發(fā)模式。將這些信息與函數(shù)追蹤數(shù)據(jù)相結合,能夠幫助分析不同函數(shù)在系統(tǒng)層面上所表現(xiàn)出的特異性。

(2)計算熱點與運算量分析

計算熱點是指程序運行中耗時最多的部分,在一定程度上可以反映出應用的性能瓶頸,通過分析和優(yōu)化計算熱點,能夠有效地提升運行速度,因此計算熱點是軟件優(yōu)化中最重要的參考指標之一。

圖5是GTC程序主要模塊的運行時間統(tǒng)計圖。其中Function坐標軸表示不同的模塊名稱;Process坐標軸表示不同的進程編號;Time坐標軸表示模塊運行總時間,單位是秒。從圖中可以看出,兩個計算熱點分別是PUSHI模塊和CHARGEI模塊,其中PUSHI模塊耗時最多,約占總運行時間的49.8%,CHARGEI模塊次之,約占總運行時間的32.1%。因此,針對這兩個模塊作進一步的負載分析和并行優(yōu)化是更有價值的。

圖5 計算熱點分析界面

浮點運算速度是衡量超級計算機性能的一項重要指標。對于一般的高性能計算應用而言,其計算密集程度不高,所以其浮點運算速度往往無法達到超級計算機的性能峰值。然而通過監(jiān)測某些計算密集的函數(shù)模塊來得到應用程序局部的浮點運算速度,可以對程序的實際運算能力做出有效評估。

圖6是GTC程序主要模塊的浮點運算次數(shù)統(tǒng)計圖。其中Function、Process坐標軸分別表示模塊名稱和進程編號,而Counts坐標軸則表示模塊執(zhí)行浮點運算的總次數(shù)。從圖5可以看出,浮點運算次數(shù)最高的兩個模塊依然是PUSHI和CHARGEI模塊,說明這兩個模塊不僅最為耗時,而且具有非常高的計算負載量。結合圖5和圖6得出PUSHI和CHARGEI模塊在單位時間內(nèi)的單核浮點運算量,即這兩個模塊實際運行中的運算速度表現(xiàn)。

圖6 浮點運算速度分析界面

4 結語

本文提出了一種面向高性能計算的性能分析方法,參考代碼分析框架PDTookit和TAU的設計思想,基于PAPI、CollectL和Darshan等開源系統(tǒng)工具,設計并實現(xiàn)了一個綜合性強的自動化性能分析工具,能夠?qū)Ω咝阅苡嬎銘贸绦虻倪\行狀態(tài)作出分析和評價,為用戶進一步優(yōu)化程序提供了全面、可靠的數(shù)據(jù)參考。下一步的工作一方面是分析和評估測試工具對被測程序的性能影響程度,盡量減小測試模塊的系統(tǒng)開銷;另一方面是基于采集到的各類信息進一步挖掘數(shù)據(jù)價值,向用戶提供更加完善和高質(zhì)量的分析結果。

猜你喜歡
程序分析系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
隱蔽失效適航要求符合性驗證分析
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
電力系統(tǒng)不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
“程序猿”的生活什么樣
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
電力系統(tǒng)及其自動化發(fā)展趨勢分析
主站蜘蛛池模板: 亚洲Va中文字幕久久一区| 精品国产网站| 国产青榴视频| 国产福利一区在线| 国产特级毛片aaaaaa| 青青青国产免费线在| 国产无码高清视频不卡| 无码高潮喷水专区久久| 国产一区二区三区免费观看| 久久无码av三级| 91无码视频在线观看| 国产第二十一页| 亚洲av成人无码网站在线观看| 国产电话自拍伊人| 免费日韩在线视频| 亚洲精品无码不卡在线播放| 国内精品久久久久久久久久影视 | 亚洲无码在线午夜电影| 日韩无码白| 一本综合久久| 国产福利免费视频| 成人福利在线免费观看| 中文字幕人成乱码熟女免费| 国产夜色视频| 国产18在线播放| 国模在线视频一区二区三区| 国产内射一区亚洲| 91色国产在线| 欧美a在线看| 亚洲人成人无码www| 白丝美女办公室高潮喷水视频| 黄色网站在线观看无码| 国产午夜一级淫片| 一本一本大道香蕉久在线播放| 在线中文字幕日韩| 亚洲另类国产欧美一区二区| 久久五月视频| 人妻精品久久无码区| 女人18毛片一级毛片在线| 亚洲成人播放| 久久这里只有精品免费| 免费亚洲成人| 老司国产精品视频| 日本不卡视频在线| 国产xxxxx免费视频| 精品国产亚洲人成在线| 9966国产精品视频| 亚洲无码在线午夜电影| 久久动漫精品| 久久精品亚洲热综合一区二区| 亚洲人在线| 欧美伊人色综合久久天天| 一本色道久久88亚洲综合| 77777亚洲午夜久久多人| 欧美亚洲另类在线观看| 久久综合九色综合97网| 亚洲精品第一页不卡| 日韩精品一区二区三区中文无码 | 香蕉综合在线视频91| 亚洲制服丝袜第一页| 久久网欧美| 国产欧美日韩18| 色综合激情网| 中文字幕乱码二三区免费| 亚洲无码不卡网| h视频在线观看网站| 亚洲精品成人福利在线电影| 久久成人免费| 亚洲清纯自偷自拍另类专区| 三上悠亚在线精品二区| 国产丝袜第一页| 人人艹人人爽| 国产乱子伦手机在线| 男人天堂伊人网| 美女裸体18禁网站| 精品国产成人三级在线观看| 日本精品视频一区二区 | 538精品在线观看| 亚洲欧美日韩精品专区| 国产精品专区第1页| 日韩国产黄色网站| 99成人在线观看|