1. 程式人生 > >算法與並行計算常規

算法與並行計算常規

矩陣 鄰接矩陣 目標 並行處理 進行 任務 關系 思考 規模

技術分享圖片

利用並行計算機實現軟件和硬件上的並行算法的主要步驟和層次

  • 第5層是指應用層,在這一層裏描述的是需要並行計算平臺實現的應用和問題。對應所需的輸入和輸出的格式也在這層進行定義。某些輸入和輸出(I/O)接口的描述還需要考慮數據存儲的位置和時間的相關性。這一層的結果會被更低一層采納以便指導並行算法的開發工作。
  • 第4層是算法開發層,這裏需要考慮到應用在問題中的實現。需要應用實現的計算內容決定了算法的具體任務和任務之間的相互依賴關系。在這一階段的程序,算法的並行性並不一定會顯現出來,因為在探索算法子任務執行的時候仍然在運用傳統的線性思考。在這一階段,也不需要考慮子任務的時間調度和處理器分配的問題。可能在這階段就將這些問題解決的做法看起來很誘人,但是這樣做會適得其反,因為這會掩蓋程序中潛在的並行性。該層的結果是一個依賴圖,或是一個有向圖,或者是一個概括了任務之間依賴關系的鄰接矩陣。
  • 第3層是並行化層,在這一層將試著釋放算法中潛在的並行性。這一層接收了第4層對算法的描述並且給出了基於軟件實現的線程時間調度和處理器分配。另一種選擇是在這一層進行基於超大規模集成電路的硬件實現的任務調度和處理器分配。
  • 第2層是代碼層,在本層中並行算法用高級語言表示為代碼。使用何種語言取決於目標並行計算在何種平臺執行。
  • 第1層的目標是算法的實現,或是在並行計算機平臺的應用。實現的途徑可以是在並行計算平臺上使用多線程,也可以是在特定用途集成電路(ASIC)上或者現場可編程門陣列(FPGA)上使用特定的應用並行處理系統。

算法與並行計算常規