資料並行與任務並行


資料並行

資料並行意味著在多個計算核心上同時執行相同的任務。

例如,對大小為 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. 在這裡,負載平衡取決於硬體的可用性和靜態和動態排程等排程演算法。

更新於:2019年10月11日

18K+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.