Exploração do Paralelismo em Aplicações de Processamento de Stream Relevantes para a Indústria Tecnológica

Funding: FAPERGS
Abstract: Grande parte das aplicações do mundo real podem ser caracterizadas como um fluxo contínuo de processamento. São as chamadas aplicações de processamento de stream. Elas estão presentes em diversos segmentos da indústria tecnológica, colaborando para o surgimento de soluções inovadoras que agregam valor aos produtos que têm alto impacto na vida cotidiana das pessoas. De modo geral, as que mais precisam da exploração do paralelismo podem ser categorizadas em: I) aplicações de processamento de imagem, video e áudio que normalmente realizam operações de codificação, reprodução, filtro, captura, etc.; II) aplicações de backup, compressão e deduplicação em dados armazenados e recebidos de diferentes fontes (sensores e aparelhos mobile, monitoramento de pacientes e sistemas, registros de log, etc.); e III) aprendizado de máquina profundo (Deep Learning) que envolve o reconhecimento de padrões e informações em vídeos, áudio, imagens e em outras bases de dados. Dentro deste contexto, algumas aplicações requerem uma latência baixa e uma alta vazão. Na maior parte das aplicações de stream, estes requisitos só podem ser atendidos através da exploração do paralelismo. Diante disso, o projeto tem como objetivo a exploração do paralelismo em um conjunto de aplicações de processamento de stream do mundo real usando a linguagem específica de domínio SPar. Ela foi criada pela equipe do grupo de pesquisa GMAP da PUCRS com a finalidade de simplificar a exploração do paralelismo em aplicações de stream. Além de contribuir para melhorar o desempenho das aplicações de stream, este projeto ajudará a validar a SPar em um ambiente real.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Integrante
Renato Barreto Hoffmann Filho

Renato Hoffmann

Integrante

Uma DSL para Aplicações MapReduce em Sistemas Multi-Core Baseada em Anotações

Funding: CNPq
Abstract: A programação paralela tem sido um grande desafio para muitos desenvolvedores de aplicação. Uma forma de explorar o paralelismo de dados é usar o padrão MapReduce, do qual surge o termo aplicações MapReduce. A popularidade deste padrão cresceu com o aumento massivo de dados e ele tem sido amplamente usado, especialmente em ambientes distribuídos nesta última década. Mais recentemente, a utilização do MapReduce também começou a ser explorada em ambientes de memória compartilhada (multi-core). O maior desafio neste cenário é o suporte de abstrações de alto nível para este tipo de aplicação. Enquanto que as soluções do estado da arte atual abstraem detalhes para o programador de sistemas, os desenvolvedores de aplicação possuem dificuldade em lidar com detalhes atrelados à programação paralela. Podemos destacar a implementação do próprio padrão MapReduce, do balanceamento de carga e das customizações orientadas a otimização do desempenho para arquitetura alvo. Outro problema é a utilização de diretivas de compilação ou extensões de linguagem que não são parte da linguagem hospedeira padrão, pois possuem uma sintaxe própria e pouco familiar ao que o desenvolvedor de aplicação está acostumado a trabalhar. O objetivo deste projeto é propor uma abordagem de abstração diferente e especializada. Para isso, a proposta é a criação de uma linguagem específica de domínio interna baseada em anotações do padrão C++17, apoiando desenvolvedores de aplicações MapReduce com abstrações de mais alto nível e familiares ao seu ambiente de desenvolvimento.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Integrante
Júnior Henrique Löff

Junior Loff

Integrante

Avaliação de uma Linguagem Específica de Domínio para Paralelismo de Stream

Funding: FAPERGS
Abstract: A programação paralela tem sido um grande desafio para muitos desenvolvedores de aplicação. Uma forma de explorar o paralelismo de dados é usar o padrão MapReduce, do qual surge o termo aplicações MapReduce. A popularidade deste padrão cresceu com o aumento massivo de dados e ele tem sido amplamente usado, especialmente em ambientes distribuídos nesta última década. Mais recentemente, a utilização do MapReduce também começou a ser explorada em ambientes de memória compartilhada (multi-core). O maior desafio neste cenário é o suporte de abstrações de alto nível para este tipo de aplicação. Enquanto que as soluções do estado da arte atual abstraem detalhes para o programador de sistemas, os desenvolvedores de aplicação possuem dificuldade em lidar com detalhes atrelados à programação paralela. Podemos destacar a implementação do próprio padrão MapReduce, do balanceamento de carga e das customizações orientadas a otimização do desempenho para arquitetura alvo. Outro problema é a utilização de diretivas de compilação ou extensões de linguagem que não são parte da linguagem hospedeira padrão, pois possuem uma sintaxe própria e pouco familiar ao que o desenvolvedor de aplicação está acostumado a trabalhar. O objetivo deste projeto é propor uma abordagem de abstração diferente e especializada. Para isso, a proposta é a criação de uma linguagem específica de domínio interna baseada em anotações do padrão C++17, apoiando desenvolvedores de aplicações MapReduce com abstrações de mais alto nível e familiares ao seu ambiente de desenvolvimento.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Integrante
Renato Barreto Hoffmann Filho

Renato Hoffmann

Integrante

Um Compilador para Geração Automática de Código Paralelo em Aplicações MapReduce

Funding: FAPERGS
Abstract: A programação paralela tem sido um grande desafio para muitos desenvolvedores de aplicação. Uma forma de explorar o paralelismo de dados é usar o padrão MapReduce, do qual surge o termo aplicações MapReduce. A popularidade deste padrão cresceu com o aumento massivo de dados e ele tem sido amplamente usado, especialmente em ambientes distribuídos nesta última década. Mais recentemente, a utilização do MapReduce também começou a ser explorada em ambientes de memória compartilhada (multi-core). O maior desafio neste cenário é o suporte de abstrações de alto nível para este tipo de aplicação. Enquanto que as soluções do estado da arte atual abstraem detalhes para o programador de sistemas, os desenvolvedores de aplicação possuem dificuldade em lidar com detalhes atrelados à programação paralela. Podemos destacar a implementação do próprio padrão MapReduce, do balanceamento de carga e das customizações orientadas a otimização do desempenho para arquitetura alvo. Outro problema é a utilização de diretivas de compilação ou extensões de linguagem que não são parte da linguagem hospedeira padrão, pois possuem uma sintaxe própria e pouco familiar ao que o desenvolvedor de aplicação está acostumado a trabalhar. O objetivo deste projeto é propor uma abordagem de abstração diferente e especializada. Para isso, a proposta é a criação de uma linguagem específica de domínio interna baseada em anotações do padrão C++17, apoiando desenvolvedores de aplicações MapReduce com abstrações de mais alto nível e familiares ao seu ambiente de desenvolvimento.
Project Team
Dalvan Griebler

Dalvan Griebler

Coordenador

Luiz G. Fernandes

Integrante
Júnior Henrique Löff

Junior Loff

Integrante

Elasticidade Automática em Aplicações MapReduce para Nuvens Computacionais

Funding:
Abstract: A programação paralela tem sido um grande desafio para muitos desenvolvedores de aplicação. Uma forma de explorar o paralelismo de dados é usar o padrão MapReduce, do qual surge o termo aplicações MapReduce. A popularidade deste padrão cresceu com o aumento massivo de dados e ele tem sido amplamente usado, especialmente em ambientes distribuídos nesta última década. Mais recentemente, a utilização do MapReduce também começou a ser explorada em ambientes de memória compartilhada (multi-core). O maior desafio neste cenário é o suporte de abstrações de alto nível para este tipo de aplicação. Enquanto que as soluções do estado da arte atual abstraem detalhes para o programador de sistemas, os desenvolvedores de aplicação possuem dificuldade em lidar com detalhes atrelados à programação paralela. Podemos destacar a implementação do próprio padrão MapReduce, do balanceamento de carga e das customizações orientadas a otimização do desempenho para arquitetura alvo. Outro problema é a utilização de diretivas de compilação ou extensões de linguagem que não são parte da linguagem hospedeira padrão, pois possuem uma sintaxe própria e pouco familiar ao que o desenvolvedor de aplicação está acostumado a trabalhar. O objetivo deste projeto é propor uma abordagem de abstração diferente e especializada. Para isso, a proposta é a criação de uma linguagem específica de domínio interna baseada em anotações do padrão C++17, apoiando desenvolvedores de aplicações MapReduce com abstrações de mais alto nível e familiares ao seu ambiente de desenvolvimento.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Integrante

Lucas Piatnicki

Integrante

Enrique Dutra

Integrante

Avaliação Comparativa do Desempenho de uma Interface de Programação Paralela Orientada a Padrões

Funding:
Abstract: A programação paralela tem sido um grande desafio para muitos desenvolvedores de aplicação. Uma forma de explorar o paralelismo de dados é usar o padrão MapReduce, do qual surge o termo aplicações MapReduce. A popularidade deste padrão cresceu com o aumento massivo de dados e ele tem sido amplamente usado, especialmente em ambientes distribuídos nesta última década. Mais recentemente, a utilização do MapReduce também começou a ser explorada em ambientes de memória compartilhada (multi-core). O maior desafio neste cenário é o suporte de abstrações de alto nível para este tipo de aplicação. Enquanto que as soluções do estado da arte atual abstraem detalhes para o programador de sistemas, os desenvolvedores de aplicação possuem dificuldade em lidar com detalhes atrelados à programação paralela. Podemos destacar a implementação do próprio padrão MapReduce, do balanceamento de carga e das customizações orientadas a otimização do desempenho para arquitetura alvo. Outro problema é a utilização de diretivas de compilação ou extensões de linguagem que não são parte da linguagem hospedeira padrão, pois possuem uma sintaxe própria e pouco familiar ao que o desenvolvedor de aplicação está acostumado a trabalhar. O objetivo deste projeto é propor uma abordagem de abstração diferente e especializada. Para isso, a proposta é a criação de uma linguagem específica de domínio interna baseada em anotações do padrão C++17, apoiando desenvolvedores de aplicações MapReduce com abstrações de mais alto nível e familiares ao seu ambiente de desenvolvimento.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Integrante

Vinicius Pereira

Integrante
Gabriell Alves de Araujo

Gabriell Alves

Integrante

Programação Paralela e Alto Desempenho Voltados para Ambientes de Computação em Nuvem

Funding:
Abstract: A programação paralela tem sido um grande desafio para muitos desenvolvedores de aplicação. Uma forma de explorar o paralelismo de dados é usar o padrão MapReduce, do qual surge o termo aplicações MapReduce. A popularidade deste padrão cresceu com o aumento massivo de dados e ele tem sido amplamente usado, especialmente em ambientes distribuídos nesta última década. Mais recentemente, a utilização do MapReduce também começou a ser explorada em ambientes de memória compartilhada (multi-core). O maior desafio neste cenário é o suporte de abstrações de alto nível para este tipo de aplicação. Enquanto que as soluções do estado da arte atual abstraem detalhes para o programador de sistemas, os desenvolvedores de aplicação possuem dificuldade em lidar com detalhes atrelados à programação paralela. Podemos destacar a implementação do próprio padrão MapReduce, do balanceamento de carga e das customizações orientadas a otimização do desempenho para arquitetura alvo. Outro problema é a utilização de diretivas de compilação ou extensões de linguagem que não são parte da linguagem hospedeira padrão, pois possuem uma sintaxe própria e pouco familiar ao que o desenvolvedor de aplicação está acostumado a trabalhar. O objetivo deste projeto é propor uma abordagem de abstração diferente e especializada. Para isso, a proposta é a criação de uma linguagem específica de domínio interna baseada em anotações do padrão C++17, apoiando desenvolvedores de aplicações MapReduce com abstrações de mais alto nível e familiares ao seu ambiente de desenvolvimento.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Integrante

Natasha Flores

Integrante

Lucas Piatnicki

Integrante