Amdhl定理及其對多核時代的影響

     Amdhl定理描述:系統中某部件由於採用某種方式使系統性能改進後,整個系統性能的提高與該方式的使用頻率或佔總的執行時間的比例有關。
     主要應用:改善“系統瓶頸”性能。
     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。也就是說,順序執行代碼在計算中所佔的比例決定了使用並行手段所能改進性能的潛力。
    阿姆達爾定律是由IBM公司的計算機體系結構師吉恩·阿姆達爾在1967年發表的論文中提出的。這一定律與供求定律(Low of Supply and Demand)具有同樣的意義:如前面的方程式所示,它描述了程序執行時間中兩部分的關係。兩個定律均是解釋重要現象行爲的有力工具,且兩個定律都將影響該行爲的其他參量視爲常數。特別地,阿姆達爾定律適用於單程序場合。
    實際的情況可能比阿姆達爾定律暗示的更壞。一個明擺着的問題是計算的可並行化部分可能無法改進到極致(即只要增加仍可繼續改進性能的處理器數總有一個上限),因此並行執行時間不大可能消失。此外,如在上一節所提到的,一個並行實現經常會比順序求解需要執行更多的總指令數,導致低估(1-1/S)·TS值。
     包括阿姆達爾在內的許多人對該定律的解釋表明使用大量的處理器求解問題只能獲得有限的成功,但這似乎與大量的並行計算機能顯著改進計算性能的報道相沖突。
     阿姆達爾定律描述的一個關鍵事實是它只適用於計算的一種場合,即施行並行化後計算中的順序部分將佔據執行時間的主要部分。阿姆達爾定律是在固定應用規模的前提下考慮並行性增長的影響。但大多數並行計算則是固定並行性而擴展應用的規模。在這種情況下,隨着所考慮規模的增加,順序代碼所佔的比例就越來越小。所以,將問題規模翻倍後,順序部分的增長几乎可以忽略,從而使得求解問題有更多的部分可以並行執行。
     概括地講,阿姆達爾定律並不否定並行計算的價值。相反,它提醒我們要想達到並行性能就必須考慮整個程序。
     隨着技術的發展,多核心處理器已成爲現今處理器發展的潮流。提高處理器性能的方法有許多,其中主要有提高頻率與增加核心數量等。提高頻率在現有條件下已經比較困難且不經濟,增加核心數量之路又能走多遠。加速比是衡量系統性能提升的一個重要指標,Amdahl定律便是其中之一。在Amdahl定律的範圍內(且不考慮包括通訊開銷等在內的並行開銷),通過對單一核心提高頻率和增加核心數量兩個方面的討論可以得出:在可並行執行部分的執行時間佔總執行時間的比例f=0.5時,提高單一核心頻率與增加核心所得加速比相同;當f0.5時,提高單一核心頻率可比增加核心數量獲得更大加速比;當f0.5時,增加核心數量獲得的加速比更大些。因此,在覈心數量增加到一定程度時,通過提高單一核心的頻率可獲得更高加速比,也可能是更經濟有效的方案。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章