歷史
隨著所羅門機器的發展,數據並行概念的開發始於20世紀60年代。 所羅門機器,也稱為矢量處理器,希望通過處理大型數據陣列(在連續時間步驟中對多個數據進行操作)來加速數學性能。通過使用單個指令同時操作多個數據點,也可以利用數據的並發性。這些處理器被稱為陣列處理器。今天,數據並行性最好地體現在圖形處理單元中,其使用在單個指令的空間和時間上操作多個數據點的技術。
描述
在執行單組指令的多處理器系統中,當每個處理器對不同的分散式數據執行相同的任務時,實現數據並行性。在某些情況下,單個執行執行緒控制對所有數據的操作。在其他情況下,不同的執行緒控制操作,但它們執行相同的代碼。
例如,如實例中所討論的,以順序方式考慮矩陣乘法和加法 。
套用
數據並行性在物理學,化學,生物學,材料科學和信號處理等各個領域都有套用。 科學意味著數據並行性模擬分子動力學模型,基因組數據的序列分析和其他物理現象。 用於數據並行的信號處理的驅動力是視頻編碼,圖像和圖形處理,無線通信等。
並行化的步驟
並行化順序程式的過程可以分解為四個不連續的步驟:
類型 | 描述 |
分解 | 該計畫被分解為任務,這是最小的可利用的並發單位。 |
分配 | 任務分配給流程。 |
編寫 | 數據訪問,通信和進程同步。 |
製圖 | 進程綁定到處理器。 |
數據並行與任務並行
數據並行 | 任務並行 |
映射相同的操作在相同數據的不同子集上執行。 | 對相同或不同的數據執行不同的操作。 |
同步計算 | 異步計算 |
加速更多,因為只有一個執行執行緒在所有數據集上運行。 | 加速度較低,因為每個處理器將在相同或不同的數據集上執行不同的執行緒或進程。 |
並行化量與輸入數據大小成比例。 | 並行化的數量與要執行的獨立任務的數量成比例。 |
專為多處理器系統的最佳負載平衡而設計。 | 負載平衡取決於硬體的可用性和靜態和動態調度等調度算法。 |
混合數據和任務並行
數據和任務並行性可以通過將它們組合在一起用於相同的應用程式來同時實現。 這稱為混合數據和任務並行。 混合併行性需要複雜的調度算法和軟體支持。 當通信速度慢且處理器數量很大時,這是最好的並行性。
混合數據和任務並行性有許多套用。 它特別適用於以下套用:
1、混合數據和任務並行性在全球氣候建模中得到套用。 通過創建表示地球大氣和海洋的數據格線來執行大數據並行計算,並且使用任務並行來模擬物理過程的功能和模型。
2、在基於時序的電路仿真中。 數據在不同的子電路之間劃分,並且通過任務的編排實現並行性。