(en.wikipedia.org) Stream processing - Wikipedia

ROAM_REFS: https://en.wikipedia.org/wiki/Stream_processing

In computer science, stream processing (also known as event stream processing, data stream processing, or distributed stream processing) is a programming paradigm which views streams, or sequences of events in time, as the central input and output objects of computation. Stream processing encompasses dataflow programming, reactive programming, and distributed data processing. Stream processing systems aim to expose parallel processing for data streams and rely on streaming algorithms for efficient implementation. The software stack for these systems includes components such as programming models and query languages, for expressing computation; stream management systems, for distribution and scheduling; and hardware components for acceleration including floating-point units, graphics processing units, and field-programmable gate arrays.

The stream processing paradigm simplifies parallel software and hardware by restricting the parallel computation that can be performed. Given a sequence of data (a stream), a series of operations (kernel functions) is applied to each element in the stream. Kernel functions are usually pipelined, and optimal local on-chip memory reuse is attempted, in order to minimize the loss in bandwidth, associated with external memory interaction. Uniform streaming, where one kernel function is applied to all elements in the stream, is typical. Since the kernel and stream abstractions expose data dependencies, compiler tools can fully automate and optimize on-chip management tasks. Stream processing hardware can use scoreboarding, for example, to initiate a direct memory access (DMA) when dependencies become known. The elimination of manual DMA management reduces software complexity, and an associated elimination for hardware cached I/O, reduces the data area expanse that has to be involved with service by specialized computational units such as arithmetic logic units.

During the 1980s stream processing was explored within dataflow programming. An example is the language SISAL (Streams and Iteration in a Single Assignment Language).

Local Graph

org-roam 6ef1ac14-28b3-4eb3-b97d-eeb96177be43 (en.wikipedia.org) Stream processing ... //en.wikipedia.org/wiki/Computer_science https://en.wikipedia.org/wiki/Computer_science 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Computer_science //en.wikipedia.org/wiki/Programming_paradigm https://en.wikipedia.org/wiki/Programming_paradigm 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Programming_paradigm //en.wikipedia.org/wiki/Stream_(computing) https://en.wikipedia.org/wiki/Stream_(computing) 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Stream_(computing) //en.wikipedia.org/wiki/Computation https://en.wikipedia.org/wiki/Computation 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Computation //en.wikipedia.org/wiki/Dataflow_programming https://en.wikipedia.org/wiki/Dataflow_programming 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Dataflow_programming //en.wikipedia.org/wiki/Reactive_programming https://en.wikipedia.org/wiki/Reactive_programming 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Reactive_programming //en.wikipedia.org/wiki/Distributed_computing https://en.wikipedia.org/wiki/Distributed_computing 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Distributed_computing //en.wikipedia.org/wiki/Data_processing https://en.wikipedia.org/wiki/Data_processing 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Data_processing //en.wikipedia.org/wiki/Parallel_computing https://en.wikipedia.org/wiki/Parallel_computing 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Parallel_computing //en.wikipedia.org/wiki/Streaming_algorithm https://en.wikipedia.org/wiki/Streaming_algorithm 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Streaming_algorithm //en.wikipedia.org/wiki/Solution_stack https://en.wikipedia.org/wiki/Solution_stack 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Solution_stack //en.wikipedia.org/wiki/Programming_model https://en.wikipedia.org/wiki/Programming_model 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Programming_model //en.wikipedia.org/wiki/Query_language https://en.wikipedia.org/wiki/Query_language 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Query_language //en.wikipedia.org/wiki/Data_stream_management_system https://en.wikipedia.org/wiki/Data_stream_management_system 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Data_stream_management_system //en.wikipedia.org/wiki/Scheduling_(computing) https://en.wikipedia.org/wiki/Scheduling_(computing) 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Scheduling_(computing) //en.wikipedia.org/wiki/Hardware_acceleration https://en.wikipedia.org/wiki/Hardware_acceleration 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Hardware_acceleration //en.wikipedia.org/wiki/Floating-point_unit https://en.wikipedia.org/wiki/Floating-point_unit 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Floating-point_unit //en.wikipedia.org/wiki/Graphics_processing_unit https://en.wikipedia.org/wiki/Graphics_processing_unit 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Graphics_processing_unit //en.wikipedia.org/wiki/Field-programmable_gate_array https://en.wikipedia.org/wiki/Field-programmable_gate_array 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Field-programmable_gate_array //en.wikipedia.org/wiki/Compute_kernel https://en.wikipedia.org/wiki/Compute_kernel 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Compute_kernel //en.wikipedia.org/wiki/Pipeline_(computing) https://en.wikipedia.org/wiki/Pipeline_(computing) 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Pipeline_(computing) //en.wikipedia.org/wiki/Scoreboarding https://en.wikipedia.org/wiki/Scoreboarding 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Scoreboarding //en.wikipedia.org/wiki/Direct_memory_access https://en.wikipedia.org/wiki/Direct_memory_access 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Direct_memory_access //en.wikipedia.org/wiki/Arithmetic_logic_unit https://en.wikipedia.org/wiki/Arithmetic_logic_unit 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/Arithmetic_logic_unit //en.wikipedia.org/wiki/SISAL https://en.wikipedia.org/wiki/SISAL 6ef1ac14-28b3-4eb3-b97d-eeb96177be43->//en.wikipedia.org/wiki/SISAL