Programação Paralela com Stream Processors
Programação
paralela
Paralelismo é quando um processador multicore atende a vários processos ao mesmo tempo, reduzindo o tempo de resposta para os processos, e assim, reduzindo consideravelmente o tempo de execução de um programa. É muito útil em programas que precisam processar uma alta quantidade de dados.
Stream Processors
Stream Processors processam uma grande quantidade de dados, nos mais diversos formatos, de forma contínua e ininterrupta em tempo real. Receber dados continuamente e os processar para gerar uma saída demanda, muitas vezes, um alto poder computacional.
Programação paralela e stream processors
Aplicações de Stream Processors (Processamento de stream) são utilizadas em várias áreas e demandam uma alta carga computacional. A paralelização desse tipo de aplicação pode aumentar consideravelmente o desempenho de aplicações de Stream Processors.

Fonte: Tera HPC
Exemplo:
Processadores gráficos (GPUs) precisam processar uma grande quantidade de dados ao mesmo tempo, estabelecendo o conceito de programação paralela. Para exercer essa função essas GPUs contam com um número muito alto de Stream processors, que são os responsáveis pelo processamento de grande quantidade de dados paralelamente pela GPU.
Outro exemplo de aplicação:
Processamento de imagens no YOLO(You only look once) que faz análise de imagens em tempo real.

Fonte: Pjreddie.com
Como visto na figura, diferentes pedaços da imagem são processados para detecção de objetos. Em tempo real cada frame de um vídeo deve ser analisado para detecção de forma ininterrupta de objetos.
Mais exemplos:
Referências
- Techtudo
- DevMedia
- Researchgate
- Pjreddie Darknet: YOLO
- STEIN, M.C. PROGRAMAÇÃO PARALELA PARA GPU EM APLICAÇÕES DE PROCESSAMENTO DE STREAM. Faculdade de Sistemas de Informação da SETREM, 2018. Disponível em: PUC RS.