專利名稱:一種表征高性能計算應用特征的方法
技術領域:
本發明涉及高性能計算領域在應用軟件性能表征方面的內容,具體涉及一種利用監視和提取合適的高性能參數,最合理的反映大規模應用軟件對計算資源需求的方法。
背景技術:
隨著人類社會的不斷進步,科學技術的發展,人們不但對自然界的認識越來越廣泛,而且對未知世界探索的需求也越來越迫切。這就使得人類撐握的信息數據的量急劇性的增長,而與時同時,這些海量的信息數據都需要及時的分析和處理。例如,一個大型天文射電望遠鏡陣列一秒鐘就能產生100GB以上的宇宙微波數據,這些數據都需要及時得到分析;再如,在粒子物理研究領域,一臺大型強子對撞機一次對撞的數據也是以TB為單位來 計量的;此外,像人類基因組工程、石油勘探、天氣預報等等領域也對計算能力提出了越來越高的要求。在這種大背景下數值計算已然成為了除實驗、理論分析之外的第三種極其重要的科學探索手段。正是基于這樣的現實,促使了當今世界各個科技強國都在不遺余力的大力發展超級計算機。如,在2012年6月發布的世界T0P500中,排名第一的IBM “紅杉(Sequoia)”就已經達到了 20PFlops的峰值速度,而與此同時新的百億億次超級計算機也已經在研究和規劃之中了。總的來說,基本上每十年,超級計算機的速度就提升三個量級(1000倍),因此建造超級計算機的能力已經成為一個國家科技水平和綜合國力的一個有力體現。雖然超級計算機發展的速度是驚人的,也令人欣慰,但很遺憾的是與之相配套的軟件技術卻裹足不前,這已經嚴重的制約了超級計算機應用能力的發揮。現在絕大多數的應用軟件所基于的基本原理和數學算法,還是上世紀50飛0年代提出和發展起來的,這些算法與當時的大型機是完全匹配和適應的,以串行或少量進程間并行為主。但經過50多年的發展,現在的超級計算機體系結構已經發生了翻天覆地的變化,動輒擁有幾十萬乃至上百萬的CPU核,而且還有相當一部分超級計算機是使用的混合異構(CPU+GPU/MIC等)的體系架構,這就使得早期的物理模型和數學算法力不從心、無法勝任。這就是現在絕大多數的應用軟件效率低下、可擴展性差的主要原因。要破解現在的這些難題,一方面,我們應該大力研究和發展新的與現今超級計算機體系結構相匹配的物理模型和數學算法,這是突破現有瓶頸的終極手段,但這畢竟是一項極其困難的課題,無法在短時間內見到成效并實現大規模應用;另一方面,我們應著手研究現在所繼承下來的、海量的應用軟件,合理的表征它們的運行特征,找出它們的性能瓶頸,最大限度的在現有平臺上發揮這些應用的性能,此外還能為應用性能的改進和突破提供有力的依據。因此,如何合理、科學的表征應用的特征就是本發明所要解決的主要問題。
發明內容
本發明的目的是提供一種表征高性能計算應用特征的方法。本發明的目的是按以下方式實現的,本發明要解決的技術問題是設計一種快速、高效的表征高性能計算中應用程序運行特征的方法,從而迅速、精確的定位應用程序對計算資源的需求量,最大限度的發揮應用程序的性能。針對現行高性能計算機體系架構及計算應用的特點,將對應用運行特征的表征過程大體劃分為兩個主要步驟,即,I)為應用程序運行對計算資源占用的監控和數據提取,2)為對所采集數據的分析和后處理,對于前者,根據高性能計算平臺的架構特點,從后臺運行監控器,實現對應用程序計算資源占用情況的實時監控,并提取數據,它不但要針對不同架構的硬件平臺,更要求監控器對資源的占用微乎 其微,不能影響到被監控程序的正常運行;而對于后者,根據硬件平臺的特點設定合理的參照量,從所監控的海量數據中選取合適的參照量進行分析,以定位應用程序對計算資源的需要水平,要求有統一標準的對海量數據的分析處理能力;具體分析、組織流程如下
1)確定軟、硬件平臺是指根據所要表征的應用軟件,選擇合適的硬件平臺,并部署好相應的系統、數學庫、監控器等軟件環境,在這里硬件平臺的性能應盡可能的平衡,并且盡可能的留有一定的資源余量;
2)運行監控器是指在流程I)中所部署好的硬件平臺上,在主、從節點分別運行資源監控器;這里資源監控器應滿足從所有的計算節點上實時監控應用資源占用量的功能,包括但不限于CPU使用率、內存占用量、實時IO帶寬、網絡吞吐,它應用完整涵蓋所監測硬件平臺的所有資源;
3)從節點向主控節點發送監控數據主控節點和從節點是針對監控來說的,它是一個相對的概念,主控節點亦可同時是從節點,它主要完成對監控數據的接收,而從節點則是監控自身資源占用情況并負責向主控節點發送監控數據,如果主控節點沒有正常接收到數據就需要返回流程1),以重新確定軟、硬平臺的狀態可用;
4)在被監控的節點上運行所要表征的應用程序;
5)實時監控應保證所監控的數據真實有效,如數據失真則應返回流程2);
6)確定分析標準根據所運行應用程序的硬件平臺的硬件特點,來確定參照值,若應用是在千兆網絡下運行,則應取千兆網絡的帶寬上限125MB/S作為參照值,若使用是的Infiniband網絡,則應用取所使用HCA卡的上限值作為參考其他指標參數的確定方法與此同;
7)生成表征特征根據監控數據,計算平均值或選取最大值,并與參照標準相比,所得比值即為該項的表征結果,不同的應用每一項都有不同的表征結果,對于應用的網絡表征,計算應用運行期間的網絡流量平均值或最大值,并與標準參照值相比,即為該應用的表征結果。本發明的有益效果是本發明充分利用了高性能計算的特點,深度探索和挖掘了應用程序對計算資源的需求程度,且以極微弱的資源占用量并不影響被分析應用程序的正常運行。該方法可以快速的表征應用的特征,極大的發揮了現有海量應用的計算性能。
圖I是計算分析方法流程圖。
具體實施方式
參照說明書附圖對本發明的方法作以下詳細地說明。本發明針對現行高性能計算機體系架構及計算應用的特點,將對應用運行特征的表征過程大體劃分為兩個主要步驟,即,一為應用程序運行對計算資源占用的監控和數據提取,二為對所采集數據的分析和后處理。對于前者,主要是根據高性能計算平臺的架構特點,從后臺運行監控器,實現對應用程序計算資源占用情況的實時監控,并提取數據,它不但要針對不同架構的硬件平臺,更要求監控器對資源的占用微乎其微,不能影響到被監控程序的正常運行;而對于后者,主要是根據硬件平臺的特點設定合理的參照量,從所監控的海量數據中選取合適的量進行分析,以定位應用程序對計算資源的需要水平,它主要要求統一標準的對海量數據的分析處理能力。具體來說,大體可分為如下幾個步驟
1.依據計算平臺部署監控器;
2.從主控節點啟動監控器,依次收集計算節點的特征參數;
3.運行指定的應用程序;
4.結束對應用的監控,退出監控環境;
5.依據硬件平臺設定參照標準;
6.分析處理監控數據。為了使本發明的目的、技術方案和優勢更加清晰,我們以使用CPU的應用程序在兩個節點上的特征表征過程為例,并結合附圖,對本發明中的關鍵步驟進行詳細說明,對于使用更多計算節點,或使用GPU/MIC等異構體系的應用程序的表征方式與之相同。
實施例如附圖I所示,給出了本發明所涉及的分析流程的示意圖。其基本的分析、組織流程如下
1.確定軟、硬件平臺。主要是指根據所要表征的應用軟件,選擇合適的硬件平臺,并部署好相應的系統、數學庫、監控器等軟件環境。在這里硬件平臺的性能應盡可能的平衡,并且盡可能的留有一定的資源余量;
2.運行監控器。主要是指在流程I中所部署好的硬件平臺上,在主、從節點分別運行資源監控器。這里資源監控器應滿足從所有的計算節點上實時監控應用資源占用量的功能,包括但不限于CPU使用率、內存占用量、實時IO帶寬、網絡吞吐等等,它應用完整涵蓋所監測硬件平臺的所有資源;
3.從節點向主控節點發送監控數據。主控節點和從節點是針對監控來說的,它是一個相對的概念,主控節點亦可同時是從節點,它主要完成對監控數據的接收,而從節點則是監控自身資源占用情況并負責向主控節點發送監控數據。如果在本步中主控節點沒有正常接收到數據就需要返回流程1,以重新確定軟、硬平臺的狀態可用;
4.在被監控的節點上運行所要表征的應用程序;
5.實時監控。這里主要應保證所監控的數據真實有效,如數據失真則應返回流程2;
6.確定分析標準。主要是指根據所運行應用程序的硬件平臺的硬件特點,來確定參照值。如,若應用是在千兆網絡下運行,則應取千兆網絡的帶寬上限(125MB/S)作為參照值,若使用是的Infiniband網絡,則應用取所使用HCA卡的上限值作為參考。其他指標參數的確定方法與此同;7.生成表征特征。主要是指根據監控數據,計算平均值(或選取最大值等,依據特定場合而定)并與參照標準相比,所得比值即為該項的表征結果,不同的應用每一項都有不同的表征結果。例如,對于應用的網絡表征,計算應用運行期間的網絡流量平均值(或最大值等),并與標準參照值相比,即為該應用的表征結果。本發明所采用的分析方法可以極大的反映出應用程序的運行特征,從而快速的把握應用對計算資源的占用,以及應用的擴展性等等,從而準確定位可以最大程度發揮應用性能的硬件平臺,實現應用性能 最大化。除說明書所述的技術特征外,均為本專業技術人員的已知技術。
權利要求
1.一種表征高性能計算應用特征的方法,其特征在于針對現行高性能計算機體系架構及計算應用的特點,將對應用運行特征的表征過程大體劃分為兩個主要步驟,即,I)為應用程序運行對計算資源占用的監控和數據提取,2)為對所采集數據的分析和后處理,對于前者,根據高性能計算平臺的架構特點,從后臺運行監控器,實現對應用程序計算資源占用情況的實時監控,并提取數據,它不但要針對不同架構的硬件平臺,更要求監控器對資源的占用微乎其微,不能影響到被監控程序的正常運行;而對于后者,根據硬件平臺的特點設定合理的參照量,從所監控的海量數據中選取合適的參照量進行分析,以定位應用程序對計算資源的需要水平,要求有統一標準的對海量數據的分析處理能力;具體分析、組織流程如下 O確定軟、硬件平臺是指根據所要表征的應用軟件,選擇合適的硬件平臺,并部署好相應的系統、數學庫、監控器等軟件環境,在這里硬件平臺的性能應盡可能的平衡,并且盡可能的留有一定的資源余量; 2)運行監控器是指在流程I)中所部署好的硬件平臺上,在主、從節點分別運行資源監控器;這里資源監控器應滿足從所有的計算節點上實時監控應用資源占用量的功能,包括但不限于CPU使用率、內存占用量、實時IO帶寬、網絡吞吐,它應用完整涵蓋所監測硬件平臺的所有資源; 3)從節點向主控節點發送監控數據主控節點和從節點是針對監控來說的,它是一個相對的概念,主控節點亦可同時是從節點,它主要完成對監控數據的接收,而從節點則是監控自身資源占用情況并負責向主控節點發送監控數據,如果主控節點沒有正常接收到數據就需要返回流程1),以重新確定軟、硬平臺的狀態可用; 4)在被監控的節點上運行所要表征的應用程序; 5)實時監控應保證所監控的數據真實有效,如數據失真則應返回流程2); 6)確定分析標準根據所運行應用程序的硬件平臺的硬件特點,來確定參照值,若應用是在千兆網絡下運行,則應取千兆網絡的帶寬上限125MB/S作為參照值,若使用是的Infiniband網絡,則應用取所使用HCA卡的上限值作為參考其他指標參數的確定方法與此同; 7)生成表征特征根據監控數據,計算平均值或選取最大值,并與參照標準相比,所得比值即為該項的表征結果,不同的應用每一項都有不同的表征結果,對于應用的網絡表征,計算應用運行期間的網絡流量平均值或最大值,并與標準參照值相比,即為該應用的表征結果。
全文摘要
本發明提供一種表征高性能計算領域各行業應用軟件運行特征的方法。該方法全方位考查了應用程序在輸入、存儲、處理、傳輸以及輸出這五個環節的負載壓力,依次將應用劃分為計算密集型、內存約束型、I/O密集型以及網絡密集型等四個大的類別。通過這四個方面定量表示,充分表現了應用對CPU占用、內存容量、內存吞吐、輸入/輸出以及網絡數據交換等方面的資源需求,最大化的反映了應用軟件運行特征。本發明簡單、實用、可靠、高效,可以非常直觀的反映一款應用軟件對高性能硬件資源的需求量。使得該應用可以在合適的高性能平臺上運行,進而最大限度的發揮應用軟件的性能。依據該特征,可以有的放矢的改進和突破該應用軟件的性能瓶頸,提高應用的擴展性。
文檔編號G06F11/30GK102945198SQ20121039897
公開日2013年2月27日 申請日期2012年10月19日 優先權日2012年10月19日
發明者劉羽, 金蓮, 呂文靜, 于濤 申請人:浪潮電子信息產業股份有限公司