透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

整體加速比
3.077×
倍,相較於原始速度
Theoretical maximum speedup (s → ∞) 10×
平行效率 76.92%

什麼是阿姆達爾定律?

阿姆達爾定律(Amdahl's Law)由電腦架構先驅 Gene Amdahl 於 1967 年提出,用來預測當一項任務只有部分能夠平行化時,所能達到的最大理論加速比。它是平行運算領域的基石,協助工程師在投入更多處理器、核心或執行緒之前,先建立切合實際的效能預期。

圖示一項任務被分為串列部分和在多個處理器上處理的平行部分
阿姆達爾定律將程式分為串列部分和可分配到多個處理器上的平行部分。

如何使用本計算器

請輸入兩個數值:可平行化比例(p)——即程式中能夠平行執行的部分所佔比例(介於 0 到 1 之間);以及加速倍數(s)——通常代表用於平行部分的處理器或核心數量。計算器會回傳整體加速比、理論最大加速比,以及平行效率。

公式解析

計算公式為 $$\text{加速比} = \dfrac{1}{(1 - p) + \dfrac{p}{s}}$$。其中 \((1 - p)\) 代表完全無法加速的序列(serial)部分。當 \(s\) 變得非常大時,\(p/s\) 會趨近於零,因此加速比的上限為 \(\dfrac{1}{1 - p}\)。這正是為什麼一支有 90% 可平行化的程式,無論增加多少處理器,最多也只能跑快 10 倍。

加速比與處理器數量的曲線在最大值處趨於平緩
加速比隨處理器數量增加而上升,但會趨於由串列比例決定的最大值。

實例演算

假設某程式有 90% 可平行化(\(p = 0.9\)),並使用 4 顆處理器(\(s = 4\))。則分母 $$(1 - 0.9) + \frac{0.9}{4} = 0.1 + 0.225 = 0.325$$。加速比 $$\frac{1}{0.325} \approx 3.08 \text{ 倍}$$。理論上的最大加速比為 \(\dfrac{1}{0.1} = 10\) 倍,而效率則為 \(3.08 / 4 \approx 76.9\%\)。

解釋您的結果

整體加速比是您輸入的處理器數量 \(s\) 實際上獲得的效果 — 例如,4.71× 的結果表示並行化程式的執行速度比單處理器版本快約 4.71 倍。最大加速比 \(1/(1-p)\) 是您使用無限多個處理器時會接近的絕對上限。兩者之間的差距告訴您還有多少提升空間:如果您的整體加速比已經接近最大值,添加硬體幾乎無濟於事。

效率回答了「我對我付款購買的處理器的利用效率如何?」效率接近 100% 表示每個處理器都貢獻了幾乎一個完整的加速單位 — 這是對資源的優秀利用。低效率(例如低於 30%)表示大多數處理器處於閒置或等待序列部分的狀態,因此您付款購買的硬體卻沒有做多少有用的工作。

序列部分 \(1-p\) 是決定性的限制因素。即使一個較小的序列部分也會硬限制效能:在 \(p=0.95\) 時上限僅為 20×,所以超過大約 16–32 個處理器後,每個新增的處理器幾乎沒有幫助。一個實用的經驗法則是一旦效率下降到您可接受的閾值以下(對於成本敏感的工作通常為 50–70%),就停止添加處理器,因為在那之後您花費的金錢只會換來微乎其微的收益。要提高上限,您必須降低序列部分本身 — 增加 \(p\) 的演算法改變通常比簡單地添加核心能帶來更多回報。

關鍵術語與變數

  • 並行部分(\(p\)) — 程式可以並行執行的工作比例,表示為 0 到 1 之間的十進制。0.9 的值表示 90% 的工作量可以分散到多個處理器上執行。
  • 序列部分(\(1-p\)) — 必須在單個處理器上順序執行且無法透過並行化加速的部分。這個部分設定了整體加速比的硬性上限。
  • 並行部分的加速比(\(s\)) — 可並行化部分被加速的倍數,通常等於應用於它的處理器或核心數量。
  • 整體加速比 — 單處理器執行時間與並行執行時間的比率,\(1/\big((1-p)+p/s\big)\)。這是實際的效能提升。
  • 最大加速比 — 當 \(s\) 趨於無窮時達到的理論極限 \(1/(1-p)\),僅由序列部分決定。
  • 並行效率 — 整體加速比除以處理器數量,\(\text{加速比}/s\),表示為百分比;它測量每個處理器的利用效率。

常見問題

為什麼增加處理器會出現邊際效益遞減?因為序列部分會成為瓶頸。一旦序列部分主導了整體執行時間,再增加處理器也幾乎沒有幫助。

什麼是平行效率?它是加速比除以處理器數量,以百分比表示,反映每一顆處理器被有效運用的程度。

它和古斯塔夫森定律(Gustafson's Law)有何不同?阿姆達爾定律假設問題規模固定;而古斯塔夫森定律假設問題規模會隨處理器數量擴展,因此得出的結果較為樂觀。

最後更新: