串流處理
外觀
![本頁使用了標題或全文手工轉換](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | 此條目可參照英語維基百科相應條目來擴充。 |
串流處理(英語:Stream processing)是一種計算機編程範式,相當於數據流程編程,事件流處理,和反應式編程[1] ,其允許一些應用更容易地利用了有限形式的並行處理。這些應用程式可以使用多個計算單元,例如圖形處理上的浮點運算器或現場可程式化門陣列(FPGAs)[2],而無需明確管理這些單元之間的分配,同步或通訊。
串流處理範例通過限制可執行的並行計算來簡化並行軟體和硬體。給定一個數據序列(串流處理),一系列操作(核心函式)被應用到串流中的每個元素。例如:直播軟體。核心函式通常使用流水線(計算),並且嘗試優化本地片上主記憶體重用,以便最大限度地減少帶寬損失,並通過外部儲存器互動。典型的是統一串串流傳輸,其中一個核心函式應用於流中的所有元素。由於核心和流抽象展現了數據依賴性,編譯器工具可以完全自動化和優化片上管理任務。串流處理硬體可以使用記分板例如,當依賴關係變得已知時啟動直接記憶體存取(DMA)。手動DMA管理的取消減少了軟體的複雜性,並且相關的硬體快取I / O消除,減少了專用計算單元(例如算術邏輯單元)必須涉及服務的數據區域擴展。
在20世紀80年代,串流處理在數據流編程中得到了探索。一個例子是語言SISAL(單一賦值語言中的流和迭代)。
參考資料
[編輯]
|
|