處理執行中的並行型別
資料並行
資料並行是指在多個計算核心上同時執行相同任務。
讓我們舉個例子,對大小為N的陣列求和。對於單核系統,一個執行緒會簡單地對元素[0]…[N-1]求和。然而,對於雙核系統,在核心0上執行的執行緒A可以對元素[0]…[N/2-1]求和,而同時在核心1上執行的執行緒B可以對元素[N/2]…[N-1]求和。因此,這兩個執行緒將在單獨的計算核心上並行執行。
任務並行
任務並行是指在多個計算核心上同時執行不同的任務。
再次考慮我們上面的例子,任務並行的例子可能包括兩個執行緒,每個執行緒對元素陣列執行唯一的統計運算。同樣,這些執行緒在單獨的計算核心上並行執行,但每個執行緒都執行一個唯一的操作。
位級並行
位級並行是一種基於增加處理器字長的平行計算形式。在這種型別的並行中,增加字長減少了處理器必須執行的指令數量,以對大小大於字長的變數執行操作。
例如,考慮一個8位處理器必須新增兩個16位整數的情況。首先,處理器必須新增每個整數的8個低位,然後新增8個高位,然後需要兩條指令才能完成單個操作。一個具有16位的處理器將能夠用單條指令完成該操作。
指令級並行
**指令級並行**是指同時執行程式中的多條指令。雖然流水線是ILP的一種形式,但我們必須利用它才能實現指令流中指令的並行執行。
示例
for (i=1; i<=100; i= i+1) y[i] = y[i] + x[i];
這是一個並行迴圈。迴圈的每次迭代都可以與任何其他迭代重疊,儘管在每次迴圈迭代中幾乎沒有重疊的機會。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP