晚上讀了一篇paper,是Proceedings of the 34th annual international symposium on Computer architecture上的《Analysis of Redundancy and Application Balance in the SPEC CPU2006 Benchmark Suite》。
這篇paper主要針對SPEC CPU2006基準測試套件的備援性和平衡性問題進行了研究,作者考慮到有使用小部分測試元件來進行測試的需要,是以對如何選擇子套件給出指導意見。文中通過在不同系統上使用性能計數器以及一些統計技術(如PCA和聚類分析)來分析套件中各個基準程式之間的相似度和備援度,并最終給出了有價值的子套件。
SPEC CPU2006包含了10個整數型程式和17個浮點數型程式,和2000相比,除了INT型還保留了3個外,其他都換掉了。基準程式要求覆寫應用面要廣,同時程式之間的相似度又不能太大,否則就備援了,這就是一個平衡性的問題了。
作者首先給出了進行分析的幾個方面:指令混合度,指令局部性,資料局部性(主要通過cache和快表的命中 來分析),分支預測性,接着引入了本文中最重要的分析方法論:PCA和聚類分析。
用 PCA來消除誤差,其實就是進行權重處理。聚類分析的職能是建立一種分類方法,它是将一批樣品或變量,按照它們在性質上的親疏程度進行分類。距離的種類很多,其中歐式距離在聚類分析中用得最廣。 當确定了樣品之間的距離之後,就要對樣品進行分類。分類的方法很多,本節隻介紹系統聚類法,它是聚類分析中應用最廣泛的一 種方法。首先将n個樣品每個自成一類,然後每次将具有最小距離的兩類合并成一類,合并後重新計算類與類之間的距離,這個過程一直持續到所有樣品歸為一類為 止。分類結果可以畫成一張直覺的聚類譜系圖。
應用系統聚類法進行聚類分析的步驟如下:
确定待分類的樣品的名額;
收集資料;
對資料進行變換處理(如标準化或規格化);
使各個樣品自成一類,即n個樣品一共有n類;
計算各類之間的距離,得到一個距離對稱矩陣,将距離最近的兩個類并成一類;
并類後,如果類的個數大于1,那麼重新計算各類之間的距離,繼續并類,直至所有樣品歸為一類為止;
最後繪制系統聚類譜系圖,按不同的分類标準或不同的分類原則,得出不同的分類結果。
整個文章最大的亮點是第3章的方法論部分,确實是整篇的核心點,研究思路很贊。。。
本文轉自Phinecos(洞庭散人)部落格園部落格,原文連結http://www.cnblogs.com/phinecos/archive/2007/10/05/914999.html,如需轉載請自行聯系原作者