串流處理

串流處理（）是一種計算機編程範式，相當於數據流程編程，，和反應式編程 ，其允許一些應用更容易地利用了有限形式的並行處理。這些應用程序可以使用多個計算單元，例如圖形處理上的浮點運算器或現場可編程門陣列（FPGAs），而無需明確管理這些單元之間的分配，同步或通信。

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

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

参考资料 

電腦架構
編程典範
计算模型
GPGPU
串流處理