268

更新時間: 2016-04-13

廣告

阿姆達爾定律實際上定義了採取增強(加速)某部分功能處理的措施后可獲得的性能改進或執行時間的加速比。單個存儲器的性能由生產廠商在數據手冊中說明,那麼由多個存儲體構成的并行存儲系統的性能如何分析,尤其是系統的吞吐率及相應時間就必須藉助數學模型進行分析,或者再利用軟體進行模擬確定。阿姆達爾定律是計算機系統設計的重要定量原理之一,於1967年由IBM360系列機的主要設計者阿姆達爾首先提出。阿姆達爾定律是一個非常簡單而通用的并行處理性能模型。

廣告

1 阿姆達爾定律 - 背景

隨著從存儲系統的日益複雜,對存儲系統的性能分析就顯得非常必要。單個存儲器的性能由生產廠商在數據手冊中說明,那麼由多個存儲體構成的并行存儲系統的性能如何分析,尤其是系統的吞吐率及相應時間就必須藉助數學模型進行分析,或者再利用軟體進行模擬確定。對於更全面的系統模擬將花費非常大的代價,因此實際上多採用數學模型的方式確定。為此,利用阿姆達爾定律來說明存儲系統性能分析模型。

2 阿姆達爾定律 - 簡介

Amdahl加速定律的基本出發點是:1.對於很多 科學計算,實時性要求很高,即在此類應用中時間是個關鍵因素,而計算負載是固定不變的。為此在一定的計算負載下,為達到實時性可利用增加處理器數來提高計算速度;2.因為固定的計算負載是可分佈在多個處理器上的,這樣增加了處理器就加快了執行速度,從而達到了加速的目的。在此意義下,1967年Amdahl推導出了固定負載的加速公式。

阿姆達爾定律是計算機系統設計的重要定量原理之一,於1967年由IBM360系列機的主要設計者阿姆達爾首先提出。該定律是指:系統中對某一部件採用更快執行方式所能獲得的系統性能改進程度,取決於這種執行方式被使用的頻率,或所佔總執行時間的比例。阿姆達爾定律實際上定義了採取增強(加速)某部分功能處理的措施后可獲得的性能改進或執行時間的加速比。簡單來說是通過更快的處理器來獲得加速是由慢的系統組件所限制。

阿姆達爾曾致力於并行處理系統的研究。對於固定負載情況下描述并行處理效果的加速比s,阿姆達爾經過深入研究給出了如下公式:

S=1/(1-a+a/n)

其中,a為并行計算部分所佔比例,n為并行處理結點個數。這樣,當1-a=0時,(即沒有串列,只有并行)最大加速比s=n;當a=0時(即只有串列,沒有并行),最小加速比s=1;當n→∞時,極限加速比s→ 1/(1-a),這也就是加速比的上限。例如,若串列代碼占整個代碼的25%,則并行處理的總體性能不可能超過4。這一公式已被學術界所接受,並被稱做「阿姆達爾定律」,也稱為「安達爾定理」(Amdahl law)。

廣告

3 阿姆達爾定律 - 并行存儲性能中的阿姆達爾定律

并行存儲系統的性能分析可以通過簡單的性能模型展開,這其中主要就是阿姆達爾定律。阿姆達爾定律是一個非常簡單而通用的并行處理性能模型。這裡以程序的并行運行為例說明該定律,其他情況比較容易進行推推導分析。由於單個程序內部不一定全部可以實現并行處理。那麼假設f為程序中必須進行串列操作的部分比率,其餘的1-f部分則認為可以完全在硬體上并行執行,而且P表示硬體的并行度。P在不同形式的計算機系統中代表著不同的含義:

(1)在MIMD系統中,P是處理器的數目;

(2)在SIMD系統中,P是正在處理的數據數目;

(3)在流水方式工作的SIMD系統中,P是矢量速度和標量速度的比;

(4)在流水方式工作的MIMD系統中,P是流水線功能段的數目。

為了在并行度p的硬體上獲得50%以上的效率,穿行操縱部分比率不能超過1/(P-1)。隨著P的增加,相應條件也越來越難以滿足。最早應用Amdahl定律對串列處理進行性能評價,但是在各種并行工作環境中Amdahl定律也非常有用。例如:在并行度很高的系統中,輕微的非并行代碼會對系統帶來很大的影響;快速的矢量處理器必須具有一個快速的標量處理器以獲得其峰值性能的相當大部分能力;對當前穿行執行的小部分代碼進行并行完成也可以增加相當大的效率。

雖然Amdahl定律建立了一個非常簡單的行囊模型,但也不能過於簡單化使用。系統規模,特別是處理器數目P通常為了處理更大的問題而不斷增加,而通常問題的規模的增加並不能顯著增加串列工作量。這種情況下,f與問題大小成反比。如果問題大小歲并行度P增加而增大,那麼隨著問題和系統規模的增大,性能表現呈現出收縮性。在計算機系統中,Amdahl定律也可表述為,對系統內某部分的并行化改進造成的整體性能提升量取決於該部分在整體過程中執行的時間,即經常性事件或其部分的改進造成的整體性能得到較大提升。加速比也可以表示為使用改進方式完成整個任務時間的比值。實際上有兩個主要因素影響加速比,第一個因素是需要改進提高速度部分在總執行時間中所佔的比值。實際上有兩個主要因素影響加速比,第一個因素是需要改進提高速度部分在總執行時間中所佔的比例。譬如,1s完成的人物其中有200ms可以改進,那麼該比例救贖20%,可以稱為改進比例。第二個因素是採用改進方式后相應部分速度提高的程度。可以用未改進情況下該部分執行時間與改進后執行時間的比值衡量。改進加速比一般都大於1。那麼改進后的任務總時間為沒有改進的部分執行時間和改進部分執行時間的和。

廣告