教材:10710周志遠教授平行程式 https://www.youtube.com/playlist?list=PLS0SUwlYe8cxqw70UHOE5n4Lm-mXFXbZT 20250821 筆記 內容可能有錯僅供參考 3A~3D講 The Latest Developments and Applications Using Parallel Programming 今日大綱 超級電腦的目的、組成與效能因素 如何衡量超級電腦的效能和 Top500 排行榜 超級電腦的優化層面 超級電腦的國家意義和近年趨勢 處理器技術 互連網路技術 互連網路設計層面 常見的網路拓樸 網路設備:Infiniband 與 Ethernet 比較 ### 平行計算與超級電腦概述 - **超級電腦的核心目的**:平行計算最主要的目的就是為了提升效能。為了達到極致的效能而開發的電腦系統,就被稱為超級電腦。 - **超級電腦的組成與效能因素**:超級電腦並非單純由大量好電腦組成。其之所以速度快,是因為在**計算處理技術**、**網路**以及 **I/O** 等方面都採用了特殊硬體或設計,並有許多技術在背後支撐。 - **基本架構**:目前的平行計算電腦系統,包括超級電腦,其基本架構都是由許多「機架 (Rack)」所組成。 - **機架 (Rack)**:一個機架通常指一個機櫃,用於放置電腦設備。機櫃的大小根據固定單位「**U**」來決定,每個 U 有固定的高度。例如,42U 的機櫃比 16U 的機櫃高,可以放入更多機器。 - **伺服器/節點 (Node/Server)**:伺服器的大小也用 U 來測量。最小的機器是 1U 伺服器,2U 伺服器是其兩倍寬,以此類推。 - **空間與散熱**:U 值越大的伺服器(空間越大),通常散熱效果越好,因為空氣流通性更好,有助於帶走熱量,使系統更穩定。如果系統配備高效的冷卻系統(例如水冷),則伺服器可以設計得非常緊密,即使內部塞滿計算元件也不怕過熱。 - **加速器容納**:較大的 U 值伺服器(如 2U 或 4U)可以容納更多計算功能,例如體積較大的加速器,如 GPU 卡或 FPGA。 - **計算核心與加速器**: - 現代伺服器通常有多顆 CPU,且每顆 CPU 內含多個計算核心,提供大量的處理單元進行平行計算。 - 單靠 CPU 難以獲得巨量的計算能力,因此現在常搭配其他專門用於特定計算工作的加速器 ,像是 GPU 是一個很好的例子,它們與 CPU 一起工作,結合不同類型的處理器以達到最佳計算效能。這種 **CPU + GPU** 的設置在平行計算電腦中很常見。 ### 超級電腦的效能衡量與排行榜 - **計算能力衡量**:超級電腦的計算能力遠超一般電腦,其主要目的是提供強大的計算能力。 - 通常使用 **FLOPS (Floating Point Operations Per Second)** 來衡量,即每秒浮點數運算的次數。 - **效能測試基準 (Benchmark)**: - 要測量超級電腦的效能,需要執行一個特定的基準測試程式,即 **HPL (High Performance Linpack) benchmark**。 - HPL Benchmark 執行的是**線性矩陣方程 (linear matrix equation)** 的求解,其中的數值都是浮點數資料類型。它會測量每秒平均計算了多少個浮點數運算,以此作為最終排名依據。 - **參數調整**:執行 HPL benchmark 時,可以調整許多參數,例如矩陣的大小、資料分割方式 等。調整的目標是讓每次分割的資料能盡量塞入快取 ,以提高快取命中率,進而提升效能。這顯示了軟體調校對於效能優化的重要性。 - **Top500 排行榜**: - 全球最快的超級電腦排名由一個學術主導的委員會每年在 ISC (International Supercomputing Conference) 和 SC (Supercomputing Conference) 這兩個學術會議上發布。ISC 在六月中,SC 在十一月底。 - 廠商和開發者也會參與這些會議。 - 委員會根據提交的 HPL benchmark 成績,發布知名的 **Top500 list**,列出全球最快的 500 台超級電腦系統。 - **為何使用 HPL benchmark?** - 基準測試程式並非隨意設定,它對系統設計至關重要。一個好的基準測試應能描述或代表系統未來主要計算的類型。 - **科學計算**:超級電腦主要用於科學計算,而這些計算大多涉及數學方程式,且數值多為浮點數,對精確度要求極高 (e.g., 彈道計算、結構穩定性分析)。因此,HPL 專注於浮點數運算和線性方程求解,正是為了反映這種應用特性。 - **雙精度浮點數**:事實上,通常更關注的是**雙精度 (double precision) 浮點數運算**的每秒次數 (double precision floating point operations per second),因為常見應用對精確度要求高。 - **HPL benchmark的適用性爭議**: - 高效能計算領域一直在討論 HPL 是否仍是最適合的基準測試。 - 隨著計算類型和硬體架構的變化,有時單純的計算指令執行速度已非最重要的瓶頸。 - 有人提出應使用**記憶體相關的基準測試**,因為計算再快,最終可能受限於記憶體存取速度、快取大小等問題。 - 因此,現在也有其他基準測試出現,用於衡量其他計算資源的使用能力和速度。系統可能會根據應用的類型(如記憶體綁定、I/O綁定、計算綁定或通訊綁定)選擇不同的基準測試。 ### 超級電腦的優化層面 超級電腦之所以能如此快速,有幾個層面的優化: 1. **昂貴和先進的硬體**:超級電腦的硬體通常非常特殊且昂貴。例如,專門用於浮點數計算的 GPU(如 NVIDIA V100 或 P100)單張卡可能就價值數十萬台幣,遠超一般消費級顯卡。 2. **客製化系統設定**:程式在系統上執行涉及多個層級的資料流動和緩衝區搬移。如果沒有精確調校參數設定,可能導致資料不匹配或效能下降。 3. **最佳化軟體和函式庫**:程式使用的函式庫(如 MPI)其底層實作對於系統效能影響巨大。針對硬體架構和網路拓撲進行優化的函式庫,可以確保演算法在特定環境下達到最佳效能,例如優化廣播等通訊方式,避免不必要的實體鏈路繞行。 4. **金錢與能源消耗**:增加機器數量雖然有效,但必須考量有限的資金和能源消耗。更多的電腦運作需要消耗大量電力,電費高昂。因此,需要在有限的能源消耗和成本下,實現上述優化。 ### 超級電腦的國家意義 - **國家強盛的象徵**:Top500 排行榜非常重要,它往往代表一個國家的強盛與否,是一種國家間的軍備競賽。 - **推動尖端研究**:所有應用(如物聯網、深度學習、AI)最終都需要強大的計算能力支撐。超級電腦支援著國家尖端技術或產品的開發,例如太空、飛機設計等。一個國家擁有超級電腦,代表其有能力和需求來推動這些高科技研究。 - **競爭格局**:美國和中國在超級電腦領域競爭激烈,日本也積極投入建設。中國曾花費巨資建設超級電腦以提升國家能力指標。美國政府也投入大量資金以奪回領先地位。 - **理論值與實際值 (Rpeak vs. Rmax)**: - **Rpeak (Theoretical Peak Performance)**:是根據硬體規格(如核心數、頻率、指令週期)計算出的理論最高性能,不考慮任何通訊或記憶體存取成本,代表純粹計算能力的理論值。 - **Rmax (Maximum Performance)**:是實際執行 HPL benchmark 測得的值。 - **效能落差**:Rmax 通常遠低於 Rpeak,例如有些機器 Rmax 僅為 Rpeak 的 60% 或 75%。這主要歸因於**通訊成本 (communication cost)** 很高。當系統規模越大(越多計算節點),資料傳輸所需的時間比例會不斷增加,導致效能損耗。因此,網路通訊對於超級電腦的效能至關重要,不單純是計算本身。 - **加速器的重要性**:GPU 等加速器的計算能力遠超 CPU,因此 Top500 前幾名的超級電腦幾乎都配備了加速器。即使有些機器表面看起來沒有加速器(如中國的「神威太湖之光」),其處理器內部也可能整合了多核處理器技術,實現了類似加速器的功能。 - **能源效率**:Top500 排行榜也列出每瓦特電力可提供的計算量 (Performance/Watt)。這代表了系統的運營成本,因此能源效率是相當重要的考量。 - 近年趨勢 (影片是2018年資料,我這裡再補上2025年6月,這裡資料僅供參考蠻有可能是錯的,有興趣可以去看實際 Top500 資料) https://top500.org/lists/top500/ - **CPU 趨勢**: 2018 年 Intel 在超級電腦 CPU 市場佔據主導地位,約 80% 的 Top500 系統使用 Intel CPU,到了 2025年6月 Intel 下降到58.80%,AMD 則上升至34.60%,顯示AMD在高效能處理器(如EPYC系列)上的競爭力增強。 - **網路趨勢**: 2018 年Ethernet 主導系統數(約50%以上),InfiniBand 占比約25%系統,到了2025年6月Ethernet系統佔比約33.4%,價格親民且適合中低階系統,但效能佔比較低(估計不到總效能的20%),多用於較小型或非極端計算。nfiniBand系統佔比升約54.2%,因其低延遲和高頻寬(NDR200/HDR100等規格)適合大規模AI/HPC任務。其他像是HPE Slingshot系統佔比約10%但卻占了48.1%的系統效能。 - **公司佔比**: 2018年 Cray 和 IBM 在超級電腦製造商中佔有重要地位。Cray 是第一台超級電腦的製造商,並長期在該領域領先。NVIDIA 由於其 GPU 的加持,也變得非常快。2025年6月相較2018年 Cray/IBM 主導,HPE之前透過收購Cray成為最大玩家,HPE佔系統約30-35%,Lenovo從新興變主流約32%,IBM約10%。 - **國家佔比**: 2013 年美國佔據一半,但到 2018 年中國與美國的佔比已相當接近。到了 2025年6月:美國佔約35%,總效能佔比約50%以上。中國變成佔9.4%,效能佔比約15-20%。可能是因為美國政府巨資投入,中國則因美國禁售高階晶片,還有中國近期不再參加名為Top500的國際超級運算論壇,或許是怕美國再次打壓。 ### Exascale computing - **定義**:超大規模計算 (Exascale computing) 指的是超級電腦計算能力達到 **ExaFLOPS (百億億次浮點運算/秒)** 的等級。目前的系統多為 PetaFLOPS 級別,ExaFLOPS 是更高級別的目標。 - **目標與挑戰**:這是目前設計系統的中期目標。由於計算能力增長迅速,周邊系統(如資料存取、記憶體架構、網路架構)也必須跟上,才能讓機器效能完全發揮。 - **應用價值**:超大規模計算的目標是為了實現某些超大型研究,例如分析人類腦神經的極致程度。儘管在2020年曾設定目標,但目前實際進度略慢於預期。 ### 處理器技術 - **CPU 與 GPU 比較**: - CPU 由於需要通用性,其計算能力有其限制。 - **GPU 的優勢**:在計算能力 (FLOPS) 和記憶體頻寬上,GPU 明顯優於 CPU。 - **計算**:GPU 擁有更多的計算核心 ,因此其聚合計算能力更強。 - **記憶體頻寬**:GPU 記憶體通常在同一張卡上,頻寬可以做得更寬,且只有 GPU 核心存取,競爭較少。 - **記憶體瓶頸**:儘管 GPU 內部記憶體頻寬大,但資料通常需要從主記憶體傳輸到 GPU 裝置記憶體 。這之間的頻寬傳輸往往成為效能瓶頸。 - **加速器特性**:GPU 屬於高度平行的 SIMD 架構。 - **成本與效率**:GPU 等加速卡通常價格較高。但從單位成本來看,它們可能更有效率。然而,實際問題在於使用者能否完全發揮其計算能力,因為可能受其他因素(如記憶體存取)限制。 - **GPU 的架構**: - GPU 卡本身被稱為 Device ,而原來的 CPU 機器被稱為 Host 。 - GPU 內部有許多計算核心,這些核心並非統一管理,而是被組織成多個 **Streaming Processors (SP)** 或 **Streaming Multiprocessors (SM)**。 - 每個 SM 內部有多個計算核心 (ALU),它們協同提供計算能力。 - **記憶體階層**: - **Shared Memory (共享記憶體)**:每個 SM 內部都有自己的共享記憶體,該 SM 內的所有核心都可以存取。 - **Global Memory (全域記憶體)**:位於 SM 之外,不同 SM 之間的資料通訊需要透過全域記憶體。 - **Registers (暫存器)**:每個核心也有自己的暫存器。 - **記憶體存取策略**:資料存放位置(暫存器、共享記憶體、全域記憶體)對效能影響巨大。通常,較快的記憶體(如共享記憶體)速度可達全域記憶體的十倍以上。這需要程式設計師了解硬體架構和程式模型,以最佳化資料存取。 - **硬體排程器 (Hardware Scheduler)**:GPU 內部的核心數量龐大,切換速度要求極高,因此採用**硬體排程器**來管理執行緒 (thread)。這與傳統作業系統的軟體排程不同,速度更快。排程原則通常基於誰的資料準備好就優先執行。 - **Intel Xeon Phi (KNC)**: - **指令集相容性**:Xeon Phi 的組合語言指令集與 Intel CPU 相同。這使得在一般 CPU 上執行的程式,基本上可以保證在 Xeon Phi 上運行,避免了重新編譯和指令不支援的問題。 - **獨立運作能力**:Xeon Phi 卡可以作為一個獨立的 CPU (standalone CPU)。它可以在上面安裝作業系統,獨立執行程式,不需其他處理器輔助,這與 GPU 的設計理念不同(GPU 早期是從繪圖卡發展而來)。 - **神威太湖之光 (Sunway TaihuLight SW26010)**: - 這台超級電腦曾排名第二,它的特殊之處在於它表面上「沒有加速器」。 - 實際上,其處理器晶片內部包含兩種不同的處理器:**slave cores (從屬核心)**,這是一個多核處理器,以及一個 **master core (主核心)**。 - 它將這兩者結合在一起,本質上是利用多核架構來提供強大的計算能力,尤其適合矩陣運算這種資料平行 (data parallelism) 的計算。 - **Google Tensor Processing Unit (TPU)**: - **專用客製化處理器**:TPU 是 Google 專門為深度學習設計的張量處理單元。 - **優化矩陣乘法**:深度學習(尤其是神經網路)的計算模式與傳統高效能計算相似,涉及大量的矩陣乘法。TPU 專門針對矩陣乘法操作進行優化和客製化,邏輯閘直接硬燒死,因此可以極快地執行。 - **維度處理能力**:相較於 GPU(偏向向量計算,一維),TPU 針對矩陣(二維)進行計算,速度更快。CPU 則更像是對單一元素進行計算。 - **整合趨勢**:新的 GPU 也開始將類似 TPU 的晶片整合在內,將不同類型的處理器打包在一起以加速。這顯示處理器設計趨於根據特殊應用需求進行客製化,以持續提升效能。 ### 互連網路技術 (Interconnect and Network Technology) - **網路溝通的重要性**: - 網路溝通對於平行計算至關重要,因為程式之間必須溝通才能解決相同問題。 - 儘管計算效能是最終目標,但大多數平行程式的效能瓶頸卻在於網路通訊。 - **慢於 CPU 但必備**:網路本質上是一種 I/O,其速度通常比 CPU 慢很多,但對於大規模平行計算而言卻是必不可少的。 - **同步化 (Synchronization)**:平行程式執行時常需要同步點。同步點不僅涉及通訊,還可能導致計算等待,造成資源浪費。同步化問題是平行計算中非常複雜且常見的挑戰。 - **實體網路管理挑戰**:超級電腦的物理線路數量非常龐大且複雜。如何連接、整理和管理這些線路,使其既能運作又能管理,是一門學問。網路中的節點 (node) 增加時,連接線 (edge) 的數量會以更高的比例增長。 ### 互連網路設計層面 互連網路設計涉及硬體、網路拓樸和應用三個層面。衡量網路或通訊的幾個主要目標包括: 1. **擴充性 (Scalability)**:當節點數量不斷增加時,架構能否持續支援,效能是否會嚴重下降,以及交換器上的連接埠數量是否足夠。 - 由每個節點的 **Degree (度)** 決定:Degree 越高,表示每個節點需要連接的埠越多,可能限制擴充性。 2. **效能 (Performance)**:資料傳輸的速度。 - 由拓樸的 **Diameter (直徑)** 決定:直徑越小,最遠的路由距離越短,效能越好。 3. **彈性 (Resilience)**:當連結或節點故障時,系統能否繼續運作,是否有足夠的備用路徑。 - 由 **Bisection Bandwidth (二分頻寬)** 決定:切割多少條連結才能將圖分成兩個獨立部分,數值越大,彈性越好。 4. **成本 (Cost)**:硬體成本,尤其指纜線數量和連接埠數量。 - 由 **Link (連結)** 數量決定:連結數量越少,成本越低。 ### 常見的網路拓樸 (Network Topology) 這堂課的拓樸主要從應用層面分析,不涉及複雜的底層實作。以下是一些簡單拓樸的比較: - **Linear Array**: - **特點**:所有節點排成一條線,依序連接。 - **Diameter**:N-1 (N為節點數),最差。 - **Bisection**:1 (最差,一條線斷開就全斷)。 - **Link**:N-1 (最低成本)。 - **Degree**:2 (最優,良好擴充性)。 - **結論**:成本最低,擴充性好,但效能和彈性極差,幾乎沒人用。 - **Ring**: - **特點**:在線性陣列基礎上,將首尾節點連接起來。 - **Diameter**:N/2 (大幅改善,減半)。 - **Bisection**:2 (改善,有兩條備用路徑)。 - **Link**:N (只比線性陣列多一條線,成本增幅小)。 - **Degree**:2 (擴充性仍好)。 - **結論**:成本低,效能和彈性有顯著改善,比線性陣列好很多,在某些情況下較為常見。 - **Tree**: - **特點**:節點呈樹狀結構連接。 - **Diameter**:更小。 - **Bisection**:較差(如果根節點斷開)。 - **Link**:增加。 - **結論**:直徑小,效能不錯,但彈性可能受限。 - **2D Mesh**: - **特點**:將節點排成二維(或多維)網格,每個節點連接其上下左右(相鄰)節點。 - **Diameter**:約 $2 * \sqrt{P}$ (P為節點數),效能不錯。 - **Bisection**:$\sqrt{P}$ (非常好,需切斷很多連結才斷開)。 - **Link**:約 $2 * P$ (還不錯)。 - **Degree**:4 (擴充性很好,與節點數無關)。 - **結論**:效能好,彈性極佳(有很多備用路徑可做負載平衡),成本和擴充性也平衡得很好。因此廣泛應用於超級電腦,通常是 3D Mesh。 - **2D Torus**: - **特點**:是 Mesh 的變體。在 Mesh 的基礎上,將邊緣的節點像環一樣連接起來(例如 2D Mesh 的最左邊連最右邊,最上邊連最下邊)。 - **結論**:具有 Mesh 的優點,並進一步改善了 Diameter 和 Bisection Bandwidth。許多超級電腦使用 Mesh 和 Torus 架構。 - **Hypercube**: - **特點**:每個節點用二進位字串描述。兩個節點之間只要翻轉一個位元就有連接。 - **Diameter**:$log( P )$ (P為節點數),通常最小。 - **Bisection**:$P/2$ (非常好)。 - **Link**:$P * log( P ) / 2$ (相對較多,成本較高)。 - **Degree**:$log( P )$ (與 P 有關,擴充性差,無法擴展到非常大)。 - **優缺點**: - **優點**:直徑小,彈性非常好,有很多備用路徑可進行負載平衡。 - **缺點**:連結數量多,成本較高。**最大的缺點是其 Degree 與節點數 P 成對數關係**,導致它無法擴展到非常大規模的系統。 - **應用場景**:Hypercube 通常適用於**小型規模的交換器 (switch) 內部連接**,例如 128 個埠的交換器內部連接。但在大型超級電腦集群中很少使用。 - **日本 K Computer (京)**: - 曾是全球前三名的超級電腦。 - 其網路拓樸採用 **6D Torus**,也稱為「豆腐 (Tofu)」拓樸,因其連接方式類似切割豆腐。 - K Computer 的設計強調其動態路由能力,能根據負載動態決定資料傳輸路徑,確保每條連結的使用率很高,避免單一瓶頸。這有助於其在執行 HPL benchmark 和通用應用時都達到高效能。 - (額外資訊:日本的 K Computer 也強調防災和耐震設計,是其特色之一)。 - **蜻蜓拓樸 (Dragonfly Topology)**: - 這是一種近年來較新的拓樸,利用硬體技術的進步。 - **優勢**: - **長距離連結**:現在的連結技術可以實現更長的距離傳輸而無效能損耗。 - **高埠數交換器**:每個交換器可以連接非常多的埠。 - **密集的局部連接**:在同一個機架 (rack) 內,具有非常密集的連接,提供更多的頻寬和路徑,提高局部效能。 - **遠端直接連結**:不同機架之間仍保留一些直接連結,不論距離多遠,都能一次拉過去。 - **比喻**:像蜻蜓一樣,翅膀密集交錯代表局部連接,長尾巴代表遠距離連結。 - **優勢**:它能很好地適應程式的通訊模式——頻繁的局部通訊和偶爾的遠距離通訊,從而大幅提升效能。 ### 網路設備:Infiniband 與 Ethernet - **Ethernet (乙太網路)**: - **協定**:採用 Best-Effort 協定。資料傳輸時直接丟到通道上,若發生衝突 (conflict),則進行退讓 (back-off),這會浪費資源並降低傳輸速度。 - **缺點**:衝突次數隨著資料傳輸量和頻繁度增加而增多,導致效能無法提升。 - **成本**:硬體、軟體成本較低。 - **Infiniband (無限頻寬)**: - **協定**:採用 Reservation-Based 協定。在傳輸資料前,會先預留通道空間再傳輸,因此不會發生衝突,傳輸速度非常快。 - **RDMA (Remote Direct Memory Access)**:Infiniband 支援 **RDMA 技術**。 - **Direct Memory Access (DMA)**:不需 CPU 介入,由控制器直接進行資料傳輸。 - **Remote DMA (RDMA)**:可以直接繞過 CPU 和作業系統 (OS),將使用者空間 (user space) 的記憶體緩衝區資料直接寫入遠端網路卡上的記憶體。這**節省了大量的記憶體複製時間**,因為 Ethernet 的 TCP/IP 協定在傳輸過程中會不斷進行記憶體複製。 - **優勢**:提供極低的延遲和極高的頻寬 。其性能遠超 Ethernet。 - **成本**:Infiniband 的網路介面卡 (network adapter) 和交換器 (switch) 都比較昂貴,可能高達 Ethernet 的十倍。但為了追求極致效能,尤其是在通訊成為主要瓶頸時,Infiniband 是首選。 --- 其他課程連結 [平行程式1C~2B Introduction parallel programming](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/Syxh3H7Kxe) [平行程式3A~3D The Latest Developments and Applications Using Parallel Programming](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/HJh7QFVKle) [平行程式4A~4B IO Parallel IO and Program Analysis](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/HJLMsuHFgg) [平行程式5A~5B The Latest Developments and Applications Using Parallel Programming](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/SJh57hIFle) [平行程式6A~6B Communication Routines and Parallel Function Code](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/r1X9kX_Fle) [平行程式 6C~6D Communication Routines and Parallel Function Code](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/S1DPjoYFlx) [平行程式 7A~8A Pthread:Synchronization Problem & Tools](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/HJu-_0tKge) [平行程式 8B~8D Synchronization Tools & Open Multi-Processing(OpenMP)](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/H1ki4E2Fee) [平行程式 9A~9B Synchronization Construct](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/BJTYMrpKlx) [平行程式 10A~10B Synchronization Tools & Open Multi-Processing Synchronization Construct](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/B1cY6M1qee) [平行程式 10C~10D Synchronization Tools & Open Multi-Processing Synchronization Construct](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/BkgFaNg5gg) [平行程式 11A~11B Parallel Work Pool and Termination / Parallel Sorting](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/H1hfOw-5xl) [平行程式 12A~12B Parallel Sorting and Pipelined Computations](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/Symo-zQ9eg) [平行程式 12C~12D Parallel Sorting and Pipelined Computations](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/BJYNKDVceg) [平行程式 13A-13B Sychronous Parallelism](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/HJ2UJ2Bqex) [平行程式 14A~14B Heterogeneous Computing](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/BksS4yP5eg) [平行程式 14C~14D Heterogeneous Computing](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/BJrfTUd9xx) [平行程式 15A~15B Parallel Programming Model on GPU](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/ByWnl-t5gg) [平行程式 16A~16B What is Compute Unified Device Architecture(CUDA)?](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/HyYpsjcqgl) [平行程式 17A~18A 平行運算的CUDA](https://hackmd.io/@6FOC2dvARe-Vz0kVSyajew/H1dUeBT5lg) [平行程式 18B~19A 記憶體層級 / CUDA的優化](https://hackmd.io/@JuitingChen/HyF44e1jge) [平行程式 19B~19D 記憶體層級 / CUDA的優化 ](https://hackmd.io/@JuitingChen/ryPEu4lieg) [平行程式 20A~20B CUDA優化全域和區域記憶體/共享記憶體](https://hackmd.io/@JuitingChen/r1X659Zoxl) [平行程式 21A~21B Parallel Reduction / Distributed Computing Framework](https://hackmd.io/@JuitingChen/HyiOpozjxl) [平行程式 NTHU-PP-Chap10-Big Data-Part1 ](https://hackmd.io/@JuitingChen/Hyc-e3Golx) [平行程式 NTHU-PP-Chap10-Big Data-Part2 ](https://hackmd.io/@JuitingChen/ryC_QTXoxl) [平行程式 NTHU-PP-Chap11-MapReduce](https://hackmd.io/@JuitingChen/HJgBXJOsge) [平行程式 NTHU-PP-Chap12-Distributed Training-Part1](https://hackmd.io/@JuitingChen/ryh5hBtsge) [平行程式 NTHU-PP-Chap12-Distributed Training-Part2](https://hackmd.io/@JuitingChen/rJ2G7kdjxg) [平行程式 NTHU-PP-Chap12-Distributed Training-Part3](https://hackmd.io/@JuitingChen/HkA471dilx) [平行程式 NTHU-PP-Chap13-UCX-Part1](https://hackmd.io/@JuitingChen/rJbq103ieg) [平行程式 NTHU-PP-Chap13-UCX-Part2](https://hackmd.io/@JuitingChen/SJpNmk_ixl) [平行程式 NTHU-PP-Chap13-UCX-Part3](https://hackmd.io/@JuitingChen/HkIUYa13xe)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.