串流處理

串流處理(英語:Stream processing)是一種計算機編程範式,相當於數據流程編程事件流處理英語Event stream processing,和反應式編程[1] ,其允許一些應用更容易地利用了有限形式的並行處理。這些應用程式可以使用多個計算單元,例如圖形處理上的浮點運算器現場可程式化門陣列(FPGAs)[2],而無需明確管理這些單元之間的分配,同步或通訊。

串流處理範例通過限制可執行的並行計算來簡化並行軟體和硬體。給定一個數據序列(串流處理),一系列操作(核心函式)被應用到串流中的每個元素。例如:直播軟體。核心函式通常使用流水線(計算),並且嘗試優化本地片上主記憶體重用,以便最大限度地減少帶寬損失,並通過外部儲存器互動。典型的是統一串串流傳輸,其中一個核心函式應用於流中的所有元素。由於核心和流抽象展現了數據依賴性,編譯器工具可以完全自動化和優化片上管理任務。串流處理硬體可以使用記分板例如,當依賴關係變得已知時啟動直接記憶體存取(DMA)。手動DMA管理的取消減少了軟體的複雜性,並且相關的硬體快取I / O消除,減少了專用計算單元(例如算術邏輯單元)必須涉及服務的數據區域擴展。

在20世紀80年代,串流處理在數據流編程中得到了探索。一個例子是語言SISAL(單一賦值語言中的流和迭代)。

參考資料

  1. ^ 串流處理簡介. [2018-06-20]. (原始內容存檔於2017-11-09). 
  2. ^ FCUDA:實現將CUDA內核高效彙編到FPGAs (PDF). [2018-06-20]. (原始內容 (PDF)存檔於2014-06-04).