導航:首頁 > 編程知識 > 傳統並行編程模型有哪些

傳統並行編程模型有哪些

發布時間:2024-12-10 03:28:18

❶ 並行體系結構出現的原因是

並行體系結構出現主要因為隨著各個領域對高性能計算的要求越來越高,尤其是多媒體領域大數據量高實時性的需求,使得傳統的單處理器體系結構已經很難適應大規模並行計算的需求,於是多處理器並行體系結構逐漸成為研究的熱點。

並行結構一般是指並行體系結構和軟體架構採取並行編程。主要目的是使更多任務或數據同時運行。並行體系結構是指許多指令能同時進行的體系結構;並行編程一般有以下模式:共享內存模式;消息傳遞模式;數據並行模式。

資料庫中,為了提高存取和查詢速率,會同時採用以上兩種並行結構。並行性有兩種解釋,同時性:兩個或兩個以上的事件在同一時刻發生。並發性:兩個或兩個以上的事件在同一時間間隔發生。

從處理數據的角度看,並行性等級從低到高可分為四類。字串位串:同時只對一個字的一位進行處理。這是最基本的串列處理方式,不存在並行性。字串位並:同時對一個字的全部位進行處理,不同字之間是串列的。這里已開始出現並行性。

字並位串:同時對許多字的同一位進行處理。這種方式有較高的並行性。全並行:同時對許多字的全部位進行處理。這是最高一級的並行。在資料庫中,並行結構主要是處理數據來分析的,具體採用哪一級並行性,主要與數據規模、機器設備和程序架構有關。

並行體系結構:

1、數據級並行它的出現是因為可以同時操作許多數據項。

2、任務級並行它的出現是因為創建了一些能夠單獨處理但大量採用並行方式執行的工作任務。

3、指令級並行在編譯器的幫助下,利用流水線之類的思想適度開發數據級並行,利用推理執行之類的思想以中等水平開發數據級並行。

4、向量體系結構和圖形處理器將單條指令並行應用於一個數據集,以開發數據級並行。

5、線程級並行在一種緊耦合硬體模型中開發數據級並行或任務級並行,這種模型允許在並行線程之間進行交互。

6、請求級並行在程序員或操作系統指定的大量去耦合任務之間開發並行。

❷ CUDA/SIMD/SIMT/DSA 關系

實現並行的編程方式

一共有三種不同的編程模型:串列(SISD)、數據並行(SIMD)和多線程(MIMD/SPMD)。

選擇合適的並行計算模型可以更好地利用硬體資源,提高程序的性能和效率。

串列執行與 SISD(Single Instruction, Single Data)類似,每次 for 循環(Iter.i)都要執行一次向量 A 和向量 B 相加之後得到向量 C 的操作。在 CPU 中經常使用這種方式。

流水執行 PPE 是流水執行中的一種處理器架構,指令被分成多個階段,每個階段由一個專門的處理單元負責執行,從而實現指令的並行處理。

亂序執行 OOE 中,處理器可以在不改變程序語義的情況下,通過重新排序指令的執行順序來提高指令級並行度和性能。

超長指令集 VLIW 架構是一條指令可以同時包含多個操作,這些操作可以在同一時鍾周期內並行執行。

數據並行主要通過循環中的每個迭代獨立實現,在硬體層面通過提供 SIMD 較寬的 ALU 執行單元。

多線程 SPMD 指的是在 SPMD 模型中使用多個線程來執行並行計算任務,每個線程處理不同的數據。

GPU 的 SIMT 實際上是具體硬體執行 SIMD 指令,採用並行編程模式使用 SPMD 來控制線程的方式。

NVIDIA 公司於 2007 年發布了 CUDA,支持編程人員利用更為通用的方式對 GPU 進行編程。

SIMD 是單順序的指令流執行,每條指令多個數據輸入並同時執行。

SIMT 是標量指令的多個指令流,可以動態地把線程按 wrap 分組執行。

英偉達 GPU 採用了 SIMT 的指令執行模式,給相關產品帶來以下優勢:通過細粒度的多線程調度將處理器的執行流水線細分為更小的單元,使得不同線程的指令可以交錯執行,減少指令執行的等待時間和資源浪費,實現訪存和計算並行。

Warp 是在不同地址數據下,執行相同指令的線程集合,所有線程執行相同的代碼,可以看到 Thread Warp 中有很多個 Thread,多個 Warp 組成 SIMD Pipeline 執行對應的操作。

在 GPU 宏觀架構層面,GDDR 裡面的數據通過內存控制器傳輸到片內匯流排,然後分發到具體的核心,在每個執行核心中會有 SIMD 執行單元,實現並行計算。

AMD 的顯卡也有大量的計算單元和計算核心,但採用的是 GCN 架構,搭載 GCN 系列架構的產品在游戲機等場景獲得較高市場份額,但在數據中心市場並未取得顯著成果,這與其性能表現有關。目前 AMD 將其 GPU 架構開發分為單獨的 CDNA 和 RDNA 線路,分別專門用於計算和圖形。

NVIDIA 推出 CUDA 並遵循自定義的 SIMT 架構,實現了對通用計算的高效支持,構建了用戶易於實現的 SPMD 編程模型。如今整個科學計算、HPC 和 AI 的軟體生態大多構建在 CUDA 的基礎之上。

閱讀全文

與傳統並行編程模型有哪些相關的資料

熱點內容
抖音如何上直播網站 瀏覽:887
錄屏截圖大師保存的文件在哪裡 瀏覽:751
紅河谷第二個版本 瀏覽:895
c語言如何讓整型數據的商為小數 瀏覽:863
怎樣下東西不要密碼 瀏覽:320
小米手機拍照後文件名要怎麼設置 瀏覽:429
每年程序員就業形勢 瀏覽:425
安卓手機如何卸載程序 瀏覽:955
相機能用qq不能用 瀏覽:319
win10如何設置成xp配置文件 瀏覽:748
蘋果隔空傳遞以後文件在哪裡 瀏覽:927
打開ps顯示文件名無效 瀏覽:379
做推廣哪個網站靠譜 瀏覽:588
qq飛車如何綁定好友 瀏覽:873
php編程語言在哪裡 瀏覽:302
矢量文件有哪些格式 瀏覽:790
文書檔案長期保存的文件有哪些 瀏覽:945
如何把pdf文字復制粘貼到word文檔 瀏覽:507
勤哲價格qinzheapp 瀏覽:709
騰訊小說下載的文件在哪裡 瀏覽:106

友情鏈接