串流處理:修订间差异

求闻百科,共笔求闻
添加的内容 删除的内容
Cat-a-lot:分类间移动:从Category:編程典範Category:编程范式
(机器人:清理不当的来源、移除无用的模板参数)
 
第1行: 第1行:
{{NoteTA|G1=IT}}
{{NoteTA|G1=IT}}


'''串流處理'''(Stream processing)是一種[[程序设计|計算機編程]]範式,相當於[[數據流程編程]],[[事件流處理]],和[[响应式编程|反應式編程]]<ref>{{Cite web |url=http://www.jonathanbeard.io/blog/2015/09/19/streaming-and-dataflow.html |title=串流處理簡介 |accessdate=2018-06-20 |||}}</ref>,其允許一些應用更容易地利用了有限形式的[[并行计算|並行處理]]。這些應用程序可以使用多個計算單元,例如[[圖形處理器|圖形處理]]上的[[浮点运算器|浮點運算器]]或[[现场可编程逻辑门阵列|現場可編程門陣列]](FPGAs)<ref>{{Cite web |url=http://icims.csl.illinois.edu/~dchen/research/SASP09_FCUDA.pdf |title=FCUDA:實現將CUDA內核高效彙編到FPGAs |access-date=2018-06-20 |||}}</ref>,而無需明確管理這些單元之間的分配,同步或通信。
'''串流處理'''(Stream processing)是一種[[程序设计|計算機編程]]範式,相當於[[數據流程編程]],[[事件流處理]],和[[响应式编程|反應式編程]]<ref>{{Cite web |url=http://www.jonathanbeard.io/blog/2015/09/19/streaming-and-dataflow.html |title=串流處理簡介 |accessdate=2018-06-20 }}</ref>,其允許一些應用更容易地利用了有限形式的[[并行计算|並行處理]]。這些應用程序可以使用多個計算單元,例如[[圖形處理器|圖形處理]]上的[[浮点运算器|浮點運算器]]或[[现场可编程逻辑门阵列|現場可編程門陣列]](FPGAs)<ref>{{Cite web |url=http://icims.csl.illinois.edu/~dchen/research/SASP09_FCUDA.pdf |title=FCUDA:實現將CUDA內核高效彙編到FPGAs |access-date=2018-06-20 }}</ref>,而無需明確管理這些單元之間的分配,同步或通信。


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