第二章 計算機的效能
description
Transcript of 第二章 計算機的效能
![Page 1: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/1.jpg)
著作權所有 © 旗標出版股份有限公司
本著作含書附光碟之內容 (不含 GPL 軟體 ),僅授權合法持有本書之讀者(包含個人及法人)非商業用途之使用,切勿置放在網路上播放或供人下載,除此之外,未經授權不得將全部或局部內容以任何形式重製、轉載、散佈或以其他任何形式、基於任何目的加以利用。
第二章 計算機的效能
2.1 認識效能2.2 效能的計算2.3 安德定理( Amdahl’s Law )2.4 評估效能的標準程式2.5 效能評估之標準組織
![Page 2: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/2.jpg)
2.1 認識效能
單一電腦的效能表示
不同電腦間的相對效能
![Page 3: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/3.jpg)
2.1.1 單一電腦的效能表示
量化與標準
車 種 載客量 極速( km/hr ) 0-100km/h 加速( Sec )
F1 方程式賽車 1 375 3
跑車 2 300 4.2
轎車 4 250 9.1
休旅車 9 180 13.1
各種汽車的性能比較
![Page 4: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/4.jpg)
2.1.1 單一電腦的效能表示
量化與標準
車 種 單程所需時間 (hr) 平均每小時載客數
F1 方程式賽車 0.24 4.17
跑車 0.3 6.67
轎車 0.36 11.11
休旅車 0.5 18
各種汽車往返相距 90 公里兩地所需的時間與載客效率表現
![Page 5: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/5.jpg)
2.1.1 單一電腦的效能表示
量化與標準 用數據來表現效能,就是一種量化( quantificati
on )的過程 。 當計算方式都相同,單位也都一樣,我們可以從數字輕易地了解比較結果。
即使沒有兩種以上的車輛互相比較,我們也能認識每一種車輛的特性。
數字的產生方法就是一種標準。
![Page 6: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/6.jpg)
2.1.1 單一電腦的效能表示
兩種角度 - 執行時間與生成量 執行時間( execution time )
一件工作從開始執行到完成所需要的時間。 生成量( throughput)
在單位時間內可完成特定工作的最高次數。
![Page 7: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/7.jpg)
2.1 認識效能
單一電腦的效能表示
不同電腦間的相對效能
![Page 8: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/8.jpg)
2.1.2 不同電腦間的相對效能
有很多時候 ,「哪一部電腦比較快?快多少?」這樣模糊化的結論還比較有用。
想要比較兩個不同系統的效能,同樣必須考慮衡量的標準,較公正的方法是在兩個不同的系統上執行相同的程式。
![Page 9: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/9.jpg)
2.1.2 不同電腦間的相對效能
假設在 A 、 B 兩個不同系統執行同一個泡沫排序法( bubble sort )的程式: 欲排序的資料為 n 筆。 A 系統完成 n 筆資料的排序需費時 x 秒。 B 系統完成 n 筆資料的排序需花費 y 秒。 執行時間與效能的關係式為:
1 Performance
Execution Time
![Page 10: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/10.jpg)
2.1.2 不同電腦間的相對效能
A 系統的效能為:
B 系統的效能為:
1 APerformance
x
1 BPerformance
y
![Page 11: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/11.jpg)
2.1.2 不同電腦間的相對效能
若系統 A 的效能比系統 B 優異,則:
1
1A
B
Performance yx zPerformance x
y
系統 A 的效能是系統 B 的 z倍
![Page 12: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/12.jpg)
2.1.2 不同電腦間的相對效能
若系統 A 是系統 B 的改良版本,則:
1 11 100% %
1A B
B
Performance Performance yx y w
Performance xy
系統 A 效能比系統 B 快上 w%
![Page 13: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/13.jpg)
2.2 效能的計算
基本的效能計算方式
以單位時間執行之指令數為效能標準
平均效能的計算方式
相對效能的評估
![Page 14: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/14.jpg)
2.2.1 基本的效能計算方式
基本效能公式 執行時間也可稱為程式之 CPU 執行時間( CPU ex
ecution time for a program ),簡稱 CPU 時間( CPU time )。
程式的 CPU 時間計算考量因素: 時脈週期( clock cycle time ) 單一指令的時脈週期數( clock cycles per instruction ,
CPI ) 程式內的指令個數( instruction count , IC )
![Page 15: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/15.jpg)
2.2.1 基本的效能計算方式
基本效能公式 時脈週期:電腦硬體中,必須藉由一種規律發出的訊號來觸發或啟動 CPU 工作,這些訊號的頻率稱為時脈頻率( clock rate ),時脈頻率越高,速度就越快;其倒數即為時脈週期。 CPU 在每個時脈週期內可以完成一個很基本的動作。
![Page 16: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/16.jpg)
2.2.1 基本的效能計算方式
基本效能公式 單一指令的時脈週期數:程式的指令不見得是 CP
U 電路中的基本動作,事實上要執行完一個指令,通常必須經由幾個更小的執行週期才能完成;而這些執行週期則是靠硬體所提供的時脈訊號來驅動,所以指令的長度可用時脈週期( clock cycle)為單位來表示。
:
![Page 17: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/17.jpg)
2.2.1 基本的效能計算方式
基本效能公式 不同類型的指令可能會需要不同的時脈週期,所以我們就以其平均數值來代表程式內各指令的時脈週期數,並稱之為單一指令的平均時脈週期數。
不同程式的指令組成不同,因此可能會有不同的CPI 。
:
![Page 18: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/18.jpg)
2.2.1 基本的效能計算方式
基本效能公式 程式內的指令個數:以程式的觀點來看,指令是最基本的單位,因為程式結構中,不管是主程式、或者是常式( routine )、巨集( macro ),都是由一連串的指令所組成。而程式指令執行次數的多寡,必然直接影響程式執行時間的長短。
:
![Page 19: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/19.jpg)
2.2.1 基本的效能計算方式
基本效能公式 CPU 時間的公式:
以時脈週期表示: CPU time = clock cycle time × CPI × IC
以時脈頻率表示:
:
CPI ICCPU time
clock rate
![Page 20: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/20.jpg)
2.2.1 基本的效能計算方式
影響效能的因素分析 時脈週期(頻率)、單一指令的平均時脈週期(
CPI )、以及程式指令個數( IC )三者共同決定了 CPU 的效能。
這三者彼此可能會互相牽動,改動任何一樣,都有可能會影響到另外二者。
幾乎無法只從單一的方法來增進 CPU 的效能。
:
![Page 21: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/21.jpg)
2.2.1 基本的效能計算方式
影響效能的因素分析
Seconds Seconds Cycles InstructionsCPU execution time
Program Cycle Instruction Program
第一項 第二項 第三項
Second :秒,即是時間Program : CPU 執行的程式Instruction :所執行程式的指令(數)Cycle :時脈(數)
![Page 22: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/22.jpg)
2.2.1 基本的效能計算方式
影響效能的因素分析 第一項:工作時脈頻率或是單一時脈的週期。 第二項:單一指令的平均時脈週期。 第三項:一個程式的指令個數。
![Page 23: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/23.jpg)
2.2.1 基本的效能計算方式
第一項 - 工作時脈頻率或是單一時脈的週期: 表面上看來,複雜的硬體電路可以提供很多高效能的指令供程式來應用,對整體效能應該會有很大的幫助。
但在現實上,晶片的複雜程度與它所能承受的工作頻率有很大的關係。
越複雜的電路所能加諸其上的時脈頻率越低,相對地時脈週期就越長。反之,簡單的電路雖無法提供強大的指令,但卻可以大幅提升時脈頻率,縮短每個時脈週期的時間。
![Page 24: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/24.jpg)
2.2.1 基本的效能計算方式
第二項 - 單一指令的平均時脈週期是影響 CPU 時間的第二因素 ,相關的有: 指令集:
不同 ISA會影響指令的平均時脈週期。 單一指令週期( single-cycle ) 多重指令週期( multi-cycle )
硬體結構: 每個機器碼指令會對應到實現該指令的電路。 相同的時脈頻率下,簡單電路所需的時脈週期數會遠較使用大量邏輯閘來實現的複雜硬體電路多很多。
![Page 25: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/25.jpg)
2.2.1 基本的效能計算方式
第三項 -一個程式的指令個數是影響 CPU 時間的第一因素,相關的有: 程式寫作方式 :
程式的寫作方式對程式指令個數( IC )的影響最大,尤其若選擇了不同演算法來寫程式,所造成的差異更是不同數量級之間的落差 。
編譯器: 將高階語言的程式轉為機器語言程式 。指令個數會因編譯器的最佳化而減少,而這就會影響程式最終的執行效能。
![Page 26: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/26.jpg)
2.2.1 基本的效能計算方式
指令集 : 電腦的處理器一般都是遵循各自選擇的指令集架構( In
struction Set Architecture , ISA )來設計,而據此所設計的 CPU 是否正好具有合適的硬體單元可直接滿足程式所需要的運算,則會影響完成工作所需要的指令個數。
![Page 27: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/27.jpg)
2.2.1 基本的效能計算方式
影響效能的因素分析
硬體或軟體部分 對效能所產生的影響
演算法 影響程式必須執行的指令個數,以及會產生多少 I/O
程式語言、編譯器,以及計算機指令集結構 決定會產生多少個機器指令
處理器和記憶體系統 決定執行每道指令所需的時間,以及時脈頻率
I/O 系統(硬體和作業系統) 決定每次 I/O處理的速度
影響程式執行效能的因素
![Page 28: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/28.jpg)
2.2 效能的計算
基本的效能計算方式
以單位時間執行之指令數為效能標準
平均效能的計算方式
相對效能的評估
![Page 29: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/29.jpg)
2.2.2 以單位時間執行之指令數為效能標準
每秒百萬個指令( MIPS ) MIPS ( Million Instructions Per Second ),定義為「電腦每秒可執行多少百萬個指令」。
![Page 30: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/30.jpg)
2.2.2 以單位時間執行之指令數為效能標準
每秒百萬個指令( MIPS )
6
6
6
6
10
10
1
10
10
ICMIPS
CPU time
IC
IC CPI clock cycle time
CPI clock cycle time
clock rate
CPI
![Page 31: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/31.jpg)
2.2.2 以單位時間執行之指令數為效能標準
每秒百萬個指令( MIPS ) 計算 MIPS只需要 CPI 、時脈頻率(或是時脈週期)即可,而程式的指令個數 IC 與指令集卻不予考慮 。
若將 MIPS 當作唯一評估電腦系統效能的標準,並用來評估單一程式的執行,就可能會得到不正確的結果 。
![Page 32: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/32.jpg)
2.2.2 以單位時間執行之指令數為效能標準
【例題 1】假設有一台甲電腦,其時脈週期為 2ns ,但有三類具有不同 C
PI 的指令,如下表所示:
指令類型 CPI
A類 1
B類 2
C類 3
![Page 33: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/33.jpg)
2.2.2 以單位時間執行之指令數為效能標準
【例題 1】現在為了要執行某一程式,分別用兩個不同編譯器( compiler 1 與 compiler 2 )將該原始程式進行編譯,假設編譯後的程式所包含之各類指令個數如下:
請問電腦執行哪一個編譯器所產生程式的效能較好?
編譯後程式各類型指令的個數
A B C
程式 1 (使用 compiler 1 ) 5,000 1,000 1,000
程式 2 (使用 compiler 2 ) 10,000 1,000 1,000
![Page 34: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/34.jpg)
2.2.2 以單位時間執行之指令數為效能標準
【解答】比較 CPU 時間:程式的 CPU 時脈週期數:
程式的 CPU 時間:
由於 CPU time1 =20μs < 30μs = CPU time2 ,第一個編譯器所得程式的執行速度較快!
1 5 000 1 1 000 2 1 000 3 10 000CPU clock cycles , , , , 2 10 000 1 1 000 2 1 000 3 15 000CPU clock cycles , , , ,
1 10,000 2 20CPU time ns s 2 15,000 2 30CPU time ns s
![Page 35: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/35.jpg)
2.2.2 以單位時間執行之指令數為效能標準
【解答】比較兩者的 MIPS :
第一個編譯器所編譯出來的程式「看起來」反而效能較差!
1 6
5 000 1 000 1 000350
20 10
( , , , )MIPS
2 6
10 000 1 000 1 000400
30 10
( , , , )MIPS
![Page 36: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/36.jpg)
2.2.2 以單位時間執行之指令數為效能標準
每秒百萬個浮點運算( MFLOPS ) MFLOPS ( Million FLoating-point Operations Per S
econd ):用來評估含有浮點運算的程式。 單倍精準( single precision ) 雙倍精準( double precision )
![Page 37: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/37.jpg)
2.2.2 以單位時間執行之指令數為效能標準
每秒百萬個浮點運算( MFLOPS )
6MFLOP
10
OPS
CPU time
OP :程式中浮點運算的數目
![Page 38: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/38.jpg)
2.2.2 以單位時間執行之指令數為效能標準
每秒百萬個浮點運算( MFLOPS ) MFLOPS 也有和MIPS 相同的問題。
只需要 CPI 、時脈頻率,程式的指令個數 IC 與指令集不予考慮。
將 MFLOPS拿來評估一個幾乎沒有浮點運算的程式,可能導致其結果為零 。
MIPS和MFLOPS只有在同樣的標準下 ,才會是一個有用的標準單位。
![Page 39: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/39.jpg)
2.2 效能的計算
基本的效能計算方式
以單位時間執行之指令數為效能標準
平均效能的計算方式
相對效能的評估
![Page 40: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/40.jpg)
2.2.3 平均效能的計算方式
來自統計學「平均數」的概念 。
其意義為「將一群體資料的所有數值( CPU 時間或是 MIPS )簡化為一數值或是代表一群體資料的平均水準,以便於多個群體資料之間的相互比較,使得結果的顯示更為有意義、且符合評量者對數值的需求」。
![Page 41: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/41.jpg)
2.2.3 平均效能的計算方式
算術平均數( arithmetic mean , AM )
1
1AM
n
ii
Timen
n :電腦系統會執行的程式個數
Timei:第 i 個程式的 CPU 時間
![Page 42: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/42.jpg)
2.2.3 平均效能的計算方式
權重算術平均數( weighted arithmetic mean , WAM ) 考量各個程式執行次數佔總次數的比率(或稱程式執行頻率 ) 。
加權( weighting )的觀念。
n :列入評估的程式總個數
Timei:第 i 個程式的 CPU 時間
Weighti :對應權重
1
WAMn
i ii
Weight Time
![Page 43: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/43.jpg)
2.2.3 平均效能的計算方式
調和平均數( Harmonic Mean , HM ) 以速率來表示效能。 與 AM 是成倒數的關係 。
n :執行程式的個數
Ratei:第 i 個程式的速率 (CPU 時間倒數 )
1
HM1n
i i
n
Rate
1
HMAM
![Page 44: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/44.jpg)
2.2.3 平均效能的計算方式
權重調和平均數( weighted harmonic mean , WHM ) 加權( weighting )的觀念。
n :執行程式的個數
Ratei:第 i 個程式的速率 (CPU 時間倒數 )
Weighti :對應權重
1
1n
i
i i
WHMWeight
Rate
![Page 45: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/45.jpg)
2.2 效能的計算
基本的效能計算方式
以單位時間執行之指令數為效能標準
平均效能的計算方式
相對效能的評估
![Page 46: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/46.jpg)
2.2.4 相對效能的評估
相對效能與正規化
甲電腦之CPU 時間
乙電腦之CPU 時間
依據甲電腦做倍數正規化處理
依據乙電腦做倍數正規化處理
甲 乙 甲 乙
程式 x 10 200 1 20 0.05 1
程式 y 5000 250 1 0.05 20 1
AM 2505 225 1 10.025 10.025 1
x 與 y 兩程式在不同電腦上執行的 CPU 時間與 AM
![Page 47: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/47.jpg)
2.2.4 相對效能的評估
計算幾何平均數( Geometric Mean , GM ) 倍數的算術平均容易受單一較高倍數的程式所影響,而造成嚴重偏離實際結果的情況。
採用計算幾何平均數可解決此問題。
1
n
ni
i
GM Time
n :資料總個數 Timei:第 i項(正規化之後)的 CPU 時間
![Page 48: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/48.jpg)
2.2.4 相對效能的評估
計算幾何平均數( Geometric Mean , GM )
甲電腦之CPU 時間
乙電腦之CPU 時間
依據甲電腦做倍數正規化處理
依據乙電腦做倍數正規化處理
甲 乙 甲 乙
程式 x 10 200 1 20 0.05 1
程式 y 5000 250 1 0.05 20 1
GM 223.6 223.6 1 1 1 1
x 與 y 兩程式在不同電腦上執行的 CPU 時間與 GM
![Page 49: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/49.jpg)
2.2.4 相對效能的評估
各項效能計算方式的整理
IC CPI CPU time
Clock rate
6M
10
ICIPS
CPU time
6MFLOP
10
OPS
CPU time
名稱 公式
CPU 時間
MIPS
MFLOPS
![Page 50: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/50.jpg)
2.2.4 相對效能的評估
各項效能計算方式的整理
1
1AM
n
ii
Timen
1
WAMn
i ii
Weight Time
1
HM1n
i i
n
Rate
平均數名稱 縮寫 公式
算數平均數 AM
權重算數平均數 WAM|
**調和平均數 HM
![Page 51: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/51.jpg)
2.2.4 相對效能的評估
各項效能計算方式的整理
1
ni
i i
nWHM
Weight
Rate
1
n
ni
i
GM Time
平均數名稱 縮寫 公式
權重調和平均數 WHM
幾何平均數 GM |
![Page 52: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/52.jpg)
2.3 安德定理( Amdahl’s Law )
利用某種較快方式來改善局部的系統,以提升整體系統效能時,其所能改善的程度,會受限於改善前「實際執行該局部系統所需時間」相對於「整體系統之執行時間」所佔的比例。
例: 假使加法運算在原來的程式中只佔 30% 的執行時間,那麼不論如何努力提升加法的效能,最多也只能改善整體系統效能的 30% 。
![Page 53: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/53.jpg)
2.3 安德定理( Amdahl’s Law )
安德定理的定義式 :
S代表整體系統的增速 f 是系統改善部分占所有工作中的比例 k 表示改善部分之效能相較於未改善前的增速倍數。
1
1S
ff
k
![Page 54: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/54.jpg)
2.3 安德定理( Amdahl’s Law )
【例題 2】某家系統廠商想推出一個新款的周邊設備,他們的想法是將過去的機型改進一部分之後即可出貨,但因囿於開發經費的限制,所以他們必須對改善的部分做取捨:
1. 只改善 CPU 時間2. 只改善 I/O 時間
假設上述的改善都是 5 倍,而原來的周邊設備與電腦做一次資料傳輸需花費 50ms 的 CPU 時間與 150ms 的 I/O 時間,如果你是他們的決策者,是否能給予廠商建議呢?
![Page 55: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/55.jpg)
2.3 安德定理( Amdahl’s Law )
【解答】1. 若只改善 CPU 時間根據安德定理的定義,「改善 CPU 時間」為系統改善的一個部分,則我們可以先求出 CPU 時間所佔的比例(即改善 CPU後,整體效能所能提升的上限):
改善 CPU 時間後,其效能相較於原來的倍數為:
50 50 1
50 150 200 4CPU
msf
ms ms
1 1
1.251
1 411 4 5
CPUCPU
Speed upf
fk
![Page 56: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/56.jpg)
2.3 安德定理( Amdahl’s Law )
【解答】2. 只改善 I/O 時間相同地,先求出 I/O 時間所佔的比例
改善 I/O 時間後,其效能相較於原來的倍數為
結論:建議改善 I/O 時間,因為所獲得的效益較大。
/
150 150 3
50 150 200 4I O
msf
ms ms
//
1 12.5
31 431 4 5
I OI O
Speed upf
fk
![Page 57: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/57.jpg)
2.3 安德定理( Amdahl’s Law )
系統最多可以改善多少呢? 在理想情況下 ,假設「無窮倍」的改善,則:
最大的系統效能改善倍數,是未改善部分所占比例的倒數。
1 1
11S
f ff
![Page 58: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/58.jpg)
2.4 評估效能的標準程式
認識效評程式( Benchmark )
三種著名的效評程式
效評程式的問題
![Page 59: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/59.jpg)
2.4.1 認識效評程式( Benchmark )
怎樣的程式才算是是一個評估電腦效能的標準程式 ?
單一的應用程式多半會大量使用一或數種特定類型的運算,所呈現出來的效能也只有整體系統的某一部分。
這些應用程式在不同架構的電腦上很可能會隨著作業系統或是編譯器而有所不同,並不能代表「相同程式」。 可攜性( portability )問題。
![Page 60: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/60.jpg)
2.4.1 認識效評程式( Benchmark )
評估電腦效能需要一套能涵蓋各種計算的混合程式( mixture programs )。 程式碼要短少、簡單。 可以在不同的平台上執行。
桌上型電腦 、膝上型輕便電腦 、可攜式的嵌入式系統裝置。
這樣的混合程式稱之為合成型效評程式( synthetic benchmarks )或效評程式組( benchmark suite ),而組成混合程式的單一程式則僅稱為效評程式( benchmark )。
![Page 61: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/61.jpg)
2.4 評估效能的標準程式
認識效評程式( Benchmark )
三種著名的效評程式
效評程式的問題
![Page 62: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/62.jpg)
2.4.2 三種著名的效評程式
Whetstone Whetstone 是在 1976年,由 Harold J. Curnow 與 Brian A. W
ichman首度於英國國家物理實驗室發表的效評程式。它是用 Algol 60 程式語言所撰寫,所強調的是密集的浮點數運算,因此在程式裡大量的呼叫函式庫中的三角函數與指數函數。
利用 Whetstone 量測出來的結果就稱為 WIPS ( Whetstone instructions per second ),亦可依照電腦速度的數量級,用「每秒千個 Whetstone 指令」( Kilo-Whetstone instructions per second , KWIPS )或「每秒百萬個 Whetstone 指令」( Million-Whetstone instructions per second , MWIPS )為單位來表示。
![Page 63: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/63.jpg)
2.4.2 三種著名的效評程式
Linpack Linpack ( linear algebra package )是由美國 Argonne國家實驗室的應數所主任 Jim Pool 在一系列非正式的討論會中所陸續提出,經評估後於 1974年所建立的一組數學軟體套件,專門使用倍精度浮點運算來解線性代數系統之數學方程組。後來該實驗室提出了 Linpack 計畫案,經國家科學基金會( National Science Foundation )審核同意並贊助經費,同時 Argonne 能源部 (Department of Energy) 也提供了電腦軟硬體上的支援。
![Page 64: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/64.jpg)
2.4.2 三種著名的效評程式
Linpack 整個計畫是由 J. J. Dongarra主持,並與 J. R. Bunch 、 C. B
. Mole 及 G. W. Stewart等分屬不同機構的人共同進行,結果於 1984年正式發表 Linpack 程式套件。一開始它是用來測量超級電腦的效能,最早的版本是以 Fortran77寫成,後來才又有了 C 與 Java 的版本。事實上 Linpack 有部分的工作是由 Los Alamos科學實驗室所完成,此外它還包含了由Jim Boyle和 Ken Dritz 所改編的 TAMPR 系統。
![Page 65: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/65.jpg)
2.4.2 三種著名的效評程式
Linpack 幾個重要的特色:
首開力學( Mechanics )分析軟體的先河。 提供軟體程式庫,一般使用者均可自行加以修正,以滿足特殊需求。
最早建立數學軟體的比較標準,尤其是 FLOPS 的測量方法。假使一個電腦系統能正確無誤地執行完這套程式,那麼即使硬體本身完全沒有浮點運算電路,一樣能測得其 FLOPS值。
適用於各種電腦系統,尤其它本身便是高效率的運算程式,因此儘管到了今日,它還是被廣泛運用來解各種數學和工程上的問題,甚至市面上常見的數學軟體如MATLAB等,也引用它來處理矩陣運算的問題。
![Page 66: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/66.jpg)
2.4.2 三種著名的效評程式
Dhrystone 前兩個效評程式都是以浮點運算為主,而最後要介紹的 Dh
rystone 則是以字串控制與整數運算為測量的重點,這是由西門子 Nixdorrf 資訊公司的 Reinford P. Weicher 於 1984年所發表。這個程式是以測試 CPU 效能為主要目的,因此並不包含輸出/輸入( I/O )或系統呼叫等動作。最特別的是它表示測量結果的方法,就直接以 Dhrystone 為單位,而不像Whetstone 是以 WIPS 來呈現。
![Page 67: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/67.jpg)
2.4.3 效評程式的問題
上述三個著名的效評程式不論其目的或寫法都相當簡單,原本應該是相當好的效能參考標準程式。
但不幸地,就因為它們的運算模式太過明確,使得許多受測系統的廠商為了獲得更好的測試數據,因而特別針對這些程式的特性來撰寫編譯器,例如故意把程式「最佳化」成一個極小的機器碼物件,使得它在執行過程幾乎都存放在快取記憶體( Cache )中,因而獲得超乎正常速度的結果。
![Page 68: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/68.jpg)
2.4 評估效能的標準程式
認識效評程式( Benchmark )
三種著名的效評程式
效評程式的問題
![Page 69: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/69.jpg)
2.4.3 效評程式的問題
這種作法對測試者而言卻是一種欺騙,因為結果數據並無法提供充分且正確的效能資訊,而且也讓效評程式的公信力受到相當程度的質疑。
![Page 70: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/70.jpg)
2.5 效能評估之標準組織
最著名的國際性的標準組織 – SPEC 「 Standard Performance Evaluation Corporation 」。 由一些工作站的製造商,如 Sun 、 DEC 、 MIPS等共同成立的一個非營利組織。
為新推出的高效能電腦建立、維持一個有意義的標準效評程式,並且為之背書。
![Page 71: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/71.jpg)
2.5 效能評估之標準組織
SPEC
OSG HPG GPC
CPU
JAVA
POWER-PERFORMANCE
WEB
SPECapc
SPECopc
SFS
SPEC 的組織圖
![Page 72: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/72.jpg)
2.5 效能評估之標準組織
開放式系統委員會( OSG )
高效能系統委員會( HPG )
繪圖及工作站效能委員會( GWPG )
![Page 73: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/73.jpg)
2.5.1 開放式系統委員會( OSG )
OSG ( The Open System Group )是 SPEC 最原始成立時所設的委員會,其主要焦點是放在桌上型電腦系統、高階工作站及伺服器。
OSG 之下又設立了六個子委員會,各自提供不同的效評程式(組): CPU 、 JAVA 、 MAIL 、 POWER-PERFORMANCE 、 S
FS 、 WEB
![Page 74: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/74.jpg)
2.5.1 開放式系統委員會( OSG )
CPU - 提供 CPU 效評程式,如 SPECint 、 SPECfp 、 SPECrates等。
JAVA - 提供 Java 用戶端( client )及伺服器( server )兩端的效評程式,如 JVM98 、 JBB2005 、 SPECjAppServer2004 。
MAIL - 提供網際網路服務提供者( ISP )的效評程式,如 SPECmail2001 。
![Page 75: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/75.jpg)
2.5.1 開放式系統委員會( OSG )
OWER-PERFORMANCE - 已開發出用來評估伺服器( server )等級電腦之能源效率的第一代 SPEC 效評程式 SPECpower_ssj2008 。
SFS - 提供檔案服務的效評程式,如 SFS93 、 SFS97 、 SFS2008 。
提供網站伺服器的效評程式,如WEB96 、 WEB99、 WEB99_SSL WEB2005 。
![Page 76: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/76.jpg)
2.5 效能評估之標準組織
開放式系統委員會( OSG )
高效能系統委員會( HPG )
繪圖及工作站效能委員會( GWPG )
![Page 77: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/77.jpg)
2.5.2 高效能系統委員會( HPG )
HPG ( High-Performance Group )所提供的效評程式主要是針對高效能的系統結構,如對等多處理器系統、工作站叢集、分散式平行記憶體系統與平行超級電腦。
HPG 可以說是一個跨平台的標準效評組織,所提供的效評程式是使用業界標準應用程式介面的實際程式,並且都是針對科學與科技的計算工作。
![Page 78: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/78.jpg)
2.5 效能評估之標準組織
開放式系統委員會( OSG )
高效能系統委員會( HPG )
繪圖及工作站效能委員會( GWPG )
![Page 79: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/79.jpg)
2.5.3 繪圖及工作站效能委員會( GWPG )
GWPG ( Graphics & Workstation Performance Group)之下包含了兩個獨立的專案組織,專司制定圖形及工作站效評程式、以及效能報告的常式: SPECapc SPECgpc
![Page 80: 第二章 計算機的效能](https://reader035.fdocument.pub/reader035/viewer/2022081420/56815461550346895dc27c03/html5/thumbnails/80.jpg)
2.5.3 繪圖及工作站效能委員會( GWPG )
SPECapc ( SPEC Application Performance Characterization) 成立於 1997年,提供強調圖形應用的效評程式,大多使用在 CAD/CAM 、或如一般的視覺化應用程式。
SPECgpc ( SPEC Graphics Performance Characterization ) 成立於 1993年,主要著力點在於 OpenGL 效能的評估,提供以執行 OpenGL應用程式界面( API )為主的效評程式。