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

        ?

        并行程序性能和功耗的測(cè)試分析工具研究

        2021-08-02 03:35:26潘曉東孫曉樂鄭文旭
        關(guān)鍵詞:程序分析檢測(cè)

        潘曉東,孫曉樂,鄭文旭,吳 丹

        (國(guó)防科技大學(xué) 計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)

        0 引 言

        高性能計(jì)算(high performance computing,HPC)現(xiàn)在已經(jīng)成為促進(jìn)軍事進(jìn)步、科技創(chuàng)新和經(jīng)濟(jì)發(fā)展的重要手段,無論是科學(xué)計(jì)算還是新興的人工智能都對(duì)HPC的性能提出了新的更高的要求。隨著Dennard縮放效應(yīng)的失效,處理器單核的頻率到達(dá)極限,多核、眾核并行以及異構(gòu)并行成為HPC發(fā)展的趨勢(shì),同時(shí)隨之不斷增長(zhǎng)的能耗成為阻礙HPC發(fā)展的重要因素[1],HPC開始轉(zhuǎn)向高能效并行方向。

        HPC能量有效性提高的策略大致可以分為系統(tǒng)和應(yīng)用兩方面。從系統(tǒng)角度就是調(diào)節(jié)與運(yùn)行相關(guān)的系統(tǒng)硬件參數(shù)或者軟件環(huán)境參數(shù),例如靜態(tài)的基礎(chǔ)架構(gòu)節(jié)能、電路的低功耗設(shè)計(jì)、運(yùn)行時(shí)基于硬件的參數(shù)調(diào)優(yōu)[2];以及系統(tǒng)各部件的動(dòng)態(tài)電源管理技術(shù)(DPM),包括任務(wù)映射(mapping)、器件動(dòng)態(tài)休眠、動(dòng)態(tài)電壓頻率縮放(dynamic voltage and frequency scaling,DVFS)[3]等。而從應(yīng)用角度而言是在應(yīng)用執(zhí)行之前通過對(duì)并行程序本身進(jìn)行優(yōu)化來達(dá)到節(jié)能的目的。包括常用的軟件代碼優(yōu)化、編譯優(yōu)化和運(yùn)行庫優(yōu)化[4]。

        這兩方面策略的制定,都需要對(duì)應(yīng)用進(jìn)行性能和功耗的檢測(cè)分析,并作為基準(zhǔn)對(duì)策略部署后的情況進(jìn)行對(duì)比,以此來迭代修訂策略,同時(shí)在HPC運(yùn)行當(dāng)中往往也需要對(duì)性能和功耗數(shù)據(jù)進(jìn)行檢測(cè)匯總。并行計(jì)算的性能檢測(cè)分析與體系結(jié)構(gòu)、并行算法、并行程序設(shè)計(jì)一同構(gòu)成了并行計(jì)算研究的四大分支。

        長(zhǎng)期以來國(guó)內(nèi)高性能計(jì)算的基礎(chǔ)并行環(huán)境落后于計(jì)算機(jī)系統(tǒng)的發(fā)展[5],軟件的性能分析工具(performance analysis tools,PAT)也是如此。國(guó)內(nèi)出現(xiàn)過一些并行分析工具,如中科院的ParaVT、清華大學(xué)的VIMP、曙光上的Para Vision以及面向云計(jì)算資源監(jiān)控的并行科技的Paramon,盡管使用分析工具對(duì)于理解HPC應(yīng)用中的程序行為、性能瓶頸和優(yōu)化潛力很有幫助,但由于使用太復(fù)雜或者是售價(jià)和推廣的原因,這些工具并沒有流行起來。通過調(diào)查,發(fā)現(xiàn)許多實(shí)驗(yàn)室在進(jìn)行性能和功耗檢測(cè)時(shí),最常用的方法仍是手工插樁(使用時(shí)間戳)輸出日志,再進(jìn)行統(tǒng)計(jì)后處理的方法,這種方法雖然簡(jiǎn)單直觀,但是工作量大,并且得到的信息量過少,缺少對(duì)軟件運(yùn)行的整體認(rèn)識(shí),后續(xù)處理也相對(duì)困難,給并行程序的能耗和性能調(diào)優(yōu)帶來了不便。

        隨著HPC系統(tǒng)復(fù)雜性的提高,以及大規(guī)模應(yīng)用軟件開發(fā)的需要,手工檢測(cè)和分析的方法已經(jīng)不能達(dá)到要求,因此該文介紹了性能和功耗檢測(cè)的原理和相關(guān)工具,并對(duì)4類跟蹤和分析工具進(jìn)行了對(duì)比分析,以便在后續(xù)工作中使用。

        1 性能和功耗檢測(cè)原理

        針對(duì)不同平臺(tái)和不同編程模型,性能和功耗檢測(cè)也有所區(qū)別。并行程序的編程模型分為消息傳遞和共享主存兩種模型,消息傳遞接口(message passing interface,MPI)和OpenMP(open multi-processing)已經(jīng)成為兩種模型的代表,而異構(gòu)計(jì)算引入了在加速器上使用的和OpenMP類似的CUDA(compute unified device architecture)、OpenCL(open computing language)以及OpenACC(open accelerators)?,F(xiàn)在的并行性能和功耗檢測(cè)多集中于采用MPI、OpenMP和CUDA,OpenCL和OpenACC在國(guó)內(nèi)超算集群中應(yīng)用較多,但目前缺乏成體系的檢測(cè)工具。

        1.1 性能檢測(cè)

        計(jì)算機(jī)的理論峰值性能是所有處理器性能的總和,而實(shí)際性能受限于系統(tǒng)和軟件,使得程序執(zhí)行過程中集群有很多處理器處于松弛狀態(tài)(即空閑或阻塞),這樣性能無法達(dá)到最優(yōu),松弛狀態(tài)的功耗也就浪費(fèi)了。如果不能掌握程序的計(jì)算性能、通信狀況、處理器狀態(tài)、內(nèi)存狀態(tài)等性能數(shù)據(jù),對(duì)程序的優(yōu)化調(diào)整就無從下手。HPC程序測(cè)試中通常采用動(dòng)態(tài)測(cè)試的辦法,在中小規(guī)模核心數(shù)目上進(jìn)行實(shí)際運(yùn)行并收集性能數(shù)據(jù),經(jīng)過整理得出分析結(jié)果匯報(bào)給使用者。

        性能檢測(cè)一般分為確定數(shù)據(jù)采集種類、獲取和記錄數(shù)據(jù)、數(shù)據(jù)分析表達(dá)幾個(gè)步驟。性能檢測(cè)方式有追蹤(tracing)和輪廓(profiling)兩種方式[6]。前者采用插樁技術(shù)(instrumentation),對(duì)應(yīng)用程序進(jìn)行修改,在程序中插入附加指令,詳細(xì)記錄程序執(zhí)行過程中發(fā)生的事件,從而進(jìn)行事件跟蹤(event-based tracing),通過日志文件記錄,之后可以用時(shí)間軸的方式來呈現(xiàn)結(jié)果,幫助用戶了解程序執(zhí)行過程中的詳細(xì)特征。后者的典型形式是對(duì)路徑調(diào)用(call-path)信息或者硬件計(jì)數(shù)器進(jìn)行統(tǒng)計(jì),即在并行程序執(zhí)行過程中,定期對(duì)程序當(dāng)前執(zhí)行的指令和對(duì)執(zhí)行過的函數(shù)堆棧進(jìn)行回溯,得到子程序、基本塊和語句的執(zhí)行時(shí)間和執(zhí)行次數(shù)等信息。

        性能檢測(cè)的步驟如圖1所示。

        圖1 性能檢測(cè)的三個(gè)步驟

        1.1.1 數(shù)據(jù)選擇

        并行程序一般用運(yùn)行時(shí)間、加速比和并行效率來衡量性能。因此通常會(huì)選擇MPI通信時(shí)間、通信量、程序各階段運(yùn)行時(shí)間,以及各硬件性能計(jì)數(shù)器數(shù)據(jù)作為需要采集的數(shù)據(jù)。

        1.1.2 數(shù)據(jù)獲取和記錄

        數(shù)據(jù)獲取主要有兩種方法,其中插樁技術(shù)也被稱為軟件打點(diǎn)技術(shù),目的是通過在程序中插入指令來獲取程序的狀態(tài),可以分為三種:(1)源代碼插樁,在程序源代碼或庫的源代碼中直接插入性能分析函數(shù),這種最為直觀,對(duì)于實(shí)驗(yàn)中使用的測(cè)試程序的源代碼可以根據(jù)語法和語義信息,準(zhǔn)確進(jìn)行標(biāo)記。由于手工插樁較為繁瑣,因此也可以采用自動(dòng)化分析插樁工具如Program Database Toolkit(PDT)來減少工作量;(2)二進(jìn)制插樁,通過對(duì)靜態(tài)或者運(yùn)行中的可執(zhí)行文件進(jìn)行二進(jìn)制代碼插入,不需要重新編譯程序,但是插樁的開銷較大,主要工具有Pin和Dyninst;(3)庫替換(instrumentation-library interposition),使用帶有測(cè)試接口的.so動(dòng)態(tài)庫調(diào)用替換I/O、MPI、CUDA、OpenCL的API以及內(nèi)存分配/釋放例程,通過攔截應(yīng)用程序?qū)蚕韼斓暮瘮?shù)調(diào)用,來獲得調(diào)用數(shù)據(jù)。

        而另一種是采樣,是一種統(tǒng)計(jì)方法,按照一定的周期程序的性能數(shù)據(jù)進(jìn)行采樣和記錄,據(jù)此來分析應(yīng)用程序部分代碼的性能特征,以代表整個(gè)應(yīng)用程序特征。采樣不需要對(duì)應(yīng)用程序做修改,操作簡(jiǎn)單,開銷小,但是不能獲得應(yīng)用的完整性能視圖,并且很難確定合適的采樣頻率。

        在獲取性能數(shù)據(jù)的過程中也會(huì)根據(jù)檢測(cè)目的來進(jìn)行選擇,或者是同時(shí)使用兩種采集方式。在采集的同時(shí)會(huì)將采集到的數(shù)據(jù)記錄到特定格式的文件中去,以便分析工具進(jìn)行處理。記錄的形式一般分為記錄的類型、記錄的時(shí)間戳、性能計(jì)數(shù)器的讀數(shù)等。

        1.1.3 數(shù)據(jù)表達(dá)

        數(shù)據(jù)表達(dá)也就是將采集到的數(shù)據(jù)通過報(bào)告或圖表的方式展示給用戶。根據(jù)數(shù)據(jù)分析整理的時(shí)機(jī)可以分為在線分析和離線分析,在線分析就是在程序運(yùn)行時(shí)實(shí)時(shí)分析程序的運(yùn)行狀態(tài)和性能特征,將分析結(jié)果實(shí)時(shí)展現(xiàn)給用戶;離線分析是在程序執(zhí)行期間收集性能數(shù)據(jù)并進(jìn)行存儲(chǔ),在程序運(yùn)行完畢后,基于程序運(yùn)行時(shí)的全部性能數(shù)據(jù)進(jìn)行分析和展示。由于當(dāng)前高性能并行程序的規(guī)模大,運(yùn)行時(shí)間較長(zhǎng),需要對(duì)多節(jié)點(diǎn)多方面的性能數(shù)據(jù)進(jìn)行綜合分析,在線分析無法滿足要求,因此離線分析是實(shí)際中常用的研究方法。

        1.2 功耗檢測(cè)

        由于高功耗對(duì)高性能計(jì)算發(fā)展的制約,以及帶來的高昂運(yùn)行和維護(hù)成本,對(duì)HPC以及程序進(jìn)行功耗測(cè)量,以掌握其工作情況也變得相當(dāng)重要。早期的功耗研究使用基于模擬器的測(cè)量分析,可以在硬件設(shè)計(jì)階段用來平衡性能和功耗[7],但由于精度低和速度慢,實(shí)際難以推廣使用。實(shí)際使用的功耗檢測(cè)方法一般分為兩類[8]。

        (1)基于設(shè)備直接測(cè)量結(jié)果的硬件測(cè)量法。是指用各種外接或者集成的傳感儀器設(shè)備來測(cè)量硬件設(shè)備的電流和電壓,接著使用測(cè)量值來計(jì)算被測(cè)對(duì)象的功耗值,如使用智能配電單元(intelligent power distribution units,iPDU)、傳感器電阻、Plug-wise智能插頭、Watts up pro功耗計(jì)、IPMI(intelligent platform management interface)、數(shù)字萬用表等[9]。這種方式精度很高,但是缺點(diǎn)也很明顯,如基于硬件的測(cè)量接口各異,數(shù)據(jù)只能夠離線記錄到運(yùn)行機(jī)器之外的設(shè)備上,不能夠?qū)Σ考?nèi)部的更小器件進(jìn)行功耗分析和測(cè)量,成本較高。

        (2)基于性能事件或者寄存器讀數(shù)的軟件方法。操作系統(tǒng)提供的系統(tǒng)事件可以反映軟硬件狀態(tài),并且現(xiàn)代主流的處理器中都集成了硬件性能監(jiān)控計(jì)數(shù)器(performance counter,PMC),可以用來監(jiān)控硬件相關(guān)活動(dòng)事件的發(fā)生次數(shù),更直觀反映其硬件使用情況[10]。因此結(jié)合系統(tǒng)事件和PMC事件的讀數(shù)來建立模型,可以做到實(shí)時(shí)性和非侵入性,現(xiàn)在使用的較多[11]。常見的采用軟件方法的功耗檢測(cè)工具有PowerTOP、Likwid-Power meter、PAPI。

        其中PAPI(performance application progra-mming interface)[12]使用更為廣泛,PAPI是田納西大學(xué)開發(fā)的,可以在多種平臺(tái)上對(duì)硬件性能計(jì)數(shù)器進(jìn)行訪問的標(biāo)準(zhǔn)接口,可以監(jiān)測(cè)和采集由計(jì)數(shù)器記錄的處理器事件信息。對(duì)程序運(yùn)行中帶來的功耗,更多關(guān)注處理器,加速器及內(nèi)存的動(dòng)態(tài)功耗。PAPI既提供了程序調(diào)用接口,也提供了一些組件的PAPI-C接口對(duì)上述部件進(jìn)行功耗檢測(cè),如NVML(Nvidia management library)、RAPL(running average power level)、libmsr的接口組件。可以在外部工具中調(diào)用PAPI中的這些組件接口來獲取功耗值,因此為性能和功耗的協(xié)同檢測(cè)提供了可能,例如TAU、Extrae就已經(jīng)支持在追蹤性能數(shù)據(jù)的時(shí)候調(diào)用PAPI來提供性能和功耗數(shù)據(jù)。

        2 性能和功耗分析工具

        性能和功耗的檢測(cè)數(shù)據(jù)采集之后,往往需要某種方式來呈現(xiàn)給用戶,以便用戶從大量數(shù)據(jù)中找出規(guī)律,發(fā)現(xiàn)程序性能的瓶頸和能量?jī)?yōu)化的機(jī)會(huì)。這樣就需要一些工具來對(duì)數(shù)據(jù)進(jìn)行處理,工具應(yīng)當(dāng)具有可視化、易操作等特性。由于當(dāng)前沒有比較完善的能耗可視化工具,通常是調(diào)用PAPI或者第三方硬件儀器的接口來采集能耗信息,并且在性能可視化工具中進(jìn)行展示,因此這里選用了幾類常見的支持PAPI的性能可視化工具。

        2.1 基于Score-P檢測(cè)的工具

        由于傳統(tǒng)的性能測(cè)試工具采用了各自不同的測(cè)量系統(tǒng)和輸出格式,給使用帶來不便。但是各種測(cè)量工具在MPI函數(shù)插樁、事件記錄和數(shù)據(jù)記錄格式上往往具有相同的特征,這給統(tǒng)一測(cè)量工具提供了可能。針對(duì)這個(gè)問題,SILC(scalable infrastructure for the automated performance analysis of parallel codes)項(xiàng)目開發(fā)了Score-P[13]測(cè)量系統(tǒng),采用了開源數(shù)據(jù)記錄格式CUBE4和OTF2(open trace format V2)[14]。Score-P支持MPI框架,支持CUDA、OpenACC和OpenCL,也支持使用PAPI來獲得硬件性能技術(shù)器和功耗信息。并得到了Vampir、Scalasca、TAU和Intel Trace Analyzer等分析軟件的支持(見圖2)。

        圖2 基于Score-P檢測(cè)工具

        Scope-P需要對(duì)用戶程序在編譯和鏈接時(shí)進(jìn)行插樁,需要在相應(yīng)命令前添加scorep前綴來替換成Score-P的插樁命令,如mpicc就需要更改為scorep mpicc。通過插樁后生成的可執(zhí)行程序通過mpirun或者直接執(zhí)行完成后,就會(huì)生成profile文件和trace文件,以供下列幾種工具分析。Score-P支持C/C++和Fotran,但是安裝和參數(shù)設(shè)置較為繁瑣,并且不能對(duì)未使用Score-P編譯的二進(jìn)制可執(zhí)行程序進(jìn)行檢測(cè)。

        2.1.1 Vampir

        Vampir(visual and analysis of MPI resource)是由Pallas GmnH公司開發(fā)的商業(yè)工具,主要用來分析并行程序執(zhí)行過程中的MPI調(diào)用,以便了解通信模式、發(fā)現(xiàn)程序熱區(qū)和性能瓶頸,可以提供事件和通信時(shí)間的詳細(xì)時(shí)間視圖、程序執(zhí)行分析、通信操作的統(tǒng)計(jì)分析等功能,廣泛應(yīng)用于許多超算中心。Vampir提供了時(shí)間線視圖,MPI通信矩陣,性能計(jì)數(shù)器視圖和MPI信息詳情。

        Vampir的安裝和使用是在基于Score-P的可視化分析工具中最為方便的,并且提供了上述豐富的分析功能,可以直觀看出程序的MPI詳細(xì)通信過程。缺點(diǎn)是只針對(duì)MPI,沒有其余函數(shù)調(diào)用的分析。

        2.1.2 Scalasca

        Scalasca(scalable performance analysis of large scale applications)是由德國(guó)于利希研究中心以及模擬科學(xué)學(xué)院開發(fā)的開源工具,通過Scout中預(yù)定義的低效應(yīng)用程序行為模式,利用自動(dòng)分析工具識(shí)別MPI中的不平衡到達(dá)(unbalanced process arrival,UPA)等問題。Scalasca更多像是一個(gè)列表式的分析工具,分析出結(jié)果之后,輸出給CUBE-GUI顯示分析結(jié)果,并可以通過輸出Cube4格式到Vampir或TAU中來進(jìn)行可視化,Scalasca和Cube不支持時(shí)間線視圖。

        2.2 Intel Parallel Studio

        Intel公司的Parallel Studio也是普遍使用的商業(yè)并行程序性能檢測(cè)和分析工具套件,ITAC(Intel trace analyzer and collector)是MPI通信的分析工具,Vtune Amplifier是其中的多線程性能分析組件。

        ITAC主要關(guān)注基于MPI的通信,該部分提供基于事件的追溯機(jī)制,提供計(jì)算能力統(tǒng)計(jì)、線程跟蹤功能,對(duì)于資深的開發(fā)人員還可以通過插入二進(jìn)制指令對(duì)MPI函數(shù)調(diào)用以及MPI通信信息的參數(shù)進(jìn)行動(dòng)態(tài)調(diào)試。ITAC支持底層MPI和硬件配置的調(diào)優(yōu),并且可以進(jìn)行MPI正確性的檢查,主要用于跨節(jié)點(diǎn)的并行程序通信性能分析。

        Vtune針對(duì)程序運(yùn)行過程中產(chǎn)生的事件計(jì)數(shù),可以進(jìn)行多線程的代碼分析、堆棧采樣和硬件事件采樣,然后利用二進(jìn)制文件中的編譯信息將樣本統(tǒng)計(jì)數(shù)據(jù)對(duì)應(yīng)到進(jìn)程、線程、函數(shù)、反匯編代碼和源代碼中[15]。Vtune通過Intel處理器上的片上性能監(jiān)控單元,可以搜索由于緩存失效和錯(cuò)誤分支預(yù)測(cè)而導(dǎo)致的系統(tǒng)停滯,幫助用戶識(shí)別性能瓶頸。Vtune主要用于各節(jié)點(diǎn)內(nèi)性能分析。

        Intel Parallel Studio在并行程序應(yīng)用中也較為廣泛,但是缺乏對(duì)各類非MIC加速器和非Intel x86處理器的支持,并且由于是商業(yè)軟件,售價(jià)高昂,不利于在大規(guī)模集群上進(jìn)行使用。

        2.3 Nvidia性能分析工具

        在進(jìn)行基于CUDA的并行程序開發(fā)時(shí),往往會(huì)使用Nvidia公司的開發(fā)工具和性能分析工具,如源代碼的可視化CUDA開發(fā)環(huán)境Nsight、可執(zhí)行文件的性能可視化分析工具Visual Profiler(NVVP)。工具對(duì)Nvidia的API支持最為全面,主要用來精確定位CPU和GPU之間的負(fù)載不平衡或GPU上的性能瓶頸,以優(yōu)化程序的配置。但是對(duì)于多節(jié)點(diǎn)的大規(guī)模并行并不適用,通常需要和MPI分析工具配合使用??梢圆榭床鍢堕_銷、GPU函數(shù)、主從設(shè)備交換等時(shí)間線,并可以通過Nvidia Tools Extension插樁來查看CPU上具體函數(shù)的時(shí)間線視圖,同時(shí)提供GPU的功耗和能耗的輸出。優(yōu)點(diǎn)是和本公司的計(jì)算卡結(jié)合緊密,在GPU異構(gòu)計(jì)算上結(jié)合開發(fā)、調(diào)試和性能分析于一體,使用方便。缺點(diǎn)是只支持本公司的計(jì)算卡,并且對(duì)于主設(shè)備如CPU上運(yùn)行的非OpenACC程序,就只能使用工具進(jìn)行手動(dòng)插樁。

        2.4 BSC Tools

        BSC Tools是一個(gè)由西班牙巴塞羅那超級(jí)計(jì)算中心開發(fā)的開源工具集,主要由Paraver(可視化分析器)、Extrae(測(cè)量工具)組成,還有一些額外的集群性能分析工具。Extrae使用不同的插入機(jī)制(庫替換、手動(dòng)插樁、dyninst二進(jìn)制插樁)將探針注入到目標(biāo)應(yīng)用程序中,以便收集性能指標(biāo)。Extrae還使用PAPI接口來收集有關(guān)硬件性能的信息,允許在并行調(diào)用發(fā)生時(shí)捕獲此類信息,而且還可以在用戶例程的入口和出口點(diǎn)捕獲這些信息。Paraver是一個(gè)非常強(qiáng)大的開源可視化分析工具,該工具主要是支持用戶自定義模式和全局概覽。Paraver通過時(shí)間線和概要統(tǒng)計(jì)來分析數(shù)據(jù)記錄中的運(yùn)行時(shí)間、函數(shù)調(diào)用、MPI以及硬件使用情況、PAPI事件、功耗等信息,并且通過自定義的cfg配置文件,可以靈活地對(duì)輸出形式進(jìn)行配置,可以將某幾項(xiàng)指標(biāo)綜合輸出展示[16],如將指令計(jì)數(shù)和周期計(jì)數(shù)進(jìn)行處理,可以輸出IPC(instructions per cycle)數(shù)據(jù)。所得到的每種事件的數(shù)據(jù)都可以導(dǎo)出為csv格式由其他程序進(jìn)行處理。

        BSC Tools作為一款開源工具,在歐洲的巴塞羅那超算中心的多個(gè)集群長(zhǎng)期開發(fā)使用,具有很多優(yōu)點(diǎn)。(1)安裝簡(jiǎn)單,配置靈活。安裝通過一條指令就可以配置好依賴環(huán)境,并且Paraver有win和mac系統(tǒng)下的安裝包,可以將跟蹤數(shù)據(jù)導(dǎo)出后處理,也可以直接在Linux下使用官方已經(jīng)編譯好的壓縮包,直接解壓使用。Extrae通過在xml文件中簡(jiǎn)單修改參數(shù)就可以進(jìn)行配置,其集成的庫劫持和二進(jìn)制插樁的功能可以使得在沒有源文件的情況下,對(duì)目標(biāo)應(yīng)用進(jìn)行性能和功耗的跟蹤分析,在集群實(shí)際使用中更為靈活。并且Paraver中可以自由定制多種cfg文件,對(duì)采集的數(shù)據(jù)進(jìn)行定制化輸出;(2)支持多種平臺(tái),除了x86外,BSC Tools支持含arm和power,并且由于其對(duì)OpenCL的支持,理論上對(duì)CPU+xeon phi、CPU+FPGA、CPU+DSP都可以進(jìn)行跟蹤分析。但是由于配置過于靈活,BSC Tools并沒有提供詳細(xì)的使用引導(dǎo),其中Paraver的用戶說明長(zhǎng)期未更新,已經(jīng)失效。

        2.5 對(duì)比分析

        通過對(duì)上述工具的功能和特點(diǎn)進(jìn)行對(duì)比,見表1,可以看出對(duì)于并行程序,作為硬件廠商自產(chǎn)的性能分析工具,Intel和Nvidia的工具套件對(duì)各自的產(chǎn)品針對(duì)性更強(qiáng),功能和可操作性也更勝一籌,但是也由于其閉源,不可能移植到其他平臺(tái)上,也就給自主的硬件平臺(tái)或者強(qiáng)調(diào)自主可控的應(yīng)用場(chǎng)景帶來了困難。

        表1 幾種性能功耗測(cè)量工具的對(duì)比

        Score-P對(duì)編程框架的支持最為廣泛,提供了對(duì)CUDA、OpenACC和OpenCL的支持。但是其安裝和配置較為復(fù)雜,并且需要對(duì)源程序進(jìn)行修改,不能對(duì)已經(jīng)生成的可執(zhí)行文件進(jìn)行性能和功耗的分析。在基于Score-P的分析工具中,Vampir使用最為方便,但是只有商業(yè)授權(quán)才可以使用完整功能。TAU的功能最強(qiáng),提供了豐富的說明文檔,但是安裝使用較為復(fù)雜。Scalasca提供了中文說明文檔,但是本身缺乏時(shí)間線視圖的輸出。

        BSC Tools的使用很靈活。Extrae可以支持arm平臺(tái),并且也提供對(duì)python程序的插樁跟蹤。官方提供了各種編程框架的跟蹤樣例,可以直接拷貝到需要測(cè)試的場(chǎng)景,經(jīng)過簡(jiǎn)單修改即可使用。在Paraver中預(yù)制了大量的cfg配置文件,在進(jìn)行基本測(cè)試上非常容易上手。但是如果要進(jìn)階使用,自己定制跟蹤和分析時(shí),配置較為繁瑣,也缺乏說明文件。

        綜上所述,幾種工具各有優(yōu)缺,在實(shí)際應(yīng)用中,可以相互結(jié)合使用,對(duì)于Intel和Nvidia平臺(tái)無疑是官方軟件的支持最為強(qiáng)大,可以給出最全面的分析報(bào)告。對(duì)于定制化集群平臺(tái),靈活配置Score-P和BSC Tools可以為優(yōu)化工作帶來很多便利。由于許多實(shí)驗(yàn)室集群中并沒有專用的成套工具,因此使用開源工具也是一個(gè)很好的辦法。BSC Tools、Score-P都能在Github上找到完整的源代碼,可以對(duì)不同的硬件平臺(tái)進(jìn)行分析和移植,也可以作為基礎(chǔ)進(jìn)行二次開發(fā),使其更適用于特定應(yīng)用場(chǎng)景。

        3 結(jié)束語

        由于高性能并行程序在性能和功耗上有更高的需求,因此要對(duì)其進(jìn)行相關(guān)的檢測(cè)分析。由于傳統(tǒng)較多使用手動(dòng)插樁輸出的辦法已經(jīng)不太適宜當(dāng)前的高性能并行軟件調(diào)優(yōu)工作,因此該文以并行程序的性能和功耗檢測(cè)為主線,對(duì)目前國(guó)外常用的性能和功耗檢測(cè)工具進(jìn)行了對(duì)比介紹,討論了其優(yōu)缺點(diǎn),以便后續(xù)使用,并希望能激發(fā)相關(guān)研究人員使用這類工具來進(jìn)行軟硬件優(yōu)化的興趣。

        猜你喜歡
        程序分析檢測(cè)
        “不等式”檢測(cè)題
        “一元一次不等式”檢測(cè)題
        “一元一次不等式組”檢測(cè)題
        隱蔽失效適航要求符合性驗(yàn)證分析
        試論我國(guó)未決羈押程序的立法完善
        電力系統(tǒng)不平衡分析
        電子制作(2018年18期)2018-11-14 01:48:24
        “程序猿”的生活什么樣
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢(shì)分析
        小波變換在PCB缺陷檢測(cè)中的應(yīng)用
        国产一极内射視颍一| 男人的精品天堂一区二区在线观看| 一区二区三区激情免费视频| 蜜臀av无码人妻精品| 国产免费又色又爽又黄软件 | 小12箩利洗澡无码视频网站 | 亚洲国产精品久久无人区| av天堂精品久久综合网| 成人网站免费看黄a站视频| 91日本精品国产免| 日本人妻av在线观看| 亚洲国产精品国自拍av| 成人做受黄大片| 麻豆精产国品| 日韩精品免费在线视频| 国产精品熟女一区二区三区| 免费va国产高清大片在线| 亚洲欧美日韩一区在线观看| 免费在线观看蜜桃视频| 亚洲国产精品婷婷久久| 欧洲vat一区二区三区| 日本不卡视频免费的| 亚洲色图在线视频观看| 国产精品女主播福利在线| 久久中文精品无码中文字幕下载 | 一级一片内射视频网址| 宅男66lu国产在线观看| 无遮无挡三级动态图| 美女一级毛片免费观看97| 一区二区三区精品亚洲视频| 激情综合五月| 国产精品高潮呻吟av久久4虎| 日韩免费高清视频网站| av免费在线观看网站大全| 欧美黑人巨大videos精品| 免费国产裸体美女视频全黄| 亚洲一区二区三区久久不卡| 一本色道精品亚洲国产一区| 影视av久久久噜噜噜噜噜三级| 久久久精品久久波多野结衣av| 久久精品国产亚洲av调教|