基準程式

基準程式

基準程式是用來測量計算機處理速度的一種實用程式,以便於被測量的計算機性能可以與運行相同程式的其它計算機性能進行比較。具有快速處理器的計算機在基準程式上性能極佳,但如果計算機配備的是慢速硬碟及缺少大量存儲器,其性能會令用戶失望。

基本介紹

  • 中文名:基準程式
  • 外文名:Benchmark
產生背景,分類,核心程式,小基準程式,合成基準程式,基準測試程式組,用途,開發要求,

產生背景

市場上的微處理器(8位、16位和32位)品種繁多,各公司(製造廠商)都炫耀自己的產品,廣大用戶在選型時,無從下手。更嚴重的是有些公司以自已產品的一技之長和其它產品的不足之處相比,甚至把其它產品說得無一可取.很多廠商提出的比較方法既不合理又不公平,使人們很難接受。
美國Carnegie Mellon大學於1976年為大型計算機和中、小型機研製了一套基準程式。其測試結果在美國計算機年會上發表,題目是"通過測試程式來評價計算機體系結構”.這一套標準測試程式包括很多公共的算法,所用的算法都是目前計算機套用最經常使甩的。因此,我們認為這一套測試基準程式具有代表性和普遍意義。具體測試內容包括16位和32位整數和浮點數運算、中斷處理、字元串檢索、位操作及分類等等。通過這一套基準程式測試,可以對一台計算機或微處理器的實際處理數據和運算的能力進行比較公正而全面的評價。 ‘
基準程式的選取和建立直接影響著最後的比較結果。因此要慎重地、科學地選擇標準,使它真正反映出將來用戶實際套用的效果。對某一類用戶來說,關鍵是選好合適的基準程式,經過公正合理的比較,才能找出適合自己所需的微處理器。應指出的是,在選型過程中,一定要避免盲目性,不要一味追求先進和高指標。對某些套用是可行的選型,但對另外的套用就未必可取。目前國內仍有不少單位缺乏調查研究,對測試、比較重視不夠,選型缺乏足夠的科學依據。

分類

按基準程式的構造特點可以把它劃分成四類,即:核心程式、小基準程式、合成基準程式以及基準測試程式組。

核心程式

核心程式是從真實程式中抽取的具有代表性的最耗時的程式段匯集而成的,它們的代碼很短,但是非常關鍵。Livermore Loops及LINPACK是兩種最常見的核心程式。LINACK用FORTRAN語言編寫,主要是進行浮點加法和浮點乘法的操作。這些代碼的執行時間直接影響到程式總的回響時間。用戶不會直接使用核心程式,因為它的功能僅僅是用來測試計算機性能。核心程式可以根據需要來評價機器的各種性能,從而解釋在運行真實程式時機器性能不同的原因。

小基準程式

小基準程式代碼一般在100行以內。用戶可以隨時縮寫一些這樣的程式來測試系統的各種功能,並產生用戶已預知的輸出結果。通常選取實際套用中具有代表性的求解算法構成這一類基準程式,如皇后問題、迷宮問題、快速排序、求素數等,這類流行的測試程式都具有短小、易輸入、通用等特點,最適於作一些基本測試。

合成基準程式

合成基準程式是人為合成的測試程式。首先要對大量應用程式中的操作進行統計,得到各種操作所占的比例,再按這個比例人為地寫出測試程式。Whetstone與Dhrystone是最流行的合成基準程式。在操作類型和運算元類型這兩個方面,合成基準程式試圖保持與大量程式中的比例一致。用戶不會自己產生合成基準程式,因為其中沒有任何用戶能夠使用的代碼。合成基準程式完全是人為製造出來的,與實際套用相差更遠。其中整數測試程式是Dhrystone用C語言編寫的,共有100條語句,它包括:各種賦值語句、數據類型數據區控制語句,過程調用和參數傳送、整數運算和邏輯操作。Whetstone基準測試程式是用FORTRAN語言編寫的綜合性測試程式,主要包括:浮點運算、整數算術運算、功能調用、數組變址、條件轉移超越函式

基準測試程式組

基準測試程式組就是一組各個方面有代表性的基準程式組成的一個通用基準程式集合。這個基準程式的集合稱為基準程式組(benchmark suites),它的最大優點是避免了獨立基準程式存在的片面性,儘可能全面地測試了一個計算機系統的性能,因此對計算機系統設計有比較大的指導意義。

用途

基準程式測試結果直接反映出計算機系統各部分完成各種作業的速度,從而對系統做出有針對性的評估。基準程式最基本的用途是對產品的性能進行評估,並作為出廠的質量標準。當然,這也成為了用戶選擇機型的輔助決策的標準。
要在競爭激烈的計算機市場中生存和發展,就必須努力提高計算機產品的性價比。所以,每家計算機系統設計公司都投入了大量的人力、物力資源研究各種通用的基準程式,並針對測試結果,從硬體和軟體兩個方面對系統設計進行修改和最佳化,以提高他們的計算機系統的總體測試性能。但是,通用計算機系統一般不針對某一個特定的真實程式進行設計或性能最佳化,因為這樣做不但難度大,而且成本也會增加。為了提高測試的公正性,通用基準程式往往由非商業性組織或者第三方廠商提供。通用基準程式在使用時也有明確的要求,如系統配置、數據精度、編譯最佳化等等,以便使獲得的測試結果具有良好的可比性。
基準程式測試在計算機性能評估中的套用日益廣泛,它的思路和技術方法已被肯定。然而隨著計算機世界的蓬勃發展,基準程式測試中存在的問題也越來越突出。需要對傳統基準程式進行不斷地改進。直接用實際程式測試系統結構可以糾正基準測試系統結構中不符合實際的偏差,但事實上實際套用的問題太廣、太雜,一種套用問題可用多種算法求解,難以窮盡各種套用問題和算法。所以,這種思路只能解決系統在解此類問題時用此類算法的性能評價,而缺乏比較的公允性。無論如何,人們並沒有停止對基準測試的探索。人們已經意識到,用所謂MIPS和MFLOPS等傳統性能指標來評價計算機系統的方法沒有多大的實際意義,除了研究基準程式本身外,評價方法和評價性能指標同樣關鍵。

開發要求

開發基準程式時應考慮若干標準。首先,測試結果應該是可重複的;特別是,在相同的系統上運行基準程式時,每次產生的結果應接近相同。運行結果不一定相等,而且也很少會相同,因為一些環境相關的細節(諸如一個數據項在磁碟上的存儲位置)會影響運行結果。其次,基準程式應準確反映在真實系統上執行的應用程式的類型。最後,基準程式應當得到廣泛使用,以便可以對系統作出更準確的比較。一個良好的工業標準的基準程式將具備所有這些性質,然而,後面兩個標準往往會導致衝突的設計決策。某個系統專用的基準程式,可能無法廣泛使用;而一個旨在測試多個系統的基準程式,對某個特定的系統可能不能產生準確的測試結果。

相關詞條

熱門詞條

聯絡我們