Projects

Merlin: FinancialForce GenAI Module

Project Coordinator

Period: 2025 - Present
Funding: DELL Technologies

Abstract: O objetivo desse projeto é melhorar o assistente virtual Merlin para ser capaz de lidar com grandes quantidades de informação relacionadas a projetos em andamento e reportar dados conforme solicitado em tempo hábil, sem a necessidade de recorrer a outras ferramentas.

Biblioteca de Execução Auto-adaptativa e Resiliente de Aplicações Paralelas

Project Coordinator

Period: 2025 - Present
Funding: Petrobras

Abstract: A execução de programas de alta complexidade computacional envolve particionar as tarefas em partes menores que são executadas simultaneamente em diferentes nodos de um cluster. Nesse contexto, o principal padrão de programação é o MPI (Message Passing Interface), que possui diversas sub-rotinas para troca de mensagens, criação de processos, sincronização, entre outros. Para permitir a melhor utilização dos recursos computacionais de um cluster, uma funcionalidade extremamente importante é a adição ou remoção dinâmica de processos em tempo de execução, seja por intermédio de um mantenedor ou idealmente por algoritmos auto-adaptativos que respondem às mudanças no sistema. Isso permite utilizar os recursos do cluster de forma mais eficiente, uma vez que os recursos computacionais poderiam ser divididos, de acordo com uma política de prioridade, entre qualquer número de programas independentes de forma a maximizar o uso da infraestrutura e também minimizar o tempo de execução das tarefas. Apesar de existir suporte parcial para adição ou remoção dinâmica de processos nas diferentes implementações MPI (p.e., OpenMPI, Intel MPI e HPE-MPI), essa é uma tarefa de desenvolvimento complexa e frequentemente resulta em uma significativa degradação de desempenho. Na literatura, não existe consenso sobre uma solução adequada visto que diferentes aplicações ou situações trazem diferentes implicações e resultados, o que implica na necessidade de um método mais abrangente que considere múltiplos fatores, incluindo características das aplicações, carga computacional, e o cluster. Além da dificuldade de implementação, outro desafio é a tomada de decisão sobre a adição ou remoção de processos. Supondo que a necessidade de alterar dinamicamente o número de processos já é conhecida, ainda é necessário decidir quando efetuá-la, garantir a integridade dos dados nos processos em terminação, redistribuir tarefas alocadas aos processos terminados ou atribuí-la para os novos processos. Similarmente, a resiliência também é uma característica desejada, que necessita que os processos envolvidos se adaptem às mudanças do sistema e mantendo a integridade da execução. Um paradigma muito comum na modelagem de aplicações paralelas MPI é o bag-of-tasks, onde um processo coordenador do sistema distribui tarefas para execução entre um grupo de processos trabalhadores. Similarmente, a decomposição de domínio particiona uma grande tarefa em tarefas menores que são então executadas em paralelo por um grupo de processos. Esses padrões são capazes de modelar um grande número de aplicações paralelas. Sabe-se que as novas implementações incorrem na necessidade de refatoração de parte dos programas existentes. Torna-se necessário adicionar grandes porções de lógica de controle, além de uma série de novas rotinas MPI para a efetivação da adição ou remoção de processos. Uma forma de abordar essa dificuldade de implementação é através da programação paralela estruturada. Essa abordagem pode utilizar metaprogramação para representar padrões recorrentes de forma conveniente e eficiente. O usuário necessita apenas encaixar sua aplicação na lógica do template de uma biblioteca de programação. Uma vez que encaixado no template, o programa sequencial pode executar de forma paralela sem a necessidade de se preocupar com os detalhes de implementação como criação, sincronização, particionamento e escalonamento. Um template para o modelo de programação bag-of-tasks, com suporte à decomposição de domínio, vai aumentar a produtividade e facilidade na implementação das aplicações existentes no setor de exploração de petróleo e gás natural, especialmente na adição ou remoção dinâmica de processos.

Um Modelo de Programação Paralela Baseado em Stream para Arquiteturas Heterogêneas CPU com GPUs

Project Coordinator

Period: 2025 - Present
No. 24/2551-0001400-4
Funding: Fundação de Amparo à Pesquisa do Estado do Rio Grande do Sul (FAPERGS)
Call: Programa Pesquisador Gaúcho (PqG)

Abstract: No mundo atual impulsionado por dados, as aplicações de processamento de stream desempenham um papel vital na gestão do fluxo contínuo stream de dados gerados por diversas fontes, como interações em mídias sociais, transações online e sensores. No entanto, o volume e a velocidade dos dados provenientes dessas fontes impõem desafios significativos para o processamento, exigindo técnicas eficientes de programação paralela para atender às demandas de desempenho e escalabilidade. A programação paralela é crucial para aproveitar efetivamente as capacidades computacionais das arquiteturas de hardware modernas e atender aos requisitos computacionais das aplicações de processamento de stream. No entanto, a programação paralela é notoriamente complexa, demandando proficiência nas áreas de algoritmos, arquiteturas e também paradigmas de programação paralela. No contexto do processamento de stream, a complexidade da programação paralela se intensifica, exigindo mecanismos adicionais como protocolos de comunicação, escalonadores e cópias/transferências de dados. Para enfrentar esses desafios, este projeto está propondo explorar estratégias inéditas para facilitar a expressão do paralelismo em aplicações de stream. O objetivo principal é desenvolver um modelo único de programação paralela direcionado tanto para arquiteturas CPUs quanto para GPUs, facilitando a integração de paralelismo de stream e de dados. Para isso, pretende-se utilizar e estender o compilador e linguagem SPar, que se trata de uma Linguagem Específica de Domínio (DSL) embarcada em C++. Neste sentido, será possível fornecer a primeira interface de programação paralela que não exige modificação no código fonte para explorar o paralelismo em CPU e GPU. Essa pesquisa pode aumentar a produtividade no desenvolvimento de software sem a necessidade de otimizações específicas para arquiteturas paralelas heterogêneas CPU com GPUs.

Iniciativa de Saúde Cerebral de Porto Alegre (ISCPA)

Researcher

Period: 2024 - Present
No. 408120/2023-1
Funding: Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Call: CNPq Universal: CNPq/MCTI Nº 10/2023 – Faixa A – Grupos Emergentes

Abstract: A Iniciativa de Saúde Cerebral de Porto Alegre (ISCPA) é um estudo longitudinal que busca identificar fatores determinantes da saúde cerebral. Seus principais objetivos são: (i) analisar marcadores de estilo de vida, cognitivos e ambientais relacionados às funções mentais, desde meia idade até a velhice; (ii) examinar os fatores biológicos que podem prever a manutenção da saúde cerebral; e (iii) avaliar os efeitos de uma intervenção multidimensional no estilo de vida para aprimorar e preservar a saúde cerebral. A análise dos dados será conduzida usando Inteligência Artificial. A coorte da ISCPA terá pelo menos 461 participantes saudáveis, entre 40 e 69 anos, acompanhados por questionários online. Os participantes responderão questionários em sete áreas: saúde geral, exercícios físicos, atividade cognitiva, sono, nutrição, interações sociais e propósito de vida. Esses questionários avaliarão a percepção dos participantes sobre sua saúde e hábitos de vida. Um subgrupo de no mínimo 40 indivíduos passará por avaliações presenciais detalhadas que incluirão exames médicos, psicológicos, avaliação física, ressonância magnética cerebral, eletroencefalografia e coleta de amostras biológicas. Além disso, outro subgrupo de 210 participantes será avaliado antes e depois de uma intervenção multidimensional para otimizar seus hábitos de vida e avaliar seus impactos na função cognitiva e cerebral. O grupo de intervenção receberá supervisão remota via Tecnologias de Informação e Comunicação, apoiado por um profissional de saúde, enquanto o grupo controle receberá educação e recomendações sobre hábitos saudáveis.

Detecção da Doença de Alzheimer através da Fala com IA

Project Coordinator

Period: 2024 - Present
Funding: Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Call: Programa Institucional de Bolsas de Iniciação Científica da PUCRS (PUCRS-BIC)

Abstract: A fala é fundamental na interação social, sendo o principal meio de comunicação verbal. Distúrbios vocais alteram as propriedades da mesma, afetando o tom, intensidade ou fluidez da voz. A análise de gravações acústicas pode fornecer informações valiosas sobre a saúde de um indivíduo. Aplicando a característica do Alzheimer de afetar a fala, é possível criar um modelo de inteligência artificial (IA) para ajudar no diagnóstico da doença. Um modelo de IA como método diagnóstico eficaz e não invasivo, permitiria a identificação de uma população mais ampla, facilitando o início do tratamento antes que sintomas críticos se manifestem. O objetivo deste estudo consiste em desenvolver um modelo de IA capaz de distinguir entre indivíduos saudáveis e pacientes com a doença de Alzheimer. Tal distinção será realizada por meio da análise de características extraídas de gravações de fala espontânea.

Processamento automático de armadilhas para Spodoptera Frugiperda

Project Coordinator

Period: 2024 - Present
Funding: Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS) and Sociedade Educacional Três de Maio (Setrem)

Abstract: A lagarta-do-cartucho (Spodoptera Frugiperda) é uma das principais pragas de culturas de forte expressão no Brasil e no mundo, tal como o milho e a soja. O monitoramento desta praga é feito com armadilhas baseadas em feromônio que contém um chão pegajoso para prender exemplares machos da S. Frugiperda adulta (mariposa). Este projeto detalha a proposta de uma metodologia para automação deste tipo de armadilha utilizando técnicas de visão computacional e aprendizado de máquina em dispositivos embarcados. Ao contrário das soluções encontradas no mercado, o nosso projeto contempla uma abordagem de inteligência na ponta (edge AI) que avalia o estado da armadilha sem necessidade de transmissão de imagens de alta resolução para servidores remotos, assim diminuindo significativamente tanto os custos de produção quanto de operação. Isso será feito através de microcontroladores modernos, sensores de imagem e rádios de baixa frequência. De forma breve, o projeto será dividido em cinco partes. A etapa inicial diz respeito ao desenvolvimento de datasets compostos por fotos de chão de armadilhasobtidas em campo ao longo de diferentes períodos. O objetivo desta etapa é gerar dados que possam ser utilizados para posteriormente treinar e avaliar algoritmos que informam sobre a necessidade de controle de pragas na região. Na segunda etapa serão comparadas múltiplas abordagens de visão computacional e aprendizado de máquina que possam ser facilmente embarcadas;isto é, algoritmos simples que demandam uso de pouca memória e tempo de processamento;com o objetivo de selecionar um candidato para solução embarcada. Já a terceira parte lidará com o desenvolvimento da unidade computacional da armadilha. Mais especificamente, esta etapa lidará com a elaboração de lógicas do funcionamento e integração entre microcontrolador, módulo de câmera, sensores ambientais, processamento de imagem, telemetria e uso de energia na unidade remota. A quarta etapa do projeto contemplará o desenho e fabricação de um protótipo de casco para acomodar os diferentes dispositivos da solução proposta. Por fim, a quinta e última parte contemplará o processo de teste e validação externa da solução, isto é, colocar um protótipo em campo para verificar adequação técnica.

Improving Resilience in Data Pipelines

Project Coordinator

Period: 2023 - 2025
No. 131062/2023-9
Funding: SAP and Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Call: Programa de Mestrado e Doutorado Acadêmico para Inovação MAI/DAI

Abstract: This project investigates a checkpoint-based algorithm for recovering data pipelines implemented in the VFlow system, which is a version of Asynchronous Barrier Snapshotting (ABS). A new rollback recovery protocol called LogIO was conceptually proposed and patented by SAP's internal team. Our goal is to provide a prototype implementation of LogIO, evaluate its performance and identify bottlenecks in various configuration scenarios. The main expected result is a consolidated analysis of LogIO compared to ABS. Another objective concerns the implementation of a fine-grained data lineage solution that takes advantage of the logs kept by the LogIO implementation to guarantee the exact execution (exactly-once) of the pipeline executions. Our goal is to optimize the amount of data retained in the logs to support upcoming data lineage queries and provide support for answering data lineage queries. The main expected results are the performance measurements of fine-grained data lineage queries and the time and space overhead of capturing data lineage in addition to LogIO.

Extração de Conhecimento de Grandes Volumes da Dados

Researcher

Period: 2018 - 2025
Funding: Fundação Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)
Call: Programa Institucional de Internacionalização

Abstract: Trata-se de PROJETO INSTITUCIONAL no âmbito do Edital CAPES/Print. A extração de conhecimento a partir de grandes quantidades de dados tornou-se imprescindível em um mundo onde coleta-se dados relacionados a praticamente qualquer aspecto da vida cotidiana de forma incessante. O conjunto de técnicas empregadas para a extração de conhecimento permite, por exemplo, percepções que extrapolam análises mais superficiais de conjuntos de dados volumosos, complexos e que não tenham sido necessariamente coletados para este fim. Os principais desafios de pesquisa na área tratam: (i) da escalabilidade de algoritmos aptos a processarem grandes volumes de dados; (ii) da confiabilidade de tais sistemas escaláveis; (iii) da habilidade de visualizar estes dados de forma a permitir percepções compreensíveis para humanos; e (iv) do uso de técnicas de computação paralela para o processamento destes dados em tempo real. Este projeto visa impulsionar colaborações internacionais para aprimorar o estado-da-arte para cada um dos desafios acima através de parcerias estratégicas com renomadas universidades que contam com laboratórios de pesquisa reconhecidos nestas temáticas. Na colaboração com a Universidade de Pisa (Itália) pretende-se investigar técnicas de paralelização aliadas a algoritmos de computação adaptativa e autônoma para melhorar a eficiência do processo de análise de grandes volumes de dados em tempo real. A colaboração com a Universidade de Lugano (Suíça) busca desenvolver novas abordagens para melhorar a escalabilidade e a confiabilidade de sistemas distribuídos através do uso de técnicas de State Machine Replication (SMR). Este tópico visa o desenvolvimento de protocolos para dar suporte a sistemas distribuídos na presença de comportamento arbitrário ou malicioso dos processos computacionais. Por fim, com Universidade Carnegie Mellon (EUA) a parceria explora dois temas. O primeiro compreende o desenvolvimento de novas técnicas de visualização para destacar aspectos chave de conjuntos de dados durante qualquer processo de análise, com foco na fase de préprocessamento. O segundo tema visa o desenvolvimento de técnicas inteligência artificial para reconhecimento de metas para o comportamento humano a partir do emprego de grandes volumes de dados do mundo real sem a necessidade de envolvimento de um especialista humano para o propor o modelo de reconhecimento de planos.

Tolerância a Falhas para Paralelismo de Stream de Alto Nível

Project Coordinator

Period: 2024 - 2025
Funding: Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Call: Programa Institucional de Iniciação Científica

Abstract: o principal objetivo deste projeto é explorar como outros sistemas de processamento de stream fornecem mecanismos de tolerância a falhas e garantias de consistência, bem como esses mecanismos podem ser implementados no ambiente SPar distribuído, sem que o usuário final precise alterar o código de suas aplicações para se beneficiar do mecanismo de tolerância a falhas. As seguintes contribuições são esperadas: 1) Uma estratégia de geração de código de stream paralelo para arquiteturas distribuídas com tolerância a falhas e garantia de consistência exactly-once; 2) Uma análise sobre como o atual estado da arte em sistemas de processamento de stream implementam mecanismos de tolerância a falhas e garantias de consistência; 3) Uma análise sobre como o mecanismo de tolerância a falhas escolhido impacta a performance das aplicações.

Uma Abstração de Programação Paralela Simples e Eficiente para Aplicações de Processamento de Stream

Project Coordinator

Period: 2022 - 2025
No. 306511/2021-5
Funding: Conselho Nacional de Desenvolvimento Científico e Tecnológico
Call: Bolsa de Produtividade em Desenvolvimento Tecnológico e Extensão Inovadora (DT)

Abstract: O desenvolvimento de software para aplicações de processamento de stream com suporte a exploração do paralelismo ainda é tido como uma atividade apenas reservada a desenvolvedores experientes e com conhecimento profundo sobre o hardware. Assim, desenvolvedores de aplicação que atuam em um nível mais alto e lógico de uma solução de software não conseguem de maneira simples e eficiente explorar os recursos de paralelismo presentes nas arquiteturas de computação. Somando a isso, o movimento da quarta revolução industrial alavancou a criação de novos hardwares computacionais e suas ideias estão sendo adaptadas e incorporados em outros setores tais como Agricultura e Saúde, dando espaço ao termo guarda-chuva Tecnologias 4.0. As aplicações das chamadas Tecnologias 4.0 executam em sistemas computacionais de pequena, média e larga escala, os quais vêm apresentando um alto grau de paralelismo e heterogeneidade no hardware ou ambiente. Também, a maior parte dessas aplicações podem ser caracterizadas como entidades ou sistemas de processamento de fluxo contínuo de dados (stream processing), pois os sistemas computacionais estão continuamente comunicando uns com os outros e tendo que processar assim que os dados chegam. O objetivo deste projeto é dar continuidade as pesquisas realizadas pelo proponente de tornar a exploração do paralelismo mais simples e produtiva em aplicações de processamento de stream através da linguagem de domínio específico que leva o nome de SPar (Stream Parallelism). Diferente do que foi feito até o momento, esse projeto visa acelerar o processo de entrega de novas soluções de software para o contexto das Tecnologias 4.0, englobando ambientes de Computação em Nuvem (aglomerado de instâncias computacionais virtualizadas) e Internet das Coisas (sistemas embarcados com múltiplos núcleos). Portanto, as principais metas neste escopo são: I) avaliar a eficiência e a produtividade da SPar e soluções correlatas; II) mapear as limitações técnicas e oportunidades de melhorias; III) propor e desenvolver novos algoritimos de execução paralela autonômica; IV) propor e implementar melhorias nas abstrações de programação; V) contribuir com a formação de alunos de graduação e pós-graduação; e VI) publicar livros, artigos em periódicos qualificados e em anais de evento.

Query Management Through Machine Learning

Project Coordinator

Period: 2022 - 2024
Funding: SAP

Abstract: When human translators work on texts to be translated from a source language, the translation of domain-specific terms becomes complex if the original text is incomplete, badly written or ambiguous, contains unknown abbreviations, or placeholders, has low translatability, or is in the wrong source language. The human translator must know beforehand which are the terms and their specific translations to apply them. A way to mitigate the problem is to open a communication channel between the translators and the domain-specific experts to define the correct translation of terms. However, such communication can fail when we do not process correctly these interactions. Multiple questions about the same terms can be made, overloading the experts with questions already answered. In order to reduce the need for human communication in these situations and thus improve the translator's productivity, we can try to manipulate the content of these questions to identify those already answered. To do so, we can compute the similarity between questions by converting their text and metadata into semantic embeddings. Furthermore, using machine learning methods, we can improve on that and obtain scores that indicate how similar are two pieces of text in terms of their meanings. In this way, we can identify duplicates and similarities in questions, improving the way it is currently done. This project will contribute to the evaluation of existing approaches for query management, review the state-of-the-art on neural language models, and development of machine learning models.

CERCIRAS: Connecting Education and Research Communities for an Innovative Resource Aware Society

Researcher

Period: 2021 - 2024
Funding: Europen Union
Call: Europen Cooperation in Science & Technology (COST)

Abstract: Parallel computing platforms have revolutionised the hardware landscape by providing high-performance, low-energy, and specialized (viz. heterogeneous) processing capabilities to a variety of application domains, including mobile, embedded, data-centre and high-performance computing. However, to leverage their potential, system designers must strike a difficult balance in the apportionment of resources to the application components, striving to avoid under- or over-provisions against worst-case utilisation profiles. The entanglement of hardware components in the emerging platforms and the complex behaviour of parallel applications raise conflicting resource requirements, more so in smart, (self-)adaptive and autonomous systems. This scenario presents the hard challenge of understanding and controlling, statically and dynamically, the trade-offs in the usage of system resources, (time, space, energy, and data), also from the perspective of the development and maintenance efforts. Making resource-usage trade-offs at specification, design, implementation, and run time requires profound awareness of the local and global impact caused by parallel threads of applications on individual resources. Such awareness is crucial for academic researchers and industrial practitioners across all European and COST member countries, and, therefore, a strategic priority. Reaching this goal requires acting at two levels: (1) networking otherwise fragmented research efforts towards more holistic views of the problem and the solution; (2) leveraging appropriate educational and technology assets to improve the understanding and management of resources by the academia and industry of underperforming economies, in order to promote cooperation inside Europe and achieve economical and societal benefits.

Identificação de Emoções em Áudio

Project Coordinator

Period: 2023 - 2024
Funding: Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Call: Programa Institucional de Iniciação Científica

Abstract: As emoções possuem papel fundamental no processo de relação entre humanos. Elas surgem subconscientemente e podem ser expressas através da voz, gestos e expressões corporais ou faciais. Visando tornar os algoritmos mais empáticos, a computação afetiva tem por objetivo fazer com que algoritmos sejam capazes de expressar e/ou compreender emoções. Nesse sentido, o reconhecimento de emoções na fala é um campo de estudo que busca identificar emoções expressas por um indivíduo através da voz sem que haja a necessidade de compreender o que está sendo dito. O reconhecimento destas emoções possui inúmeras aplicações, como o auxílio na detecção de situações de estresse. Neste projeto, utilizamos estes conceitos para treinarmos um modelo de inteligência artificial capaz de processar o áudio produzido pela voz humana e identificar as emoções presentes nele. Como parte do processo, o(a) aluno(a) de iniciação científica participará nas tarefas de identificação e avaliação de informações de áudio.

Programação Paralela em Dispositivos Embarcados

Project Coordinator

Period: 2023 - 2024
Funding: Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Call: Programa Institucional de Bolsas de Iniciação Científica da PUCRS (PUCRS-BIC)

Abstract: Sistemas embarcados combinam software e hardware para realizar tarefas específicas e são amplamente utilizados em aplicações automotivas, dispositivos médicos, casas inteligentes, robôs e dispositivos móveis. Tipicamente, estes sistemas são compostos por hardware com recursos limitados devido ao preço de aquisição e baixo consumo energético. Mesmo assim, esses dispositivos apresentam arquiteturas sofisticadas com múltiplos núcleos e aceleradores. Portanto, o desenvolvimento de aplicações paralelas para sistemas embarcados é desafiador devido à complexidade envolvida nos conceitos de sistemas paralelos. Dessa forma, é muito relevante para a comunidade científica entender quais aspectos do paralelismo em dispositivos com recursos limitados influenciam na escolha do software.

Resilient Data Pipelines

Project Coordinator

Period: 2022 - 2023
Funding: SAP

Abstract: The programming concept of data pipelines is analogous to data-flow or a directed graph of components (mostly known as operators) that exchange information (messages or events) over established connections in a producer/consumer relationship. An operator represents an asynchronous process that is executed in a data-driven model. Operators can be grouped to execute together in one execution environment (for instance, within the same container). A group of operators can be configured to run with a dedicated multiplicity, that is, the group can be replicated into multiple instances, each of which runs in its own execution environment. An executable data pipeline is viewed as a single application entity from a user perspective and the distributed data pipeline engine concerns are hidden from users, such as data communication and synchronization, and automatic recovery from unexpected failures of a group during execution or within communications between groups. Capturing a fine-grain (record-level) data lineage of a data pipeline execution helps investigate the root cause of an error. In this sense, data lineage queries could be expressed to forward/backward ask which output/input records contributed to a given outcome. Our main motivation in this project is to support rollback recovery protocol and fine-grain data lineage together for data pipeline executions. The contributions of this project are the implementation and evaluation of rollback recovery protocol and data lineage.

Técnicas Avançadas para Exploração do Paralelismo em Aplicações de Dinâmica dos Fluídos Computacional com GPUs

Project Coordinator

Period: 2022 - 2023
Funding: Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Call: Programa Institucional de Iniciação Científica

Abstract: O estudo do domínio de aplicações de Dinâmica dos Fluidos Computacional (CFD) é estratégico para o desenvolvimento do país, pois contribui para diversas áreas relevantes como engenharia espacial e medicina. Por outro lado, estas aplicações são complexas ao ponto que podem levar anos para serem computadas por um processador tradicional. Nesse sentido, uma solução viável consiste em programar as aplicações utilizando Unidades de Processamento Gráfico (GPUs). As GPUs possuem um alto poder computacional e conseguem resolver problemas complexos até milhares de vezes mais rápido do que processadores tradicionais. No entanto, a programação de GPUs é um grande desafio para programadores, pois exige que o programador lide com milhões de procedimentos matemáticos concorrentes. O objetivo geral deste trabalho é fornecer um compilado de técnicas de programação para abordar aplicações do domínio de CFD para GPUs, contribuindo para soluções mais eficientes na área.

Ciência de Dados Eficiente com Rust

Project Coordinator

Period: 2022 - 2023
Funding: Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Call: Programa Institucional de Bolsas de Iniciação Científica da PUCRS (PUCRS-BIC)

Abstract: Ciências de dados é uma área bastante interdisciplinar que permite revolucionar indústria, agricultura, monitoramento, etc. Muitas atividades neste contexto demandam o uso de linguagens de programação para análise e processamento de dados. A aplicação da ciência nos dados também demanda de linguagens eficientes, que permitam executar algoritmos de mais rapidamente nas arquiteturas de computadores atuais (paralelos). Nesse contexto, Rust é uma linguagem de programação promissora. O desafio deste projeto considera investigar a linguagem Rust para uso em ciência de dados. A pesquisa consiste na exploração das soluções do estado-da-arte e implementação de aplicações reais, avaliando os comportamentos e situações recorrentes na área de ciência de dados.

SPar4.0: Paralelismo de Stream nas Tecnologias 4.0

Project Coordinator

Period: 2021 - 2023
No. 21/2551-0000725-7
Funding: Fundação de Amparo à Pesquisa do Estado do Rio Grande do Sul (FAPERGS)
Call: Auxílio Recém Doutor (ARD)

Abstract: Com as evoluções tecnológicas recentes, surgiu o movimento da quarta revolução industrial. Seus conceitos e ideias estão sendo adaptados e incorporados em outros setores tais como Agricultura e Saúde. Assim, dando espaço ao termo Tecnologias 4.0 para se referir às tecnologias habilitadoras dos conceitos e ideias da quarta revolução industrial. As aplicações das chamadas Tecnologias 4.0 executam em sistemas computacionais de pequena, média e larga escala, os quais vêm apresentando um alto grau de paralelismo e heterogeneidade no hardware. Também, a maior parte dessas aplicações podem ser caracterizadas como entidades ou sistemas de processamento de fluxo contínuo de dados (stream processing), pois os sistemas computacionais estão continuamente comunicando uns com os outros e tendo que processar assim que os dados chegam. As interfaces de programação paralela existentes para exploração do paralelismo em aplicações de processamento de stream, ainda são muito complexas e limitantes. Elas têm sido desenvolvidas para sistemas computacionais de larga (clusters/cloud) ou média escala (servidores) e não fornecem mecanismos que lidam com autoadaptatividade para atender níveis de qualidade de serviço exigidos (latência, vazão ou consumo de energia). Esse projeto irá concentrar seus esforços para contribuir com o processo de desenvolvimento de software paralelo em sistemas computacionais constituídos de hardware embarcado com processadores de múltiplos núcleos. Visando acelerar o processo de entrega de novas soluções de software para o contexto das Tecnologias 4.0, os objetivos principais deste projeto são: tornar a exploração do paralelismo de stream mais produtiva e simples; fornecer abstrações de software para lidar com a implementação de estratégias autoadaptativas nas aplicações; e criar algoritmos para atender os requisitos de qualidade de serviço em tempo de execução.

Desenvolvimento de uma Ferramenta para a Análise Preditiva de Risco em Sífilis Congênita: Interação entre Ciência de Dados e Saúde Pública

Researcher

Period: 2021 - 2023
Funding: Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Call: Programa de Apoio a Projetos de Pesquisa - PAPROP

Abstract: sífilis é a segunda causa infecciosa mais comum de natimortos em todo o mundo, apesar de ser uma condição evitável. O Brasil dispõe de um sistema de informações que possibilita um diagnóstico clínico-social dos problemas de saúde e a integração entre a ciência de dados e a área da saúde pode criar soluções factíveis para problemas de saúde como a alta incidência de sífilis congênita. Sendo assim, o objetivo desse trabalho é desenvolver uma ferramenta de predição de risco que auxilie na diminuição do número de casos e da gravidade da sífilis congênita.

Ciência de dados aplicada à biodiversidade: integração de dados moleculares e análises ecológicas em grande escala para monitorar a biodiversidade do CPCN Pró-Mata

Researcher

Period: 2021 - 2023
Funding: Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Call: Programa de Apoio a Projetos de Pesquisa - PAPROP

Abstract: A biodiversidade do planeta Terra é imensamente complexa e ainda pouco compreendida. A maior parte das espécies que a compõem é ainda desconhecida e, dentre as já descritas para a ciência, sabe-se pouco sobre seus papeis ecológicos, sua relevância para a manutenção funcional dos ecossistemas e sua resiliência frente à atual crise ambiental induzida pelos impactos humanos. Isto é particularmente relevante no caso de biomas megadiversos e altamente impactados, como a Mata Atlântica. Nesse contexto, o desenvolvimento e a aplicação integrada de novas tecnologias para gerar e analisar dados em grande escala sobre a biodiversidade são passos cruciais para acelerar nossa compreensão sobre este tema, bem como embasar estratégias eficazes de proteção e monitoramento ambiental. O presente projeto tem por objetivo contribuir neste sentido, desenvolvendo abordagens que promovam a integração entre dados de eDNA metabarcoding (que permite o inventário simultâneo de milhares de espécies presentes em uma amostra ambiental), análises de redes ecológicas complexas e técnicas computacionais de processamento e análise de ?big data?. O projeto terá como foco uma área de Mata Atlântica (RPPN Pró-Mata, PUCRS, Rio Grande do Sul) contendo um mosaico ecossistemas complexos, nos quais já foram registrados níveis muito altos de biodiversidade. A partir de amostras de água e solo coletadas em diferentes ambientes e ao longo de diferentes janelas de tempo, sequências de DNA (eDNA metabarcodes) serão geradas com conjuntos de marcadores de ampla capacidade de detecção de organismos procariotos e eucariotos. Os dados serão inicialmente analisados utilizando métodos computacionais básicos de descrição de biodiversidade, e a seguir empregando abordagens que caracterizam redes complexas de co-ocorrência de táxons e sua interação com variáveis abióticas. Ao longo do estudo, novos métodos computacionais serão desenvolvidos com a finalidade de identificar e caracterizar padrões relativos à dinâmica espaço-temporal da biodiversidade em ecossistemas complexos.

Automated Planning for Optimal Data Pipeline Instantiation

Technical Leader

Period: 2021 - 2022
Funding: SAP

Abstract: The project aims to model Data Pipelines described in a graph language as an automated planning problem to optimize pipeline deployment in a kubernetes infrastructure. The project deals with challenges in basic research such as numeric planning heuristics, as well as technical challenges such as the integration of the resulting plans into the optimization of such pipelines. The project also aims to apply planning algorithms to automatically debug such pipelines.

Conjunto de Aplicações IoT com Processamento Paralelo para Avaliação de Hardware e Software

Project Coordinator

Period: 2021 - 2022
Funding: Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Call: Programa Institucional de Iniciação Científica

Abstract: É comum uma grande parte dos aparelhos eletrônicos comunicarem-se entre si ou com a internet. Tudo está interligado, constituindo o que chamamos de IoT (Internet das Coisas). Há uma interconexão entre o mundo digital e o físico, tornando-o mais interativo e responsivo. O objetivo é automatizar, otimizar e adicionar inteligência aos processos. Por isso, essas são tecnologias habilitadoras empregadas em conjunto com diversas outras áreas (agricultura, saúde, indústria e cidades inteligentes). Essas soluções requerem cada vez mais de hardware/software paralelos. Há uma grande carência de Benchmarks (conjunto de aplicações) para validar e avaliar as novas soluções que estão e serão desenvolvidas. O objetivo deste projeto é criar uma suíte de benchmarks com aplicações paralelas realísticas encontradas em dispositivos IoT. Assim, possibilitando a avaliação sistemática de soluções de hardware/software para este domínio.

ParAS: Paralelismo em Aplicações de Stream

Researcher

Period: 2021 - 2022
No. 19/2551-0001895-9
Funding: Fundação de Amparo à Pesquisa do Estado do Rio Grande do Sul (FAPERGS)
Call: Programa Pesquisador Gaúcho (PqG)

Abstract: O processamento de fluxos de dados contínuo (stream) é um dos paradigmas mais usados nos sistemas computacionais modernos. o aumento da popularidade da internet das coisas (Internet of Things - IoT) e a explosão do grande volume de dados (Big Data) têm tornado o processamento de stream um tópico de tendência em pesquisa e desenvolvimento. Existem milhões de fontes de dados na Internet que estão gerando, coletando ou trocando informações através de diferentes dispositivos (computador pessoal, celulares, sensores, etc.). Nesse cenário, cresce rapidamente o número de aplicações de stream que necessitam explorar técnicas de computação paralela para conseguir atender à demanda por alta vazão no processamento dos dados e baixa latência na resposta aos usuários. Este projeto tem por objetivo o aperfeiçoamento e consolidação de um framework para permitir que aplicações de stream sejam paralelizadas de forma mais produtiva através de uma interface de programação própria de mais alto nível de abstração, atendendo a exploração do paralelismo em diferentes arquiteturas (e.g., clusters e GPUs.

Visualização Interativa de dados multivariados geoespaciais usando processamento de alto desempenho

Researcher

Period: 2021 - 2022
Funding: Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Call: Programa Institucional de Bolsas de Iniciação em Desenvolvimento Tecnológico e Inovação

Abstract: Com a popularidade dos telefones celulares, GPS e outras tecnologias, houve um aumento na quantidade de dados multivariados geoespaciais gerados, como dados de redes sociais e dados da área da saúde, como de COVID-19. A visualização destes dados facilita na análise de como diferentes atributos se correlacionam geograficamente, mas esta não é uma tarefa trivial, sobretudo quando o volume de dados gerado é maior que a capacidade de processamento. Por isso, soluções e alternativas de processamento de alto desempenho são necessárias. O objetivo deste projeto é tornar um sistema de análise visual de dados multivariados no contexto geoespacial, o GeoMultiVis, um serviço que permita a integração com soluções de processamento paralelo e distribuídos de dados. Contribuições esperadas: identificar o estado da arte nesta área; alterar a arquitetura do GeoMultiVis e integrá-lo com um sistema de processamento paralelo e distribuído de dados; e usá-lo em um estudo de caso.

SParCloud: Stream Parallelism in the Cloud

Project Coordinator

Period: 2019 - 2022
No. 437693/2018-0
Funding: Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Call: CNPq Universal

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

Period: 2019 - 2022
Funding: TECNICON Sistemas

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

Period: 2019 - 2021
Funding: Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Call: Programa Institucional de Bolsas de Iniciação Científica da PUCRS (PUCRS-BIC)

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.

Benchmarks para Processamento Paralelo de Stream

Researcher

Period: 2020 - 2021
Funding: Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Call: Programa Institucional de Bolsas de Iniciação Científica da PUCRS (PUCRS-BIC)

Abstract: Este projeto busca estudar, compreender e avaliar benchmarks para processamento paralelo de stream. Existem diversos benchmarks que incluem aplicações para processamento de stream, porém, são poucos os que exploram paralelismo nessas aplicações. O objetivo deste projeto é investigar o estado-da-arte para mapear as linguagens, técnicas, paradigmas e aplicações mais utilizadas nesse domínio. Com isso, comparar os resultados com os benchmarks para verificar se eles são representativos o suficiente e quais lacunas ainda não foram preenchidas. Dessa forma, poderemos melhorar algumas aplicações desenvolvidas dentro do Grupo de Modelagem de Aplicações Paralelas (GMAP) para preencher essas lacunas. Os resultados esperados são um mapa do estado da arte para guiar a construção de um benchmark representativo utilizando o conjunto inicial de aplicações melhoradas.

Paralelismo de Dados Automático em Aplicações de Processamento de Stream

Researcher

Period: 2019 - 2021
Funding: Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Call: Programa Institucional de Iniciação Científica

Abstract: Aplicações de processamento de stream são responsáveis por atender uma demanda relativamente grande de usuários na internet e serviços em larga escala. Dada a importância deste domínio de aplicação, a busca por obter melhores indicadores de desempenho nas arquiteturas de computadores atuais é incessante. Este projeto tem como objetivo investigar e criar uma solução que permite identificar regiões em aplicações de processamento de stream que possam explorar o paralelismo de dados de forma totalmente automática, ou seja, sem a necessidade de intrusão de código extra. Também de forma automática, o objetivo é analisar a melhor opção de padrão para gerar código paralelo que combine o paralelismo de dado com o paralelismo de stream já existente através da SPar. Espera-se que o conjunto de soluções a serem criadas possa acelerar as aplicações de processamento de stream em arquiteturas com processadores multi-core sem a necessidade de intervenção do desenvolvedor de software.

Análise Visual de Grandes Conjuntos de Dados Multivariados no Contexto Geoespacial

Researcher

Period: 2019 - 2020
Funding: Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Call: Programa Institucional de Bolsas de Iniciação em Desenvolvimento Tecnológico e Inovação

Abstract: Com a popularidade dos telefones celulares, GPS e outras tecnologias, houve um aumento na quantidade de dados multivariados geoespaciais gerados, como dados abertos do governo, dados meteorológicos e dados de redes sociais. A visualização destes dados facilita na análise de como diferentes atributos se correlacionam geograficamente, mas esta não é uma tarefa trivial, sobretudo quando o volume de dados gerado é maior que a capacidade de processamento. Por isso, soluções e alternativas de computação de alto desempenho são necessárias. O objetivo deste projeto é integrar dois sistemas para oferecer uma solução mais robusta e completa: GeoMultiVis (permite a análise visual de dados multivariados geoespaciais) e GMaVis (permite processar um grande volume de dados geoespaciais de forma simplificada). Contribuições esperadas: identificar o estado da arte nesta área; desenvolver um protótipo para visualização de grandes volumes de dados multivariados geoespaciais e usá-lo em um estudo de caso.

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

Project Coordinator

Period: 2018-2020
No. 17/2551-0000871-5
Funding: Fundação de Amparo à Pesquisa do Estado do Rio Grande do Sul (FAPERGS)
Call: Auxílio Recém Doutor (ARD)

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.

Aceleração de Aplicações em Arquiteturas Paralelas Contemporâneas

Researcher

Period: 2018 - 2020
Funding: Unipampa and Setrem

Abstract: Em diversas áreas da ciência existem algoritmos que demandam um elevado custo computacional. Uma alternativa para acelerar a execução destes algoritmos consiste na execução concorrente do código, tornando a obtenção das soluções numéricas factível ou obtidas em um tempo de processamento aceitável. Arquiteturas multicore e aceleradores com vários núcleos de processamento têm sido amplamente utilizados como uma alternativa eficiente e viável na busca por maior poder de processamento. Sistemas modernos são compostos por processadores multicore e aceleradores altamente especializados tais como GPUs e co-processadores Intel Xeon Phi. No entanto, fazer uso desse tipo de arquitetura requer aspectos de programação distintos, e que, portanto, devem ser investigados apropriadamente para garantir a maximização do aproveitamento dos recursos computacionais. Assim, usando diferentes interfaces de programação paralela combinadas, é possível comparar e analisar modos de se obter o melhor aproveitamento do hardware e consequentemente prover execuções mais eficientes para os programas. Baseado neste contexto, esta pesquisa investiga como explorar diferentes formas de paralelismo para diversas classes de aplicações usando interfaces de programação paralelas apropriadas, avaliar o desempenho de arquiteturas atuais e propor técnicas de divisão paralela da aplicações. O uso de diferentes interfaces de programação permite fazer uso de um conjunto maior de arquiteturas computacionais como multiprocessadores/multicore, manycore/coprocessadores e multicomputadores. Desta forma será possível prover maior desempenho na execução de aplicações científicas e comerciais em arquiteturas atuais e, consequentemente, ter soluções mais rápidas e/ou precisas, além de usar e propor algoritmos para a avaliação de arquiteturas computacionais.

Programação Paralela em GPU para Aplicações de Processamento de Stream

Researcher

Period: 2018 - 2020
Funding: Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Call: Programa Institucional de Bolsas de Iniciação Científica da PUCRS (PUCRS-BIC)

Abstract:Arquiteturas paralelas heterogêneas estão cada vez mais presentes nos sistemas computacionais atuais. Isso vai desde servidores até celulares, aonde existe pelo menos um processador de propósito geral (multi-core) e outro co-processador de propósito específico para o processamento gráfico e matemático (many-core). Tal cenário proporciona um paralelismo massivo e um alto poder computacional. No entanto, é um desafio para programadores explorarem todo este paralelismo disponível de maneira eficiente. Tratando-se de arquiteturas heterogêneas, a complexidade é ainda maior, pois envolve dois paradigmas de programação paralela, ou seja, duas formas diferentes de programar e modelar o paralelismo no código fonte. O objetivo deste projeto é aliar a SPar à programação paralela para GPUs (Graphics Processing Unit). A SPar é uma linguagem específica de domínio criada recentemente pelo Grupo de Modelagem de Aplicações Paralelas (GMAP) com suporte as arquiteturas multi-core (CPU) para simplificar a programação paralela em aplicações de streaming. Este projeto visa explorar soluções de programação paralela do estado da arte para arquiteturas many-core (GPUs) a fim de explorar o paralelismo das duas arquiteturas ao mesmo tempo em aplicações de processamento de \textit{stream}. Além de proporcionar ao bolsista conhecimentos na temática do projeto, os resultados e a implementação do paralelismo em aplicações reais irão colaborar para propor uma abstração da programação paralela em GPUs junto da SPar futuramente.

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

Project Coordinator

Period: 2014 - 2020
Funding: Abase Sistemas

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.

DDPE: A DSL for the Dot-Product Engine

Technical Leader

Period: 2018 - 2019
Funding: Hewlett Packard Enterprise (HPE)

Abstract: Este projeto tem como motivação a criação de uma linguagem específica de domínio (Domain-Specific Language - DSL) para o acelerador de hardware Dot-Product Engine (DPE). O DPE é um acelerador recentemente projetado pela HP para aplicações que realizam operação de soma de produtos com grande frequência. Estas operações são realizadas em programas desenvolvidos no domínio de Machine Learning e Deep Learning, os quais são importantes por diversas razões. Por exemplo, estas aplicações são desenvolvidas para melhorar a vida das pessoas em diversos segmentos da sociedade (e.g., saúde, segurança, financeiro, conforto, acessibilidade, etc.). A realização deste projeto permitirá oferecer uma DSL de mais alto nível para explorar/usar os recursos do acelerador DPE. Isso será de suma importância para que novas e sofisticadas aplicações possam ser desenvolvidas, visto que o principal limitador da linguagem DPE atualmente disponível é o baixo nível de abstração (muito atrelado às propriedades arquiteturais) e as restrições quanto a expressividade de operações para aplicações de Machine Learning e Deep Learning.

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

Project Coordinator

Period: 2018 - 2019
Funding: Fundação de Amparo à Pesquisa do Estado do Rio Grande do Sul (FAPERGS)
Call: Programa Institucional de Bolsas de Iniciação Científica (PROBIC)

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.

TchêBr-PoC: Implantação de Nuvem Privada com a Plataforma OpenStack como Prova de Conceito

Project Coordinator

Period: 2017 - 2018
Funding: TchêTurbo and BrPhonia

Abstract: Este projeto tem como objetivo a implantação de um ambiente de nuvem privada com a plataforma OpenStack. O objetivo principal é fazer uma prova de conceito em uma infraestrutura típica, composta por quatro servidores idênticos e configurados em cluster. Além disso, serão avaliados e implantados diferentes tipos de instâncias na nuvem (Kernel-based, Container-Based). A implantação contemplará ambientes homogêneos e heterogêneos, os quais são trabalhados de forma didática e prática durante a realização do projeto. O foco principal das avaliações serão o desempenho e as limitações que os ambientes implantados irão oferecer. Por isso, uma série de testes serão executados. Como resultado, espera-se a produção de manuais das implantações e relatório técnico das análises efetuadas, a fim de entender o funcionamento da plataforma de nuvem e de identificar a melhor forma de implantar a nuvem privada ciente do desempenho, diante das limitações impostas pelo uso do hardware.