Amdahl定律

Amdahl定律一般指阿姆達爾定律。計算機科學中的一個重要定律。

基本信息

簡介

計算機科學中的一個重要定律

背景

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

描述:

系統最佳化某部件所獲得的系統性能的改善程度,取決於該部件被使用的頻率,或所占總執行時間的比例。
Amdahl定律定義了加速比:加速比=採用改進措施後性能/未採用改進措施前的性能=未採用改進措施前執行某任務時間/採用改進措施後執行某任務的時間n個處理器加速因子S=n/[1+(n-1)f]:f為非平行百分比,n越大,S不能超過1/f
阿姆達爾定律不可並行計算的存在是很重要的,因為它將限制並行化的潛在好處。阿姆達爾定律指明如果一個計算的1/S本質上是順序的,那么最大的性能改進將受限於因數S。其論證如下,一個並行計算的執行時間TP將是順序部分計算時間和可並行化部分計算時間兩者的和。如果該計算順序地執行需要花費的時間是TS,則當有P個處理器時,TP可表示為S=n/[1+(n-1)f]
假想P值非常大,使得可並行化部分的執行時間可以忽略不計,則最大可改進的性能將是因數S。也就是說,順序執行代碼在計算中所占的比例決定了使用並行手段所能改進性能的潛力。
阿姆達爾定律(Amdahl誷Law)阿姆達爾定律是由IBM公司的計算機體系結構師吉恩·阿姆達爾在1967年發表的論文中提出的。這一定律與供求定律(LowofSupplyandDemand)具有同樣的意義:如前面的方程式所示,它描述了程式執行時間中兩部分的關係。兩個定律均是解釋重要現象行為的有力工具,且兩個定律都將影響該行為的其他參量視為常數。特別地,阿姆達爾定律適用於單程式場合。
實際的情況可能比阿姆達爾定律暗示的更壞。一個明擺著的問題是計算的可並行化部分可能無法改進到極致(即只要增加仍可繼續改進性能的處理器數總有一個上限),因此並行執行時間不大可能消失。此外,如在上一節所提到的,一個並行實現經常會比順序求解需要執行更多的總指令數,導致低估(1-1/S)·TS值。
包括阿姆達爾在內的許多人對該定律的解釋表明使用大量的處理器求解問題只能獲得有限的成功,但這似乎與大量的並行計算機能顯著改進計算性能的報導相衝突。到底哪一個是正確的呢?
阿姆達爾定律描述的一個關鍵事實是它只適用於計算的一種場合,即施行並行化後計算中的順序部分將占據執行時間的主要部分。阿姆達爾定律是在固定套用規模的前提下考慮並行性增長的影響。但大多數並行計算則是固定並行性而擴展套用的規模。在這種情況下,隨著所考慮規模的增加,順序代碼所占的比例就越來越小。所以,將問題規模翻倍後,順序部分的增長几乎可以忽略,從而使得求解問題有更多的部分可以並行執行。

主要套用:

改善“系統瓶頸”性能。

並行存儲性能中的阿姆達爾定律

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

相關詞條

相關搜尋

熱門詞條

聯絡我們