Gustafson 定律與 Amdahl 定律相反,后者聲稱大多數并行處理應用程式在增加對并行處理的訪問權限時實際上會增加作業量。因此,阿姆達爾定律假設恒定的作業負載來衡量加速比,這是一種用于確定并行處理收益的糟糕方法。
然而,我對古斯塔夫森到底想爭論什么感到困惑。
例如,假設我采用 Gustafson 定律并將其應用于一個順序處理器和兩個并行處理器:
我生成了一個在并行處理器 #1 上運行的作業負載。在并行處理器上執行需要 1 秒,在順序處理器上執行需要 10 秒。
我生成了更大的作業負載并在并行處理器 #2 上運行它。在并行處理器上執行需要 1 秒,在順序處理器上執行需要 50 秒。
對于每個作業負載,相對于順序處理器都有一個加速。然而,這似乎并不違反阿姆達爾定律,因為每個作業負載仍然有一些加速上限。所有這些都是改變作業量,從而可能減少代碼的“僅串行”部分。根據阿姆達爾定律,減少僅串行部分將增加加速限制。
所以我很困惑,主張增加作業量并保持恒定執行時間的古斯塔夫森定律似乎沒有添加任何新資訊。
古斯塔夫森到底在爭論什么?具體來說,“縮放加速”甚至意味著什么?
uj5u.com熱心網友回復:
Gustafson 定律與 Amdahl 定律相反,后者聲稱大多數并行處理應用程式在增加對并行處理的訪問權限時實際上會增加作業量。因此,阿姆達爾定律假設恒定的作業負載來衡量加速比,這是一種用于確定并行處理收益的糟糕方法。
不。
首先,這兩項法律沒有要求任何東西。它們顯示了基于特定配置的應用程式可以獲得的理論(最大)加速。這兩個是模擬并行演算法行為的基本數學公式。他們的目標是了解并行計算的一些限制(阿姆達爾定律)以及開發人員可以采取哪些措施來克服這些限制(古斯塔夫森定律)。
阿姆達爾定律是一個數學公式,描述了由多個處理單元計算的具有可變時間給定作業負載(但計算量是固定的)的應用程式的理論加速。作業負載包含一個串行執行部分和一個并行執行部分。它表明加速受到程式串行部分的限制。這對并行應用程式的開發人員來說不是很好,因為這意味著假設作業負載是固定的,他們的應用程式的可伸縮性對于一些相當順序的作業負載來說將是非常糟糕的。
古斯塔夫森定律打破了這一假設,并添加了一個新的假設,以不同的方式看待問題。實際上,數學公式描述了具有固定時間作業負載(但計算量是可變的)的應用程式的理論加速,該作業負載由多個處理單元計算。它表明只要應用程式開發人員可以為給定的作業負載添加更多并行作業,加速就可以很好。
我生成了一個在并行處理器 #1 上運行的作業負載。在并行處理器上執行需要 1 秒,在順序處理器上執行需要 10 秒。我生成了更大的作業負載并在并行處理器 #2 上運行它。在并行處理器上執行需要 1 秒,在順序處理器上執行需要 50 秒。
與使用這兩種模型的一個處理單元相比,具有 2 個處理單元的并行程式的速度不能超過 2 倍。由于一些混雜因素(通常是由于快取效應),這在實踐中是可能的,但這種效應并非唯一來自處理單元。“兩個并行處理器”是什么意思?您的示例中缺少處理單元的數量(除非您想從提供的資訊中找到它)。
所以我很困惑,主張增加作業量并保持恒定執行時間的古斯塔夫森定律似乎沒有添加任何新資訊。
這兩條定律就像是同一可擴展性問題的兩種觀點。然而,他們做出了不同的假設:固定作業量和可變作業時間VS可變作業量和固定作業時間。
如果您熟悉強/弱縮放的概念,請注意阿姆達爾定律對強縮放的作用就像古斯塔夫森定律對弱縮放的作用一樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/323501.html
標籤:表现 并行处理 标杆 并行性-amdahl
上一篇:整數的有序與相等比較
