資料並行與任務並行
資料並行
資料並行意味著在多個計算核心上同時執行相同的任務。
例如,對大小為 N 的陣列求和。對於單核系統,一個執行緒會簡單地對元素 [0] ... [N − 1] 求和。然而,對於雙核系統,在核心 0 上執行的執行緒 A 可以對元素 [0] ... [N/2 − 1] 求和,而同時在核心 1 上執行的執行緒 B 可以對元素 [N/2] ... [N − 1] 求和。因此,這兩個執行緒將在單獨的計算核心上並行執行。
任務並行
任務並行意味著在多個計算核心上同時執行不同的任務。
再次考慮上面的例子,任務並行的例子可能包括兩個執行緒,每個執行緒對元素陣列執行唯一的統計運算。同樣,這些執行緒在單獨的計算核心上並行執行,但每個執行緒執行唯一的操作。
資料並行和任務並行的主要區別在於:
| 資料並行 | 任務並行 |
|---|---|
| 1. 對相同資料的不同子集執行相同的任務。 | 1. 對相同或不同資料執行不同的任務。 |
| 2. 執行同步計算。 | 2. 執行非同步計算。 |
| 3. 由於只有一個執行執行緒操作所有資料集,因此加速效果更好。 | 3. 由於每個處理器將在相同或不同資料集上執行不同的執行緒或程序,因此加速效果較差。 |
| 4. 並行化程度與輸入大小成正比。 | 4. 並行化程度與執行的獨立任務數量成正比。 |
| 5. 它旨在在多處理器系統上實現最佳負載平衡。 | 5. 在這裡,負載平衡取決於硬體的可用性和靜態和動態排程等排程演算法。 |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP