



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-精選文檔 -1 Whetstone 的設(shè)計(jì)Whetstorte基準(zhǔn)程序是 H JCurnow和 B A Wiehmarm在 1976 年研制成的。它是 ALGOL 語句混合 (statement mix)的一種發(fā)展。它的基本原則是: 在程序編譯后生成的機(jī)器指令中,各種指令出現(xiàn)的頻度應(yīng)和統(tǒng)計(jì)數(shù)據(jù)中指令出現(xiàn)頻度相符合。程序的研制是基于對(duì)語言使用的統(tǒng)計(jì)分析的。1970 年 Wichmann在 NPL和牛津大學(xué)對(duì) 949 個(gè)程序進(jìn)行了分析。在Whetstone系統(tǒng)上, ALGOL 程序首先被譯為一種中間代碼, 然后由一個(gè)解釋程序執(zhí)行。 通過修改翻譯器和解釋程序可得到關(guān)于程序的靜態(tài)和動(dòng)態(tài)統(tǒng)計(jì)數(shù)據(jù),根據(jù)
2、這些統(tǒng)計(jì)數(shù)據(jù),Curnow和Wiehmarm設(shè)計(jì)了一個(gè)合成基準(zhǔn)程序,它對(duì)科學(xué)計(jì)算型應(yīng)用有較強(qiáng)的代表性。程序的設(shè)計(jì)是在簡(jiǎn)單性和復(fù)雜性兩種要求之間的一個(gè)妥協(xié)。程序必須足夠簡(jiǎn)單, 以便從一個(gè)機(jī)器移植到另一個(gè)機(jī)器,從一種語言譯到另一種語言,還必須能夠生成 whetstone中間代碼,以便計(jì)算不同指令出現(xiàn)頻度,把它們和統(tǒng)計(jì)數(shù)據(jù)相匹配。但是如果程序過于筒單, 那么在通過有優(yōu)化的編譯程序中,很可能有些部分不被執(zhí)行,如果它們不是邏輯上必需的話。另外,對(duì)極其簡(jiǎn)單的程序,編譯程序可以完全用快速寄存器來作臨時(shí)數(shù)據(jù)存貯。從而產(chǎn)生極高速的運(yùn)行。 顯然程序必須有一定的復(fù)雜度從而能具有典型性。最好的方法是確保程序能被邏輯地
3、優(yōu)化,而且通過把程序?qū)懙淖匀稽c(diǎn), 使得快速寄存器和摹本硬件特性的使用基本上正確,程序編寫時(shí)最好不要用某一語言專有的成份,以便用于具有相似子集的不同語言的比較。研制合成基準(zhǔn)程序的一個(gè)較好的方式是設(shè)計(jì)一些模塊,各個(gè)模塊使用語言的可編輯-精選文檔 -各種特性。每個(gè)模塊可代表一種運(yùn)算, 包含在一個(gè)循環(huán)中運(yùn)行多次,模塊的每次運(yùn)行最好產(chǎn)生不同的結(jié)果, 但同時(shí)又要注意能夠無窮多以重復(fù)執(zhí)行而不產(chǎn)生數(shù)值溢出或其它差錯(cuò),模塊的結(jié) 構(gòu)和循環(huán) 次數(shù)應(yīng)選擇和設(shè)計(jì) 得使程序產(chǎn)生的whetstone指令的頻度和 949 個(gè)程序統(tǒng)計(jì)得來的數(shù)據(jù)一致。關(guān)于將基準(zhǔn)程序和分折數(shù)據(jù)進(jìn)行匹配的方法的選擇也是應(yīng)著重考慮的事。應(yīng)該用相對(duì)而言
4、比較少的模塊循環(huán)控制變量實(shí)現(xiàn)盡可能多的指令匹配,一種方法是用最小二乘法。 較好的方法是根據(jù)指令的出現(xiàn)頻度和執(zhí)行時(shí)間加權(quán)。從而給較重要的指令以較大的權(quán)重。模塊本身也經(jīng)過多次設(shè)計(jì)和修改以獲得最好的效果。2 程序的結(jié)構(gòu)whetstone程序的結(jié)構(gòu)很簡(jiǎn)單。它由8 個(gè)模塊(還有 3 個(gè)模塊,但循環(huán)變量為 0 ,忽略)組成,每個(gè)模塊考慮一種運(yùn)算,用一個(gè)循環(huán)變量控制,整個(gè)合成基準(zhǔn)程序由對(duì)應(yīng) 8 個(gè)模塊的 8 個(gè)循環(huán)語句組成其循環(huán)次數(shù)分別為 n1 ,n2, ······n8。通過控制它們的相對(duì)值,可以改變整個(gè)程序中各個(gè)指令出現(xiàn)的頻度。模塊的運(yùn)算應(yīng)該是
5、一般的基本運(yùn)算。它的設(shè)計(jì)準(zhǔn)則是: 每次執(zhí)行產(chǎn)生不同的結(jié)果同時(shí)又能無限以循環(huán)運(yùn)算而不溢出或出現(xiàn)其它偏差。程序中用的基本算術(shù)運(yùn)算是一組語句:x1 = (x1+ x2+x3-x4)* 0 .5;x2=( x1+ x2-x3+x4)* 0. 5;x3= (x1-x2+x3+x4)* 0 .5;x4=( -x1+ x2+x3+x4)*0. 5;可編輯-精選文檔 -從理論上說, 上述變換以任意初始值開始都會(huì)收斂到x1= x2=x3=x4=1.0。這就滿足了關(guān)于模塊運(yùn)算的準(zhǔn)則。 考慮到機(jī)器精確性的限制和使每次計(jì)算結(jié)果不同,用 0.499975 代替因子 0.5 。x1 到 x4 的初值可任意選定,程序中用的
6、是 x1=1.0 ,x2=x3=x4=-1.0。上述模式的運(yùn)算在二個(gè)模塊中使用(模塊 1 ,2) 。其中變量分別為簡(jiǎn)單變?cè)?,?shù)組元素和做子程序調(diào)用參數(shù)的數(shù)組元素。在過程pa 中也使用了一個(gè)循環(huán),用于控制參數(shù)調(diào)用對(duì)過程調(diào)用的比例。模塊 3 是測(cè)試條件轉(zhuǎn)移的。它由一組條件語句組成,形式如下:if j =1then j=2else j= 3 ;if j> 2 then j= 0else j= 1 ;if j < lthen j=1else j=0 ;如果選定 j 的權(quán)值為 1 ,那么 j 的值一直在 0 ,1 之間變化, 每個(gè)條件都輪流為真和假,這樣條件和j 的值每次都變化而又不會(huì)出現(xiàn)別
7、的問題。模塊 4 測(cè)試整數(shù)運(yùn)算和數(shù)組存取。形式如下:j = j *(k-j)*(l-k);k = l * k - (l-j) * k;l= (l-k) * (k+j);e1l-2 = j + k + l;e1k-2 = j * k * l;當(dāng) j,k,l 的初值分別取為1 ,2 ,3 時(shí),每次計(jì)算產(chǎn)生的結(jié)果相同j,k ,l可編輯-精選文檔 -的值不變,由于計(jì)算的式子比較復(fù)雜, 所以編譯程序不大可能看出來而給予優(yōu)化。模塊 5 測(cè)試關(guān)于三角函數(shù)的計(jì)算。選擇的計(jì)算式子是:x = t*atan(2.0*sin(x)*cos(x)/(cos(x+y)+cos(x-y)-1.0);y = t*atan(2
8、.0*sin(y)*cos(y)/(cos(x+y)+cos(x-y)-1.0);當(dāng)取值 t=0.99975, x=y=0.5時(shí),這兩個(gè)式子幾乎把x,y 變到它們自身只產(chǎn)生一個(gè)微小的變化。 因此經(jīng)過多次運(yùn)算也無出現(xiàn)溢出現(xiàn)象,這個(gè)模塊是精心設(shè)計(jì)的,考慮了 sin 和 cos , arctan 的相對(duì)比例。模塊 6 是關(guān)于過程調(diào)用和參數(shù)尋址的。 使用了一個(gè)帶有三個(gè)參數(shù)的過程p3 。p3 過程如下:*x = *y;*y = *z;*x = t * (*x + *y);*y = t1 * (*x + *y);*z = (*x + *y)/t2;全局變量 t 和在別的模塊時(shí)的值相同。當(dāng)x,y 取初值 1
9、,0 時(shí),每次計(jì)算結(jié)果 x 與 y 相同,而和原來的值非常接近。模塊 7 是關(guān)于數(shù)組調(diào)用的,它用了一個(gè)無參數(shù)過程po ,用來增加過程調(diào)用的比例。每次運(yùn)行結(jié)果 ,e11 和 e1 3 的值互換, po 過程如下:e1j = e1k;e1k = e1l;e1l = e1j;模塊 8 用一個(gè)賦值語句測(cè)試標(biāo)準(zhǔn)函數(shù)。算式如下:可編輯-精選文檔 -x = sqrt(exp(log(x)/t1);當(dāng)初值取為 tl= 0.50025,x=0.75 。重復(fù)執(zhí)行這個(gè)語句可以得到一個(gè)穩(wěn)定的x 值的序列而不會(huì)出現(xiàn)溢出情況。在上述所有模塊中, 乘和除都經(jīng)過精心選擇 以符合統(tǒng)計(jì)數(shù)據(jù)通過控制循環(huán)變量的相對(duì)值。 可以改變整十
10、程序中各類指令出現(xiàn)的頻率。根據(jù)這一點(diǎn), 用最優(yōu)化的方法,按照使整個(gè)程序中各類指令出現(xiàn)的頻率盡可能接近某一特定的頻率(這是依賴用戶的要求的)的要求即可把n1 ,n2, ······n8的相對(duì)值確定下來,下面給出的 nk的相對(duì)值是根據(jù)Gibson 混合得到的,也是通常所用的:n 1n 2n 3n4n5n6n7n812143452103289961 693特別地當(dāng) n 就取上述數(shù)值時(shí),執(zhí)行一次程序恰好相當(dāng)于執(zhí)行了10萬條whetstone機(jī)器指令。可用 whetstone基準(zhǔn)程序?qū)Σ煌臋C(jī)器、語言編譯程序和精度進(jìn)行測(cè)試,可以獲取關(guān)于語言以及
11、它們的實(shí)現(xiàn)的知識(shí),此程序因模塊簡(jiǎn)單, 譯成別的語言也非常容易,在不同的機(jī)器上執(zhí)行上述合成基準(zhǔn)程序,或在不同機(jī)器上執(zhí)行不同語言的上述程序即可對(duì)不同的機(jī)器或?qū)ν瑱C(jī)器上不同的編譯系統(tǒng)進(jìn)行性能比較。whetstone基準(zhǔn)程序?yàn)楹笕司幹坪铣苫鶞?zhǔn)程序提供了個(gè)很好的借鑒。3 whetstone的局限whetstone基準(zhǔn)程序?qū)茖W(xué)計(jì)算型的應(yīng)用是個(gè)較好的模擬,為人們?cè)u(píng)價(jià)一個(gè)系統(tǒng)處理機(jī)能力提供了一個(gè)工具,在過去10 年里得到廣泛的應(yīng)用但是它也可編輯-精選文檔 -有其局限性,討論如:1)它所依照的統(tǒng)計(jì)數(shù)據(jù)均為70 年代收集的,不能代表當(dāng)今的程序特點(diǎn),有些語言特點(diǎn)如指針、記錄等都未涉及到;2)浮點(diǎn)運(yùn)算太多,即使對(duì)科學(xué)計(jì)算型的任務(wù)來說, 它的搞浮點(diǎn)運(yùn)算也太多了;3)程序中操作數(shù)的選取或者是任意的,或者是為了滿足前述的設(shè)計(jì)準(zhǔn)則,沒有考察這些參數(shù)是否有代表性;4)對(duì) I/O 系統(tǒng)和監(jiān)督軟件的調(diào)用無代表性;5)涉及到的存貯空間太小,目標(biāo)碼和涉及到的數(shù)據(jù)太小。目標(biāo)文件太小,在有無cache的機(jī)器上會(huì)產(chǎn)生根大的差別。在運(yùn)行時(shí)可能整個(gè)目標(biāo)文件都裝在cache 中,這樣得出的結(jié)果對(duì)比較的意義不大,數(shù)據(jù)太少,變?cè)伲谟械臋C(jī)器中就可能全用快速寄存器保存中間變量,這樣可大大節(jié)省時(shí)間, 但結(jié)果也就不具有太大的典型性;6)模塊太簡(jiǎn)單,使用的語言現(xiàn)象太少。4 測(cè)試結(jié)果本次測(cè)試選用兩臺(tái)配置不同的機(jī)器進(jìn)行whetsto
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 代賣房定金合同范本
- 2024年廣州市天河區(qū)棠福學(xué)校招聘特教教師考試真題
- 電子商務(wù)與農(nóng)村物流發(fā)展的融合研究
- 全鋼中央臺(tái)行業(yè)行業(yè)發(fā)展趨勢(shì)及投資戰(zhàn)略研究分析報(bào)告
- 2025年度建筑工程施工安全責(zé)任免除與質(zhì)量保證合同
- 2025年度共享單車用戶授權(quán)與騎行規(guī)則合同
- 二零二五年度工業(yè)用地土地轉(zhuǎn)讓居間合作協(xié)議
- 二零二五年度老年父母遺產(chǎn)分配與管理合同
- 2025年度個(gè)人租房合同及租后房屋安全檢查協(xié)議
- 2025年度歷史文化街區(qū)房屋拆遷補(bǔ)償合同
- 2025年二級(jí)建造師聘用合同范文(三篇)
- 湖北省2025屆高三T8聯(lián)盟模擬考數(shù)學(xué)試卷(解析版)
- 2025年北京電子科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2025年包頭輕工職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫含答案解析
- 工業(yè)統(tǒng)計(jì)知識(shí)培訓(xùn)
- 2025年蘇州高鐵新城國有資產(chǎn)控股(集團(tuán))有限公司招聘筆試參考題庫附帶答案詳解
- 鄭州市2025年高中畢業(yè)年級(jí)第一次質(zhì)量預(yù)測(cè)(一模) 化學(xué)試卷(含標(biāo)準(zhǔn)答案)
- 2025年臨床醫(yī)師定期考核必考復(fù)習(xí)題庫及答案(1080題)
- 電梯維保知識(shí)培訓(xùn)課件
- 山東省海洋知識(shí)競(jìng)賽(初中組)考試題及答案
- 幼兒園藝術(shù)領(lǐng)域活動(dòng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論