什麼是阿姆達爾定律?


阿姆達爾定律

假設,莫妮需要參加一個邀請函上的活動。莫妮的另外兩個朋友迪婭和海娜也收到了邀請。條件是所有三個朋友都必須單獨前往,並且所有人都必須到達門口才能進入大廳。現在,莫妮開車來,迪婭乘公共汽車來,海娜步行來。現在,莫妮和迪婭到達的速度有多快並不重要,他們必須等待海娜。因此,為了加快整個過程,我們需要關注海娜的表現,而不是莫妮或迪婭。

這實際上發生在阿姆達爾定律中。它將系統性能的改進與效能不佳的部分聯絡起來,就像我們需要關注系統中那些效能不佳的部分一樣。該定律通常用於平行計算中,以預測使用多個處理器時的理論加速。

公式

阿姆達爾定律可以用數學公式表示如下:

加速比MAX = 1/((1-p)+(p/s))

加速比MAX = 最大效能增益

s = 實現增強後 p 的效能增益因子。

p = 需要改進效能的部分。

讓我們舉個例子,如果可以改進的部分佔整個系統的 30%,並且系統的效能可以提高一倍,那麼:

加速比MAX = 1/((1-0.30)+(0.30/2))

= 1.18

現在,在另一個例子中,如果可以改進的部分佔整個系統的 70%,並且系統的效能可以提高一倍,那麼:

加速比MAX = 1/((1-0.70)+(0.70/2))

= 1.54

因此,我們可以看到,如果 1-p 無法改進,則系統的整體效能無法得到太大改進。因此,如果 1-p 為 1/2,則無論使用多少處理器,速度都無法超過該值。

多核程式設計最常用於訊號處理和工廠控制系統。在訊號處理中,可以擁有一個並行處理多個幀的併發系統。在工廠控制系統中,控制器和工廠可以作為兩個單獨的任務執行。

多核程式設計有助於將系統拆分為多個並行任務,這些任務同時執行,從而加快整體執行時間。

更新於:2020年1月31日

7K+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告