阿姆達爾定律的演進:古斯塔夫森定律

前言

在上一篇文章《使用阿姆達爾定律來提升效率》中提到的阿姆達爾定律前提是假設問題的規模保持不變,并且給定一臺速度更快的機器,目標是更快地解決問題。然而,在大多數情況下,這并不完全正確。當有一臺更快的機器時,我們可能會希望增加解決問題的規模或提高解決方案的準確性。

古斯塔夫森定律(Gustafson's Law),又稱古斯塔夫森-巴西斯定律(Gustafson-Barsis's Law),是并行計算領域的一項原理,旨在解決并行系統的可擴展性問題。該定律由約翰·L·古斯塔夫森(John L. Gustafson)及其同事埃德溫·H·巴西斯(Edwin H. Barsis)于1988年提出,旨在回應阿姆達爾定律(Amdahl's Law)。阿姆達爾定律對并行處理所能實現的性能提升持較為悲觀的態度。

古斯塔夫森定律指出,通過增加問題規模可以顯著提高并行處理的速度。換句話說,該定律表明,隨著處理器數量的增加,總體計算工作量可以按比例增加,以保持恒定的效率。這與阿姆達爾定律形成了對比,后者側重于固定規模的問題,并強調計算順序部分的重要性,這限制了可實現的最大加速比。

在古斯塔弗森定律中,保持常數的不是問題的規模,而是我們等待結果的時間。古斯塔夫森觀察到,問題的并行部分會隨著問題規模的變化而變化,而順序部分則幾乎不會。

1. 古斯塔夫森定律

古斯塔夫森估計加速比S使用并行計算得到的公式如下:

S = s + p x N = s + (1-s) x N = N + (1-N) x s

其中,大寫S是并行化的理論加速比,N是處理器的數量,小寫s和p分別是在并行系統上執行程序的串行部分和并行部分所花費的時間比例,其中s+p=1。因此,S也可以用p表示為:

S = s + p x N = (1-p) + p x N = 1 + (N-1) x p

2. 古斯塔夫森定律的應用

假設我們有一個70% 并行、30% 順序的程序,并且我們有10 個處理器,那么按古斯塔弗森定理得到的加速比為:

S = N + (1 - N) x s = 10 + (1 – 10) x 0.3 = 7.3

那假如上面程序有1000個處理器呢?

S = N + (1 - N) x s = 1000 + (1 – 1000) x 0.3 = 700.3

可見隨著處理器個數的增加,加速比得到明顯的提升。

如果我們使用阿姆達爾定律估計,速度的增加將從 2.7 增加到 3.3。

3. 古斯塔夫森定律的局限性

對于許多軟件程序來說,可以對串行執行的時間進行檢測和量化。這可以通過在程序的串行部分周圍放置計時器來估算s來實現。

基于此分數,可以使用阿姆達爾定律和古斯塔夫森定律來估算加速比。然而,這兩個定律都沒有考慮通信成本或中間級別的并行性。隨著處理器數量的增加,古斯塔夫森定律所實現的加速仍然有限,因為通信成本最終會變得如此之高,以至于抵消了增加工作負載所帶來的任何好處。

事實上,當應用于現代并行系統時,這兩條定律可能并不準確,因為通信成本對加速有很大的影響。

4. 總結

阿姆達爾定律是保持規模不變談加速比,古斯塔夫森定律是保持時間長度不變談加速比。阿姆達爾定律是悲觀的,而古斯塔夫森定律則是樂觀的。從阿姆達爾定律的角度來看待并行性可能會令人沮喪。古斯塔夫森證明,當我們增加并行部分的工作量時,順序部分造成的瓶頸會變得不那么嚴重。

古斯塔弗森定理強調了可拓展性在并行處理中的重要性,它關注并行部分以及如何擴展它以實現更好的性能,這一點與強調計算順序部分對性能影響的阿姆達爾定律不同。古斯塔夫森定律更適用于現實世界的問題,因為許多計算任務自然會隨著數據的大小或所解決問題的復雜性而擴展。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/83482.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83482.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/83482.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【RabbitMQ】- Channel和Delivery Tag機制

在 RabbitMQ 的消費者代碼中,Channel 和 tag 參數的存在是為了實現消息確認機制(Acknowledgment)和精細化的消息控制。 Channel 參數 作用 Channel 是 AMQP 協議的核心操作接口,通過它可以直接與 RabbitMQ 交互: 手…

核心機制:流量控制

搭配滑動窗口使用的 窗口大小 窗口越大,傳輸速度就越快,但是也不能無限大,太大了,對于可靠性會有影響 比如發生方以非常快的速度,發送,接收方的處理速度跟不上,也就會導致有效數據被接受方丟棄(又得重傳) 流量控制,就是根據接收方的處理能力(如何衡量?),干預到發送方的發送…

深度強化學習賦能城市消防優化,中科院團隊提出DRL新方法破解設施配置難題

在城市建設與發展中,地理空間優化至關重要。從工業園區選址,到公共服務設施布局,它都發揮著關鍵作用。但傳統求解方法存在諸多局限,如今,深度學習技術為其帶來了新的轉機。 近日,在中國地理學會地理模型與…

安科電動機保護器通過ModbusRTU轉profinet網關與PLC通訊

安科電動機保護器通過ModbusRTU轉profinet網關與PLC通訊 在工業自動化領域,設備間的通信和數據交互至關重要。Modbus作為一種常用的通訊協議,廣泛應用于各種工業現場;而Profinet則憑借其高效、實時性,在工業以太網通訊中占據重要…

python直方圖

在Python中,繪制直方圖(Histogram)是一項非常常見的任務,通常用于數據可視化,以展示數據的分布情況。Python中有多種庫可以繪制直方圖,其中最常用的兩個庫是Matplotlib和Seaborn。此外,Pandas庫…

在Oxygen編輯器中使用DeepSeek

羅馬尼亞公司研制開發的Oxygen編輯器怎樣與國產大模型結合,這是今年我在tcworld大會上給大家的分享,需要ppt的朋友請私信聯系 - 1 - Oxygen編輯器中的人工智能助手 Oxygen編輯器是羅馬尼亞的Syncro Soft公司開發的一款結構化文檔編輯器。 它是用來編寫…

neo4j 5.19.0安裝、apoc csv導入導出 及相關問題處理

前言 突然有需求需要用apoc 導入 低版本的圖譜數據,網上資料又比較少,所以就看官網資料并處理了apoc 導入的一些問題。 相關地址 apoc 官方安裝網址 apoc 官方導出csv 教程地址 apoc 官方 導入 csv 地址 docker 安裝 執行如下命令啟動鏡像 doc…

macos常見且應該避免被覆蓋的系統環境變量(避免用 USERNAME 作為你的自定義變量名)

文章目錄 macos避免用 USERNAME 作為你的自定義變量名macos常見且應該避免被覆蓋的系統環境變量 macos避免用 USERNAME 作為你的自定義變量名 問題: 你執行了:export USERNAME“admin” 然后執行:echo ${USERNAME} 輸出卻是:xxx …

Python訓練打卡Day41

簡單CNN 知識回顧 數據增強卷積神經網絡定義的寫法batch歸一化:調整一個批次的分布,常用與圖像數據特征圖:只有卷積操作輸出的才叫特征圖調度器:直接修改基礎學習率 卷積操作常見流程如下: 1. 輸入 → 卷積層 → Batch…

【親測有效】Mybatis-Plus中更新字段為null

Mybatis-Plus中更新字段為null 遇到問題 Mybatis-Plus更新的默認行為如下: Mybatis-Plus默認如果某個字段為null, 默認不更新這個字段, 例如有個Double類型的字段, 當前數據庫數據為10, 然后傳參時當前字段為null, 實際上Mybatis-Plus是不會覆蓋該字段為null的 在傳參的時候如…

如何使用插件和子主題添加WordPress自定義CSS(附:常見錯誤)

您是否曾經想更改網站外觀的某些方面,但不知道怎么做?有一個解決方案——您可以將自定義 CSS(層疊樣式表)添加到您的WordPress網站! 在本文中,我們將討論您需要了解的有關CSS的所有知識以及如何使用它來修…

左值引用和右值引用

一、基本概念 左值(lvalue)和右值(rvalue) 左值指的是有確定存儲位置(地址)的對象,通常可以出現在賦值語句左側。例如:變量名、解引用指針得到的對象、數組元素等都屬于左值。 右值…

django入門-orm數據庫操作

一:下載數據庫依賴項mysqlclient pip install mysqlclient 二:django配置文件配置數據庫鏈接 路徑:mysite2\mysite2\settings.py DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: data, # 數據庫名稱USER: root, …

國標GB28181設備管理軟件EasyGBS視頻平臺筑牢文物保護安全防線創新方案

一、方案背景? 文物作為人類文明的珍貴載體,具有不可再生性。當前,盜竊破壞、游客不文明行為及自然侵蝕威脅文物安全,傳統保護手段存在響應滯后、覆蓋不全等局限。隨著5G與信息技術發展,基于GB28181協議的EasyGBS視頻云平臺&…

NetSuite Bundle - Dashboard Refresh

兒童節快樂! 今朝發一個Bundle,解決一個NetSuite Dashboard的老問題。出于性能上的考慮,NetSuite的Dashboard中的Portlet,只能逐一手工刷新。有人基于瀏覽器做了插件,可以進行自動刷新。但是在我們做項目部署時&#…

<PLC><socket><西門子>基于西門子S7-1200PLC,實現手機與PLC通訊(通過websocket轉接)

前言 本系列是關于PLC相關的博文,包括PLC編程、PLC與上位機通訊、PLC與下位驅動、儀器儀表等通訊、PLC指令解析等相關內容。 PLC品牌包括但不限于西門子、三菱等國外品牌,匯川、信捷等國內品牌。 除了PLC為主要內容外,PLC相關元器件如觸摸屏(HMI)、交換機等工控產品,如…

【AI論文】推理語言模型的強化學習熵機制

摘要:本文旨在克服將強化學習擴展到使用 LLM 進行推理的主要障礙,即策略熵的崩潰。 這種現象在沒有熵干預的RL運行中一直存在,其中策略熵在早期訓練階段急劇下降,這種探索能力的減弱總是伴隨著策略性能的飽和。 在實踐中&#xff…

手動刪除網頁上的禁止復制事件

以Edge瀏覽器為環境、以網絡上一個文檔為例。 右擊頁面,打開【檢查】工具。選擇元素,打開【事件偵聽器】: 展開copy,刪除里面的事件: 選中文字,進行復制

element級聯地址選擇器

一、實現過程總覽 組件替換:將原有的輸入框(el-input)替換為級聯選擇器(el-cascader),并配置基礎屬性。數據適配:引入 JSON 地址數據,通過cascaderProps映射數據字段(如…

【leetcode-兩數之和】

一、題目 二、題解 &#xff08;1&#xff09;雙指針 這里要注意j<length的 //聲明兩個指針int length nums.length;for (int i 0; i < length; i) {for (int j i 1; j<length;j){if (j<length && nums[i]nums[j]target){return new int[]{i,j};}}}r…