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

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

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

參考資料

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.