Exercícios acadêmicos para a prática de conceitos do Stream processing.
Stream Processing (ou Processamento de Fluxo em tradução livre), consistem em um modelo de processamento semelhante a SIMD (single instruction, multiple data), possibilitando que aplicações possam explorar limitadas formas de processamento paralelo. Essas aplicações podem usar múltiplas unidades de processamento, como FPU's (unidade de ponto flutuante) de uma GPU ou Field-programmable gate array, sem gerir explicitamente a alocação, sincronização ou comunicação entre as unidades.
O stream processing simplifica softwares e hardwares paralelos restringindo a computação paralela que pode ser executada. Dado um conjunto de dados (um fluxo ou stream), uma série de operações (funções do kernel) é aplicada a cada elemento na corrente, ou seja, um streaming uniforme, onde uma operação é aplicada a todos os elementos do fluxo. Hardware de stream processing podem usar scoreboarding, por exemplo, para lançar DMA em tempo de execução, quando dependências tornam-se conhecidas. A eliminação de gestão manual do DMA reduz a complexidade do software.