並行程式設計

更新於 2024/12/08閱讀時間約 7 分鐘

自電腦誕生以來,許多應用程式一直需要比計算設備所能提供的更快的執行速度和更多的資源。早期的應用程式仰賴處理器速度、記憶體速度和記憶體容量的提升來增強應用程式的功能,如天氣預報的及時性、工程結構分析的準確性、電腦生成圖形的真實感等。近年來,深度學習等新應用對執行速度和資源的需求更是超過了最好的計算設備所能提供的。這些應用需求推動了過去五十年計算設備能力的快速進步,並將在可預見的未來繼續如此。


在1980年代和1990年代,基於單一中央處理器(CPU)的微處理器,如Intel和AMD的x86處理器,通過快速增加的時脈頻率和硬體資源,推動了電腦應用性能的快速提升和成本降低。然而,自2003年以來,由於能耗和散熱問題,這種驅動力已經減緩。從那時起,幾乎所有微處理器廠商都轉向了在每個晶片中使用多個物理CPU(稱為處理器核心)的模型。為了從多個處理器核心中受益,使用者必須有多個指令序列(無論是來自同一應用程式還是不同應用程式)可以同時在這些處理器核心上執行。對於特定應用程式來說,其工作必須被分割成多個可以同時在這些處理器核心上執行的指令序列。這種從單一CPU按順序執行指令到多個核心並行執行多個指令序列的轉變,對軟體開發者社群產生了巨大影響。


傳統上,絕大多數軟體應用程式都是作為循序程式編寫的,這些程式的執行可以被人類理解為基於程式計數器(也稱為指令指標)的概念逐步執行代碼。然而,這種循序程式只能在一個處理器核心上運行,而且不會隨著新一代微處理器的推出而顯著加速。相反,能夠隨著每一代新微處理器的推出而繼續享受顯著性能提升的應用軟體將是並行程式,其中多個執行緒協作以更快地完成工作。並行程式設計的實踐並不新鮮。高性能計算(HPC)社群已經開發並行程式數十年了。這些並行程式通常在昂貴的大型電腦上運行。只有少數大型應用程式才能證明使用這些電腦的合理性,從而限制了並行程式設計的實踐僅限於少數應用程式開發者。


現在,所有新的微處理器都是並行電腦,需要開發為並行程式的應用程式數量已經大幅增加。因此,現在迫切需要軟體開發者學習並行程式設計,這也是本書的重點。自2003年以來,半導體行業已經確定了兩個主要的微處理器設計軌跡:多核軌跡和多執行緒軌跡。多核軌跡試圖在移向多個核心的同時保持循序程式的執行速度。多執行緒軌跡則更專注於並行應用程式的執行吞吐量。多執行緒處理器,特別是圖形處理單元(GPU),自2003年以來一直領先於浮點性能競賽。CPU和GPU的設計理念有根本的不同。CPU的設計針對循序代碼性能進行了最佳化,採用延遲導向設計。相比之下,GPU的設計理念則受到快速增長的視訊遊戲產業的塑造,採用吞吐量導向設計。GPU致力於最大化專用於浮點計算和記憶體存取吞吐量的晶片面積和功率預算。減少延遲比增加吞吐量在功率和晶片面積方面更昂貴。因此,GPU的主流解決方案是最佳化大量執行緒的執行吞吐量,而不是減少單個執行緒的延遲。這種設計方法通過允許流水線記憶體通道和算術運算具有較長的延遲來節省晶片面積和功率。應該清楚的是,GPU被設計為並行、吞吐量導向的計算引擎,它們在某些CPU設計擅長的任務上表現不佳。對於只有一個或很少執行緒的程式,具有較低操作延遲的CPU可以達到比GPU高得多的性能。當程式有大量執行緒時,具有較高執行吞吐量的GPU可以達到比CPU高得多的性能。因此,人們應該期望許多應用程式同時使用CPU和GPU,在CPU上執行循序部分,在GPU上執行數值密集型部分。速度並不是應用程式開發者選擇處理器運行其應用程式的唯一決定因素。其他因素可能更為重要,如處理器在市場上的巨大存在(稱為處理器的安裝基礎)、實用的形態因素和易於存取性等。


2007年CUDA(Compute Unified Device Architecture)的發布改變了一切。CUDA不僅代表軟體變化;還在晶片上增加了額外的硬體以促進並行程式設計的便利性。通用程式設計介面大大擴展了可以輕鬆為GPU開發的應用程式類型。並行程式設計的主要動機是讓應用程式在未來的硬體世代中繼續享受速度提升。當應用程式適合並行執行時,在GPU上的良好實現可以達到比在單個CPU核心上順序執行超過100倍的加速。如果應用程式包含所謂的"資料並行性",通常只需幾個小時的工作就可以實現10倍的加速。許多令人興奮的大眾市場應用程式在未來將是我們以前認為的超級計算應用程式或超級應用程式。例如,生物學研究社群越來越多地進入分子層面。計算模型的引入可以有效解決傳統儀器的限制,通過模擬來測量更多細節並測試更多假設。這些模擬將在可預見的未來繼續受益於計算速度的提升。視訊和音訊編碼和操作、3D成像和視覺化等應用也將需要更多的計算能力。未來,新功能如視圖合成和低解析度視訊的高解析度顯示將在電視中需要更多的計算能力。在消費者層面,我們將開始看到越來越多的視訊和圖像處理應用程式,以改善圖片和視訊的焦點、照明和其他關鍵方面。更多的計算速度還將帶來更好的使用者介面。未來版本的智慧型手機將結合具有3D視角的感測器和顯示器,結合虛擬和物理空間資訊以增強可用性,以及基於語音和電腦視覺的介面,這些都需要更多的計算速度。消費電子遊戲也在進行類似的發展。隨著計算速度的提升,遊戲可以基於動態模擬而不是預先安排的場景。我們可以期待在未來體驗更多這些真實的效果。準確模擬物理現象的能力已經啟發了數位孿生的概念,其中物理物體在模擬空間中有準確的模型,以便可以以更低的成本進行全面的壓力測試和磨耗預測。深度學習是一個重要的新應用例子,它得益於計算吞吐量的大幅提升。自2012年以來,基於神經網路的應用在電腦視覺和自然語言處理中得到快速採用。這種採用革新了電腦視覺和自然語言處理應用,並觸發了自動駕駛汽車和家庭助理設備的快速發展。


並行程式設計面臨幾個挑戰。首先,設計具有與循序算法相同水平的算法(計算)複雜度的並行算法可能具有挑戰性。其次,許多應用程式的執行速度受到記憶體存取延遲和/或吞吐量的限制。第三,並行程式的執行速度通常對輸入資料特徵更敏感。第四,一些應用程式可以並行化,而幾乎不需要不同執行緒之間的協作,而其他應用程式則需要執行緒相互協作,這需要使用同步操作。幸運的是,研究人員已經解決了大多數這些挑戰。跨應用領域也存在共同模式,允許我們將在一個領域中得出的解決方案應用於其他領域的挑戰。

avatar-img
0會員
31內容數
心繫正體中文的科學家,立志使用正體中文撰寫文章。 此沙龍預計涵蓋各項資訊科技知識分享與學習心得
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
風清揚的沙龍 的其他內容
本文介紹了一種名為Diffusion Model-Augmented Behavioral Cloning,(簡稱 DBC)的新型模仿學習框架。這個框架旨在結合建模條件機率和聯合機率的優勢,以改善模仿學習的效能。
本文簡介 3GPP 在 Release 18 與 Release 19中引入人工智慧/機器學習(AI/ML)功能到無線電介面、無線電接取網路和核心網路的標準化工作。
MLIR是什麼以及使用MLIR的優點
tcpdump -i <網路介面> 捕捉流經網路介面的通訊。
Raspberry Pi 5 不再支援 raspi-gpio 指令,因此在Raspberry Pi 5 上執行 GPIO 操作指令 raspi-gpio 時,會顯示以下訊息指示「使用 pinctrl」
最近各組織正急於整合大型語言模型(LLMs)以改善其線上用戶體驗。這使它們面臨網路LLM攻擊的風險,這些攻擊利用模型對攻擊者無法直接存取的資料、API或使用者資訊的存取權。
本文介紹了一種名為Diffusion Model-Augmented Behavioral Cloning,(簡稱 DBC)的新型模仿學習框架。這個框架旨在結合建模條件機率和聯合機率的優勢,以改善模仿學習的效能。
本文簡介 3GPP 在 Release 18 與 Release 19中引入人工智慧/機器學習(AI/ML)功能到無線電介面、無線電接取網路和核心網路的標準化工作。
MLIR是什麼以及使用MLIR的優點
tcpdump -i <網路介面> 捕捉流經網路介面的通訊。
Raspberry Pi 5 不再支援 raspi-gpio 指令,因此在Raspberry Pi 5 上執行 GPIO 操作指令 raspi-gpio 時,會顯示以下訊息指示「使用 pinctrl」
最近各組織正急於整合大型語言模型(LLMs)以改善其線上用戶體驗。這使它們面臨網路LLM攻擊的風險,這些攻擊利用模型對攻擊者無法直接存取的資料、API或使用者資訊的存取權。
你可能也想看
Google News 追蹤
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
時間快轉至2030年,或許城市還無懸浮飛車,但AI先會像電力存在每一個角落。百工百業運用智慧算力,就像打開水龍頭一樣容易。這描述並非Cyberpunk科幻場景,正逐漸在世界各地悄然成形。
Thumbnail
如果你所有東西都可以變成你的任何東西,那會怎麼樣? 你的電腦有能力做無限多的事情。因為你的電腦已經是「可程式物質」,可執行任何程式、顯示任何圖片、發出任何聲音,連接設備等。
Thumbnail
科技巨擘聯手推進生成式AI發展 開創人工智慧新時代 在生成式人工智慧(Generative AI)的浪潮中,雲端運算龍頭AWS和晶片巨擘NVIDIA攜手合作,推出一系列革命性的基礎設施、軟體和服務。
Thumbnail
在科技發展的浪潮中,生成式AI無疑是引領未來的關鍵力量。透過深度學習技術,AI系統能夠從大量資料中發掘規律,並創造出全新的內容,無論是文字、圖像、音頻還是視頻,都可以在AI的加持下重新定義。
Thumbnail
【圖解IT大全:掌握數位科技趨勢,透視未來商業模式的148個關鍵】 數位轉型、AI、IoT...是不是讓你聽得霧沙沙? 當你經常覺得… ●最近的科技浪潮令人興奮,想多了解一點 ●被一堆科技名詞搞得心煩意亂,想快速全面了解 ●覺得市面的科技科普書不是太深入就是太淺白 這本書值得一讀!
Thumbnail
根據高盛最近的研究報告,未來的個人電腦和移動設備將搭載更多由AI增強後的應用程式,如AI增強、安全性提升和運算能力強化。 消費性電子股票組合<GSXUPCAI>也顯示出潛力,並列出了成分股以及其權重。
Thumbnail
NVIDIA 黃仁勳 - AI人工智慧時代如何帶動全球新產業革命(個人紀錄用) 🇺🇸Omniverse 就是未來集大成,而加速運算、人工智慧就是兩個最重要的技術核心 🇺🇸CPU效能的擴充速度正在大幅降低,提出「運算通膨」概念
那些關於「量子電腦的焦慮」是不必要的。 量子電腦不會取代傳統電腦,而是作為一個強大的輔助工具─類似AI加速器的形式存在;初期應用開發會透過雲服務的形式提供,像是 Azure Quantum 跟 Amazon Braket . 由於量子電腦在特定類型的計算問題上展現出顯著的潛在優勢,會被專門用於處
Thumbnail
近年來,隨著科技的迅速發展,軟體開發領域也在不斷演進。在這股潮流中,敏捷開發備受矚目,成為企業追求靈活性和快速交付的首選方法。本文將探討敏捷開發在台灣的現況,深入了解這一趨勢的興起、面臨的挑戰以及實踐的實際情況。
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
時間快轉至2030年,或許城市還無懸浮飛車,但AI先會像電力存在每一個角落。百工百業運用智慧算力,就像打開水龍頭一樣容易。這描述並非Cyberpunk科幻場景,正逐漸在世界各地悄然成形。
Thumbnail
如果你所有東西都可以變成你的任何東西,那會怎麼樣? 你的電腦有能力做無限多的事情。因為你的電腦已經是「可程式物質」,可執行任何程式、顯示任何圖片、發出任何聲音,連接設備等。
Thumbnail
科技巨擘聯手推進生成式AI發展 開創人工智慧新時代 在生成式人工智慧(Generative AI)的浪潮中,雲端運算龍頭AWS和晶片巨擘NVIDIA攜手合作,推出一系列革命性的基礎設施、軟體和服務。
Thumbnail
在科技發展的浪潮中,生成式AI無疑是引領未來的關鍵力量。透過深度學習技術,AI系統能夠從大量資料中發掘規律,並創造出全新的內容,無論是文字、圖像、音頻還是視頻,都可以在AI的加持下重新定義。
Thumbnail
【圖解IT大全:掌握數位科技趨勢,透視未來商業模式的148個關鍵】 數位轉型、AI、IoT...是不是讓你聽得霧沙沙? 當你經常覺得… ●最近的科技浪潮令人興奮,想多了解一點 ●被一堆科技名詞搞得心煩意亂,想快速全面了解 ●覺得市面的科技科普書不是太深入就是太淺白 這本書值得一讀!
Thumbnail
根據高盛最近的研究報告,未來的個人電腦和移動設備將搭載更多由AI增強後的應用程式,如AI增強、安全性提升和運算能力強化。 消費性電子股票組合<GSXUPCAI>也顯示出潛力,並列出了成分股以及其權重。
Thumbnail
NVIDIA 黃仁勳 - AI人工智慧時代如何帶動全球新產業革命(個人紀錄用) 🇺🇸Omniverse 就是未來集大成,而加速運算、人工智慧就是兩個最重要的技術核心 🇺🇸CPU效能的擴充速度正在大幅降低,提出「運算通膨」概念
那些關於「量子電腦的焦慮」是不必要的。 量子電腦不會取代傳統電腦,而是作為一個強大的輔助工具─類似AI加速器的形式存在;初期應用開發會透過雲服務的形式提供,像是 Azure Quantum 跟 Amazon Braket . 由於量子電腦在特定類型的計算問題上展現出顯著的潛在優勢,會被專門用於處
Thumbnail
近年來,隨著科技的迅速發展,軟體開發領域也在不斷演進。在這股潮流中,敏捷開發備受矚目,成為企業追求靈活性和快速交付的首選方法。本文將探討敏捷開發在台灣的現況,深入了解這一趨勢的興起、面臨的挑戰以及實踐的實際情況。