Saltar para o conteúdo

Stream processing

Origem: Wikipédia, a enciclopédia livre.

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.[1]

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.[1]

Aplicações

Processamento de fluxo é essencialmente um compromisso, impulsionado por um modelo centrado em dados, que funciona muito bem para DSP ou aplicações tradicionais da GPU (como imagem, vídeo e processamento de sinal digital), mas nem tanto para o processamento de uso geral com acesso a dados mais randomizado (como bancos de dados). Ao sacrificar alguma flexibilidade no modelo, as implicações permitem a execução mais fácil, mais rápida e eficiente. Dependendo do contexto, o design do processador pode ser ajustado para o máximo de eficiência ou de um trade-off para a flexibilidade.[2]

Considerações Importantes

Qualquer documentação acerca de Processadores de Fluxo é muito escassa. Apenas algumas instituições especializadas parecem ter entendido o poder implícito do modelo. A Universidade de Stanford tem sido historicamente envolvida em uma variedade de projetos nesta área, começando com a implantação da linguagem Stanford Shading e lançando um processador de fluxo flexível stand-alone chamado Imagine. Ambos os projetos revelou que o paradigma tem um grande potencial, tanto que um projeto de maior escala foi iniciado. Com o nome de Merrimac, um supercomputador baseado em Stream, já está sendo pesquisado. A empresa AT&T também reconheceu a ampla adoção de processadores aprimorados para Streams como GPUs evoluíram rapidamente em termos de velocidade e funcionalidade.

Referencias