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

Time Jan/2017 - Jan/2018
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

Renato Barreto Hoffmann Filho

Renato Hoffmann

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

Time Jan/2017 - Jan/2018
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

Júnior Henrique Löff

Junior Loff

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

Time Jan/2016 - Jan/2017
Funding: FAPERGS
Abstract: Aplicações baseadas em stream se tornaram amplamente utilizadas nos últimos anos. A grande maioria delas necessita de respostas imediatas com alta vazão no processamento dos elementos do stream. Alguns exemplos são processamento de vídeo e imagem, análise de dados em tempo real, aplicações de rede, simulações e sistemas reativos. Neste contexto, apresentamos a SPar que é uma linguagem específica de domínio embarcada na linguagem C++ para realizar o paralelismo de stream. Ela apresenta uma nova abordagem, permitindo que usuários com pouco conhecimento em programação paralela possam, usando apenas cinco atributos e dois tipos de anotações, anotar e identificar no código sequencial a região de paralelismo. Além disso, o compilador da SPar é usado para gerar um código paralelo que suporta os sistemas multicore. No entanto, ainda é necessário realizar uma avaliação mais ampla do seu desempenho em aplicações reais, bem como experimentos de software para medir o esforço de programação em relação aos frameworks do estado da arte. Em vista disso, o objetivo deste projeto é implementar diferentes tipos de aplicações e comparar com os demais frameworks o esforço e o desempenho da SPar. As contribuições esperadas são: (I) novos resultados do desempenho da SPar para otimização da geração de código; (II) informações sobre o esforço necessário com o intuito de melhorar a interface com o programador; (III) descoberta de novas aplicações de stream e limitações da SPar.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Renato Barreto Hoffmann Filho

Renato Hoffmann

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

Time Jan/2016 - Jan/2017
Funding: FAPERGS
Abstract: Visando melhoria de performance, simplicidade e escalabilidade no processamento de dados amplos, o Google propôs o padrão paralelo MapReduce. Este padrão tem sido implementado de variadas formas para diferentes níveis de arquitetura, alcançando resultados significativos com respeito a computação de alto desempenho. No entanto, desenvolver código otimizado com tais soluções requer conhecimento especializado na interface e na linguagem de programação de cada solução. Durante a dissertação de mestrado de um membro do GMAP (Grupo de Modelagem de Aplicações Paralelas) foi criada uma interface unificada de programação MapReduce que ofereceu regras de transformação de código que permitem partir de uma linguagem de alto nível e gerar soluções otimizadas para arquiteturas de memória compartilhada e distribuída. A interface proposta é capaz de evitar perdas de performance uma vez que a geração através das regras apresentou resultados similares à aplicações paralelizadas manualmente, enquanto alcança uma redução de código e esforço de programação que aumenta a produtividade do desenvolvedor. Este projeto tem como objetivo dar continuidade a esta pesquisa a partir do desenvolvimento de um gerador de código para realizar automaticamente as transformações e realizar melhorias na interface através do estudo de outras ferramentas atuais como Spark, Storm e Flink.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Júnior Henrique Löff

Junior Loff

Uma Linguagem Específica de Domínio para Visualização de Grandes Volumes de Dados

Time Jan/2015 - Jan/2016
Funding:
Abstract: Na última década a produção de dados em todo o planeta cresceu de forma exponencial . Estes dados, possuem uma origem muito diversificada posto que a quantidade de agentes produtores de dados cresce com o uso da tecnologia. Exemplos de produtores de quantidades massivas de dados são redes sociais, simulações, sensores, registro de ligações telefônicas e informações sobre atividades de clientes. A análise destes dados pode fornecer informações para construção de conhecimento sobre tendências e comportamentos e auxiliar nas tomadas de decisões, no ambiente corporativo, científico e acadêmico. Ocorre que a análise destes dados em forma bruta é complexa, e em alguns casos inviável devido ao grande volume. Neste contexto, a utilização de técnicas de visualização torna-se uma alternativa para auxiliar na percepção destes dados. O uso de diferentes formas de visualização fornece ao analisador um modo de apresentação dos dados que favorece a percepção, já que utiliza gráficos e imagens para representar os dados. É comprovado que a utilização de imagens e formas de representação visual facilitam a percepção humana. Neste caso o processamento de imagens é realizado em paralelo pelo sistema de percepção humana, ao contrário de dados em forma de texto, que ficam limitados ao processo sequencial de leitura. Existem visualizações que possuem um processo de criação complexo, pois necessitam de programação. A visualização quando aplicada sobre uma quantidade massiva de dados acrescenta a complexidade de paralelização ou otimização, tanto na sua geração como para suportar interações. Isso se torna uma tarefa difícil para usuários, cientistas de áreas pouco contempladas pela computação e leigos no desenvolvimento de visualizações já que é necessário se preocupar com o gerenciamento de uma grande quantidade de dados, além da visualização e da programação em si. Linguagens Específicas de Domínio (ou Domain-Specific Languages - DSL) são linguagens que procuram resolver um domínio de problema particular. As DSLs vêm sendo utilizadas no contexto da aplicação ou para a geração de técnicas de visualização. Já que permitem a criação simplificada, fornecem uma interface de alto nível que abstrai detalhes de programação e, algumas, incluem o paralelismo. Isso reduz o esforço e o tempo necessário para a geração de uma visualização. No entanto, fica aberta em aberto a possibilidade de criação de uma DSL que atenda aos seguintes requisitos: possuir uma interface de fácil utilização pelo usuário que não possui conhecimentos avançados em programação; permitir a criação de visualizações de maneira rápida e fácil; utilize grandes volumes de dados. Este projeto visa abordar o processamento de grande volume de dados em paralelo e a inserção de diferentes tipos de visualizações na DSL. O objetivo é de identificar e desenvolver visualizações que podem ser adicionadas na linguagem fazendo um estudo dos tipos de visualizações disponíveis e mais utilizados. Com isso, será possível a validação da linguagem proposta, avaliando o tempo de processamento dos dados e o esforço de programação.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Cleverson Ledur

Gabriell Alves de Araujo

Gabriell Araújo

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

Time Jan/2016 - Jan/2018
Funding:
Abstract: Com a facilidade de acesso à internet, a quantidade de dados produzida tem aumentado significativamente, principalmente nos últimos 10 anos. The Zettabyte Era, é uma pesquisa realizada pela Cisco, que mostra um estudo e projeção sobre os dados criados na internet. O histórico abordado pela pesquisa, mostra que em 1992, 100GB de dados eram criados por dia. Em 2013, essa quantidade era em torno de 28,875 GB por segundo. E para 2018, a projeção para a quantidade de dados criadas é de 50,000 GB por segundos. Esse aumento de dados é uma ideia que já está amadurecida na área da computação, por isso, empresas e diversos grupos de pesquisas vem trabalhando com o objetivo de criar mecanismos para entender e coletar maiores informações que são geradas na internet. Atualmente, o padrão MapReduce é um destes mecanismos utilizados para processamento de grandes volumes de dados. Na maioria dos casos, os mecanismos como MapReduce necessitam de um grande poder computacional, e empresas necessitam investir financeiramente nestes recursos. Com objetivo de evitar esse alto custo financeiro, as empresas têm um olhar positivo para a computação em nuvem, sendo um modelo de oferta de serviço bem exercido no meio comercial. O modelo de computação em nuvem permite que os recursos computacionais provisionados sejam selecionados pelo usuário de acordo com a sua necessidade. A cobrança por utilizar este serviço é realizada de acordo com o uso, sendo pela demanda ou necessidade da aplicação utilizada. Uma característica importante nos ambientes de nuvem é a possibilidade de aplicar elasticidade, podendo aumentar ou diminuir os recursos de acordo com a demanda. Este aspecto motiva a proposta de criação de um mecanismo, que forneça elasticidade automática em tempo de execução para aplicações MapReduce. Dessa forma, os recursos podem ser provisionados dinamicamente de acordo com a necessidade do usuário, permitindo um processamento mais eficiente comuso inteligente da infraestrutura do provedor de serviços e pagando somente pelo o que foi usado. Isso facilitará para o cliente do serviço de nuvem executar suas aplicações MapReduce sem precisar se preocupar com a alocação de recursos, que será realizada por uma middleware. Este middleware proposto realizará uma análise dos recursos necessários e fará a alocação automaticamente, sem necessitar de intervenção do usuário, facilitando não só a execução do software, mas também o processo de desenvolvimento, considerando que atualmente o cliente precisa utilizar as APIs do OpenStack para poder usufruir da elasticidade que as nuvens oferecem. O projeto está propondo a criação de um middleware que forneça o aprovisionamento automático de recursos computacionais (memória, armazenamento e processamento) para aplicações MapReduce na ferramenta de computação em nuvem OpenStack.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Lucas Piatnicki

Enrique Dutra

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

Time Jan/2014 - Jan/2015
Funding:
Abstract: Com o objetivo de abstrair detalhes de programação paralela e orientar desenvolvedores ao uso de padrões para o modelagem das aplicações, foi criada uma linguagem específica de domínio nomeada DSL-POPP. O principal objetivo é aumentar a produtividade dos programadores e reduzir o esforço na paralelização de aplicações para arquiteturas multi-core. Outro fator importante é o desempenho, o qual também não pode ser comprometido significativamente neste cenário. Neste sentido, esta pesquisa buscou realizar uma avaliação e um comparativo do desempenho da DSL-POPP em relação as tradicionais interfaces de programação paralela para arquiteturas multi-core. Por exemplo, Pthreads, OpenMP, FastFlow, TBB e Cilk. Diferentemente, a interface foi construída para fornecer esqueletos relativos aos padrões Mestre/Escravo e Pipeline. Assim, o usuário apenas escolhe o padrão adequado para modelar sua aplicação e os preenche com código sequencial. Ao compilar o programa com o compilador da DSL-POPP, código paralelo é automaticamente gerado. A avaliação do desempenho foi realizada usando aplicações de diferentes domínios. Cada uma delas foi implementada a partir da sua versão sequencial e posteriormente executada em uma máquina com processador multi-core. Os resultados de desempenho mostraram que a DSL-POPP não teve perdas significativas, mostrando que a geração de códio e a abstração criada são eficientes. Mesmo que as perdas foram pequenas, o resultado é positivo, pois avaliações anteriores sobre o esforço demostram um ganho significativo.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Vinicius Pereira

Gabriell Alves de Araujo

Gabriell Araújo

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

Time Jan/2014 - Jan/2015
Funding:
Abstract: As características essenciais da computação em nuvem são a virtualização e a abstração. A virtualização é a principal facilitadora no gerenciamento de computação em nuvem e possibilita que um único hardware execute vários sistemas operacionais simultaneamente. Existem vários métodos de operação de virtualização: emulação, virtualização completa, paravirtualização e virtualização a nível de sistema operacional. Na construção dos ambientes de computação em nuvem é possível formar ecossistemas que determinam os modelos de serviços de uma nuvem, que são os modelos IaaS (Infrastructure as a Service), PaaS (Platform as a Service) e SaaS (Software as a Service). Os objetivos do projeto são abordar a programação paralela no cenário de computação em nuvem e verificar se o desempenho de aplicações que rodam em um determinado hardware é mantido ao migrar para um ambiente em nuvem. Para isso, foi implantada uma nuvem privada com a ferramenta OpenNebula sobre o virtualizador KVM. As instâncias virtuais foram criadas com o sistema operacional ubuntu server. Posteriormente, foram executadas as suítes do NPB (Nasa Parallel Benchmark) que exploraram os cenários de memória compartilhada e distribuída nos ambientes de nuvem e nativo. Após a coleta dos logs de execução, foi utilizada a abordagem estatística para analisar o quão foram significativas as diferenças entre os ambientes. Os resultados demostraram que o desempenho das aplicações paralelas é significativamente afetado quando as aplicações paralelas são migradas para a nuvem.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Natasha Flores

Lucas Piatnicki

DSL-POPP: Uma Linguagem Específica de Domínio Voltada para Padrões de Programação Paralela

Time Jan/2012 - Jan/2013
Funding:
Abstract: Este projeto tem por finalidade colaborar no desenvolvimento da DSL-POPP. Esta é uma Linguagem Específica de Domínio para Programação Orientada a Padrões Paralelos, a qual oferece ao programador uma interface de alto nível. A principal contribuição é a avaliação do esforço e desempenho em diferentes aplicações sintéticas. Os resultados demonstraram que a DSL-POPP reduziu o esforço na paralelização de aplicações sem comprometer o desempenho.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Estéfani da Silva

Vinicius Pereira

GREEN-GRID: Computação de Alto Desempenho Sustentável

Time Jan/2010 - Jan/2014
Funding: CNPq
Abstract: A recente conscientização da importância do custo energético dos sistemas computacionais não condiz com a crescente demanda por recursos computacionais cada vez mais poderosos. Se de um lado diferentes segmentos da sociedade da informação necessitam de tratamento automatizado de seus processos, por outro, o aumento da frequência de relógio das CPUs está se tornando impossível devido ao custo de energia associado ao seu incremento. A solução que tem sido proposta pelos fabricantes é a introdução do paralelismo nas próprias CPUs (chips multi-cores, e em breve many-cores), bem como o uso de recursos computacionais voluntários (volunteer computing) ou agregados por meio de Grades Computacionais. Ambas soluções permitem maximizar a taxa de utilização dos seus recursos de hardware, aumentando assim a capacidade de processamento sem aumentar o custo energético. Este contexto de processamento consciente do custo energético está associado ao Green Computing, ou Computação Sustentável. O projeto reúne um grupo de trabalho em Computação Sustentável formado por quatro grupos de trabalho distribuídos em quatro Instituições de Ensino Superior do Estado do Rio Grande do Sul, a saber: a Universidade Federal do Rio Grande do Sul, a Universidade Federal de Pelotas, a Universidade Federal de Santa Maria e a Pontifícia Universidade Católica do Rio Grande do Sul. Os parceiros propõem unir suas competências para a criação de uma infra-estrutura de Grade Computacional para Computação Sustentável, baseada na exploração de recursos sub-utilizados (e.g., laboratórios ociosos nos turnos noturnos) e em processadores multi-cores de baixo custo energético. As atenções da pesquisa estarão voltadas às questões relacionadas ao suporte de execução de aplicações sobre esta infra-estrutura, havendo também preocupação de desenvolvimento de ferramentas de apoio ao desenvolvimento de aplicações para esta infra-estrutura considerando o requisito de computação sustentada.
Project Team

Avelino Zorzo

Coordenador

Luiz G. Fernandes

Philippe Navaux

Nicolas Maillard

Gerson Cavalheiro

César De Rose

Adenauer Yamin

Cláudio Geyer

Alexandre Carissimi

Maurício Pilla

Andréa Charão

Computação de Alto Desempenho com Programação Híbrida para Aplicações Reais

Time Jan/2010 - Jan/2012
Funding:
Abstract: Diversas áreas do conhecimento apresentam cada vez mais aplicações que necessitam de respostas rápidas extraídas da computação de um grande volume de dados. Podem ser citadas como exemplo áreas como Meteorologia (previsão do tempo), Física (simulações com alta carga computacional), Bioinformática (data-mining de cadeia de proteínas), Computação Gráfica (representação de volumes tridimensionais), etc. O processamento paralelo aparece como alternativa viável para melhorar o desempenho de tais aplicações, fato este proporcionado pelo custo relativamente pequeno para a aquisição de um ambiente paralelo com poder computacional elevado. Este poder computacional aumenta significativamente na medida em que cresce a utilização de clusters de máquinas multiprocessadas (arquitetura híbrida). No entanto, a utilização de técnicas convencionais de programação paralela não é suficiente para que seja extraído todo poder de processamento deste tipo de arquitetura. Nesse cenário, este projeto justifica-se pela necessidade de investigação de novas metodologias para programação adequada de ambientes de alto desempenho híbridos, abrangendo práticas de programação, análise de características da aplicação alvo e formas de avaliar a qualidade da implementação híbrida. Com isto, pesquisadores de diversas áreas do conhecimento serão beneficiados, uma vez que pesquisar e conhecer todos estes aspectos trata-se de uma fase que, geralmente, despende tempo nas implementações.
Project Team

Luiz G. Fernandes

Coordenador
Dalvan Griebler

Dalvan Griebler

Mateus Raeder

Eduardo Baladão

Resolução de Sistemas Lineares Esparsos com Computação Verificada em Ambientes de Alto Desempenho

Time Jan/2010 - Jan/2012
Funding: CNPq
Abstract: A presente proposta de pesquisa está focada na utilização de técnicas de computação de alto desempenho para acelerar a resolução de Sistemas de Equações Lineares (SELAS) esparsos de grande porte que utilizem a Computação Verificada para garantir a correta representação numérica dos resultados obtidos.
Project Team

Luiz G. Fernandes

Coordenador

Mariana Kolberg

Cleber Milani

Viviane Linck lara

HPVC - Computação Verificada de Alto Desempenho

Time Jan/2008 - Jan/2009
Funding:
Abstract: Em problemas científicos e tecnológicos, a confiabilidade vem se tornando um requisito cada vez mais importante. Exemplos extremamente simples mostram que, devido à representação finita dos números, os resultados numéricos usando aritmética tradicional de ponto-flutuante podem estar completamente errados. A matemática intervalar permite a captura de incertezas na modelagem e formulação dos problemas, na estimativa dos parâmetros, em operações de arredondamento e na interpretação de modelos. Na resolução de sistemas de equações lineares, o controle sobre o erro gerado na computação apresenta-se como um requisito indispensável para obtenção de resultados corretos da solução dos problemas. A construção de solvers para tratamento de matrizes esparsas e de grande porte, representando um conjunto de equações lineares, utilizando computação verificada em ambientes de alto desempenho permite a resolução de problemas advindos das mais diferentes áreas do conhecimento, e que ainda necessitam alto poder de processamento e alta acurácia em seus resultados. Desta forma, a computação de alto desempenho juntamente com a verificação automática dos resultados apresenta-se como uma ferramenta chave para aplicações críticas oriundas de campos como a tecnologia espacial, bioinformática, engenharia automotiva ou validação de plantas nucleares sem experimentos físicos reais. Com intuito de tratar não somente problemas acadêmicos longe das restrições impostas pelas necessidades industriais, softwares de alta confiabilidade e eficiência devem ser desenvolvidos para arquiteturas paralelas. O principal resultado científico almejado, após a execução deste projeto, está focado em uma metodologia que possibilite a resolução de sistemas de equações lineares esparsos de grande porte com computação verificada em plataformas de alto desempenho. Esta metodologia representará uma ferramenta importante para pesquisadores de diferentes áreas científicas.
Project Team

Luiz G. Fernandes

Coordenador

Mateus Raeder

Mariana Kolberg

Dalcidio Claudio

Gerd Bohlender

Rudi Klatte

Vincent Heuveline

Walter Krämer

Markus Richter

Cleber Milani

PROPRIO - Análise de Perfil para Instrumentação de Rasterização Paralela Otimizada

Time Jan/2008 - Jan/2009
Funding:
Abstract: O objetivo deste projeto é de investigar novas técnicas de otimização que permitam acelerar o processo de rasterização de documentos previamente renderizados através do desenvolvimento de estratégias para alocar um conjunto de RIPs baseada na análise do perfil de jobs com conteúdo PDF (Portable Document Format). As principais dificuldades estão relacionadas à identificação de uma estratégia para assegurar o processamento dos jobs tirando o máximo proveito da capacidade do ambiente de impressão distribuído através de políticas de escalonamento de jobs. É necessário ainda assegurar que a prioridade dos jobs seja mantida e que o Provedor de Serviços de Impressão tenha flexibilidade para submeter pequenos jobs durante o processamento de jobs maiores.
Project Team

Luiz G. Fernandes

Coordenador

Thiago Nunes

Fabio Giannetti

Mariana Kolberg

Alexis Cabeda

Rafael Nemetz

Carolina Fonseca

Maiquel Breitenbach

FOP/MAUI - Alto Desempenho na Composição de Layouts para Impressão de Dados Variáveis de Perfil para Instrumentação de Rasterização Paralela Otimizada

Time Jan/2007 - Dec/2007
Funding:
Abstract: Este projeto pretende investigar a utilização de técnicas de alto desempenho para acelerar o processo de composição de layouts para impressão de dados variáveis. O maior desafio da pesquisa proposta neste projeto é conseguir produzir uma ferramenta auto-configurável capaz de identificar o melhor ambiente para renderização de um documento em função de suas características descritas no seu formato.
Project Team

Luiz G. Fernandes

Coordenador

Thiago Nunes

Mateus Raeder

Rafael Nemetz

ADR-VDP - Técnicas de Alto Desempenho para a Renderização de Documentos XSL-FO para VDP

Time Jan/2006 - Dec/2006
Funding:
Abstract: O principal objetivo deste projeto está diretamente relacionado à criação de uma ferramenta robusta, portável, escalável e com boa usabilidade para a renderização em paralelo de documentos VDP em ambientes de impressão industrial, (i.e., ambientes que precisem de alta vazão na renderização de documentos). A utilização de técnicas de construção de programas de alto desempenho dentro do contexto da área de Engenharia de Documentos pode ser considerada um segundo aspecto inovador desta pesquisa. O maior desafio da pesquisa proposta neste projeto é conseguir conduzir o processo de refinamento e investigação das otimizações a serem feitas na ferramenta FOP paralela de forma eficiente para que a mesma resulte em um produto concluído, testado e com desempenho satisfatório.
Project Team

Luiz G. Fernandes

Coordenador

Lucas Baldo

Thiago Nunes

Márcio Castro

SDE-FED - Simulação da Dinâmica de Elétrons em um Dispositivo FED Utilizando o Método de Elementos de Contorno

Time Jan/2005 - Dec/2005
Funding:
Abstract: Este projeto visa o desenvolvimento de um software de alto desempenho para simulação da dinâmica de elétrons em dispositivos FED que seja robusto e que forneça principalmente dados em uma boa concordância com os resultados experimentais obtidos. O principal objetivo é permitir o entendimento de características desejáveis para o dispositivo final auxiliando na modelagem de novas geometrias para a construção destes dispositivos.
Project Team

Luiz G. Fernandes

Coordenador

Marcelo Thielo

Márcio Soares

CAP - Centro de Pesquisa e Desenvolvimento de Aplicações Paralelas

Time Jan/2003 - Jan/2006
Funding:
Abstract: The Research and Development Center of Parallel Applications (CAP - PUCRS/HP Brazil) is dedicated to the study of high performance computing techniques and methodologies applied on the development of solutions for computational intensive applications. The CAP project has two main research lines: (a) support techniques for parallel programs design and (b) development of high performance applications for distributed memory architectures. (a) Support techniques for the design of parallel programs are not directly related to the parallel solution of a given problem, but they offer alternatives to simplify and optimize the process of developing parallel programs. In this scenario, the CAP team is interested in research topics like: (i) Analytical modeling of parallel programs using Stochastic Automata Networks (SAN); (ii) Formal verification of parallel and distributed programs properties using Objects-Based Graph Grammars (GGBO); (iii) Load-balancing algorithms for dynamic irregular applications over distributed memory platforms; (iv) Structural test methodologies for parallel programs. (b) The development of parallel applications for different categories of distributed memory architectures, such as heterogeneous clusters or computational grids, is another major research line of the CAP team. Our focus is the development of new high performance algorithms and/or programs for scientific or industrial problems using the message passing programming paradigm. Recently, the CAP group has been working on parallel solutions for the following applications: (i) Documents rendering tool for high speed printers (FOP - Formatting Objects Processor); (ii) Visualization of medical data for image-based diagnosis; (iii) Simulation of electrons trajectory on Field Emission Displays.
Project Team

Luiz G. Fernandes

Coordenador

Lucas Baldo

Pedro M. Velho

Gustavo Serra

Thiago Nunes

Mateus Raeder

Márcio Castro

Fabio Pasini

Odorico Mendizabal