複製鏈接
請複製以下鏈接發送給好友

基準程序

鎖定
基準程序是用來測量計算機處理速度的一種實用程序,以便於被測量的計算機性能可以與運行相同程序的其它計算機性能進行比較。具有快速處理器的計算機在基準程序上性能極佳,但如果計算機配備的是慢速硬盤及缺少大量存儲器,其性能會令用户失望。 [1] 
中文名
基準程序
外文名
Benchmark

基準程序產生背景

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

基準程序分類

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

基準程序核心程序

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

基準程序小基準程序

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

基準程序合成基準程序

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

基準程序基準測試程序組

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

基準程序用途

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

基準程序開發要求

開發基準程序時應考慮若干標準。首先,測試結果應該是可重複的;特別是,在相同的系統上運行基準程序時,每次產生的結果應接近相同。運行結果不一定相等,而且也很少會相同,因為一些環境相關的細節(諸如一個數據項在磁盤上的存儲位置)會影響運行結果。其次,基準程序應準確反映在真實系統上執行的應用程序的類型。最後,基準程序應當得到廣泛使用,以便可以對系統作出更準確的比較。一個良好的工業標準的基準程序將具備所有這些性質,然而,後面兩個標準往往會導致衝突的設計決策。某個系統專用的基準程序,可能無法廣泛使用;而一個旨在測試多個系統的基準程序,對某個特定的系統可能不能產生準確的測試結果。 [4] 
參考資料
  • 1.    《電腦用户辭典》編寫組.最新電腦用户辭典:湖南科學技術出版社,1996年05月
  • 2.    楊學良.微型計算機應用系統設計及性能評價:電子工業出版社,1992年01月
  • 3.    張民選,王永文編著.高性能微處理器:技術與結構:國防科技大學出版社,2004.3
  • 4.    (美)Harvey M.Deitel,Paul J.Deitel,David R.Choffnes著.操作系統 第三版:清華大學出版社,2007.8