Projects

SParCloud: Stream Parallelism in the Cloud

Project Coordinator

Time: 2019 - Present
No. 437693/2018-0

Abstract: The class of stream processing applications represents different important processing domains (e.g., image, video, audio, and unstructured data produced by sensors). The project challenge is to enable these applications to run in cloud computing environments rather than running in traditional high-performance processing centers. The cloud computing model enables greater control over the resources and the user can pay-per-use. The elasticity (increase and decrease the use of computational resources) of these environments allows users to save money when stream processing applications support the proper on-demand resource provisioning. This scenario is quite interesting and appropriate to be investigated in these applications since the intensity of the data flow varies and the computational cost of the operation is often irregular for each item/task being processed. Our goal in this project is to investigate different ways of exploiting parallelism and automatic elasticity. In addition, we intend to provide efficient stream parallelism support for a set of applications from this domain in the cloud.

AgroComputação

Project Coordinator

Time: 2019 - Present

Abstract: Existe uma crescente preocupação para o aumento da produção de alimentos no mundo. Um relatório da Embrapa aponta que a produtividade precisa aumentar em pelo menos 35% para suprir a demanda mundial até 2030. Por isso, precisamos de soluções que ajudem a melhorar a produtividade nas áreas de terra disponíveis para a semeadura de diferentes culturas. Esse projeto busca contribuir com a produção de milho através do emprego da tecnologia da informação. O problema em questão é como acelerar a medição da densidade de plantas de milho para estimar o rendimento de grãos de uma plantação. No cálculo de estimativa de produção, a medição da densidade de planta é uma das tarefas mais demoradas e tem grande impacto no resultado final. A motivação é auxiliar produtores e agrônomos no cálculo de estimativa de produção para tomar decisões mais rápidas e assertivas em diferentes estágios fenológicos do milho e, consequentemente, aumentar a produção e evitar desperdícios. A solução proposta é trabalhar com análise de imagens capturadas a partir de Veículos Aéreos não Tripulados (VANT), usando técnicas/modelos de inteligência artificial para medir a densidade das plantas de milho. O resultado esperado é eliminar a necessidade de uma pessoa realizar a medição da densidade, que pode ser errônea, imprecisa e muitas vezes impraticável em detrimento da extensão da área plantada.

Explorando Paralelismo de Stream em Aplicações de Internet das Coisas

Project Coordinator

Time: 2019 - Present

Abstract: Este projeto aborda a exploração do paralelismo de stream em aplicações de Internet da Coisas (Internet of Things - IoT). Existe uma grande quantidade de aplicações de processamento de stream emergindo no contexto de IoT que demandam de processamento paralelo para atender uma Qualidade de Serviço (Quality of Service - QoS) adequada. O objetivo é usar a linguagem de domínio específico criada pelo proponente em sua Tese de Doutorado, que se chama SPar. Além disso, usar outras interfaces de programação paralela do estado-da-arte para permitir uma análise comparativa de desempenho e usabilidade em aplicações de IoT. Os resultados esperados são um conjunto de aplicações de IoT paralelizadas e uma análise comparativa do desempenho e usabilidade.

ParaElastic: Provendo e Abstraindo o Paralelismo e a Elasticidade Automática em Aplicações de Streaming

Project Coordinator

Time: 2018 - 2020
No. 17/2551-0000871-5

Abstract: Aplicações de streaming estão cada vez mais presentes em nossos sistemas atendendo diversos tipos de usuários. Com os recentes avanços tecnológicos, elas vêm sendo exploradas e desafiadas a resolverem problemas importantes para a humanidade em áreas como a medicina (análise de imagens médicas para descoberta de doenças), transporte (carro autônomo e monitoramento de tráfego), agricultura (monitoramento de pragas e otimização no uso de pesticidas) e segurança (para monitoramento e detecção de indivíduos). Um dos desafios nestas aplicações é a exploração do paralelismo para atender uma determinada qualidade de serviço associada a vazão e a latência. A característica básica de uma aplicação de stream é ter um conjunto contínuo de itens/instruções/tarefas (em sua maioria infinito) que fluem naturalmente através de uma sequência de operações, computando sobre cada elemento do stream. Sem este fim determinado, os dados não podem ser simplesmente particionados e mapeados para unidades de processamento paralelas. Além disso, também existe uma dependência entre as operações, onde cada operação consome uma entrada de dados produzida pela operação anterior e produz na saída o resultado do processamento para a próxima operação, assemelhando-se a uma linha de produção. Outro desafio é permitir que estas aplicações possam executar em ambientes de nuvens computacionais ao invés de executar nos tradicionais centros de processamento de alto desempenho. O modelo de computação em nuvem permite um controle maior sobre os recursos e o usuário pode pagar somente pelo que usa. Ao mesmo tempo, é possível ter acesso instantaneamente a um grande poder computacional sem mesmo ter que adquirir o hardware. A elasticidade (aumentar e diminuir o uso de recursos computacionais) destes ambientes possibilita a diminuição dos custos quando as aplicações de streaming são preparadas para fazer a utilização adequada e sob demanda dos recursos. Este cenário é bem favorável e apropriado para ser explorado nestas aplicações, uma vez que a intensidade do fluxo contínuo de dados varia e o custo computacional da operação muitas vezes é irregular para cada item/tarefa a ser processada. Ciente destes desafios, o projeto tem como objetivo investigar diferentes formas de explorar o paralelismo e a elasticidade automática, bem como fornecer o suporte eficiente a um conjunto de aplicações de streaming aliando estas duas propriedades importantes.

Desenvolvimento de Sistemas Inteligentes e Modernos em Plataformas de Computação em Nuvem Pública e Privada

Project Coordinator

Time: 2018 - 2019

Abstract: Plataformas de computação em nuvem permitem que os desenvolvedores usem de forma eficiente e abstrata os recursos computacionais da nuvem e ao mesmo tempo desenvolvam aplicações inteligentes e modernas. Atualmente, existem diversas plataformas disponíveis em ambientes de nuvem pública e privada. É um desafio para as empresas e programadores escolherem de forma assertiva a plataforma apropriada para o desenvolvimento do seu sistema. Nesta nova era da tecnologia da informação, a computação em nuvem permite com que os recursos computacionais e sistemas possam ser facilmente acessados através da internet. Isso é devido a evolução das plataformas que permitem ao desenvolvedor criar aplicações mais robustas e sofisticadas. O desafio deste projeto é classificar e caracterizar estas plataformas existentes para simplificar a escolha no projeto de software. Além disso, permitir a descoberta de lacunas para possibilitar pesquisas futuras na área deste projeto, melhorando ainda mais o processo de desenvolvimento de sistemas inteligentes e modernos na nuvem.

HiPerfCloud: Um Projeto de Alto Desempenho para Computação em Nuvem

Project Coordinator

Time: 2014 - Present

Abstract: A computação em nuvem vem se tornando cada vez mais uma alternativa na utilização de grandes infraestruturas de processamento (IaaS), softwares (SaaS) e plataformas de desenvolvimento (PaaS). O modelo IaaS pode ser encarado pelo usuário como uma forma de diminuição de custos em infraestrutura, pois as ferramentas de administração para este fim, trabalham diretamente com tecnologias de virtualização. Assim, permitindo que servidores sejam criados e os recursos provisionados de forma simples e estruturada. A demanda existente de ferramentas de administração de nuvens nos coloca em uma situação em que é essencial analisar e comparar o desempenho e estimar qual delas apresenta a melhor utilização dos recursos computacionais. Este projeto tem como objetivo abordar questões de desempenho em diversos tipos de aplicações sobre um ambiente de computação em nuvem privado, implantando com diferentes ferramentas de administração do modelo IaaS. Por exemplo, aplicações de caráter empresarial/corporativo (serviços web) e científico (computação de alto desempenho). O desafio deste projeto é encontrar a melhor combinação de virtualizador e ferramenta de administração de nuvem para determinados tipos de aplicações. Para isso, os resultados esperados são: (I) avaliação e comparação das características das aplicações e da infraestrutura da nuvem, proporcionando uma visão geral e possíveis tendências do desempenho; (II) identificar padrões comportamentais das ferramentas e relacionar com as características das aplicações para simplificar as escolhas; (III) criar benchmarks customizáveis ao ambiente de uma empresa para prever o comportamento na nuvem; (IV) identificar possíveis gargalos de desempenho e propor soluções eficientes; (V) proposta de novas pesquisas para atender as necessidades futuras do ambiente corporativo.