Início do conteúdo
Triplo-E

O triplo-e da programação concorrente e paralela

Expressividade, eficácia e eficiência

Este projeto investiga como diferentes ferramentas e linguagens de programação exploram os recursos de concorrência e paralelismo oferecidos pelas arquiteturas modernas de hardware, considerando três propriedades centrais: expressividade, eficácia e eficiência.

A motivação parte de uma constatação recorrente na literatura científica e no ensino de Computação: embora arquiteturas contemporâneas ofereçam múltiplos níveis de paralelismo, desde o paralelismo intra-instrução até arquiteturas manycore e GPUs, esse potencial é frequentemente subexplorado no desenvolvimento de software.

Objetivo do projeto

O objetivo central é desenvolver um método sistemático de avaliação de ferramentas para programação concorrente e paralela, permitindo classificá-las de acordo com sua capacidade de descrever, executar e sustentar aplicações paralelas de forma adequada às exigências do problema.

Esse método se baseia na caracterização quantitativa e qualitativa dos recursos de programação oferecidos pelas ferramentas, resultando em um modelo comparativo que apoia a escolha consciente de linguagens, bibliotecas e abstrações de paralelismo.

Abordagem adotada

O projeto combina:

  • revisão sistemática da literatura científica;

  • mineração de repositórios públicos de software;

  • análise de estudos de caso acadêmicos e industriais;

  • avaliação de benchmarks clássicos de computação paralela.

A análise considera diferentes níveis de paralelismo, incluindo paralelismo de dados, de tarefas, multithreading e GPGPU, sempre no contexto de arquiteturas multiprocessadas.

Metodologia

A metodologia está organizada em quatro grandes etapas:

  1. Fundamentação observacional, com levantamento de ferramentas, estudos de caso e práticas consolidadas.

  2. Núcleo estruturante, com definição de critérios e métricas para avaliação das propriedades do triplo-e.

  3. Organização do método, aplicando o modelo de avaliação sobre os casos estudados.

  4. Consolidação dos resultados, com refino do método e disponibilização do ferramental desenvolvido.

O modelo de análise é estruturado a partir do paradigma GQM (Goal, Question, Metric), amplamente utilizado em Engenharia de Software.

Resultados esperados

Entre os principais resultados esperados estão:

  • proposição de um método objetivo para seleção de ferramentas de programação concorrente e paralela;

  • produção de artigos científicos e estudos comparativos;

  • desenvolvimento de ferramentas de apoio à análise automatizada de programas;

  • produção de material didático para disciplinas de graduação e pós-graduação;

  • formação qualificada de estudantes em programação concorrente e paralela.

Impacto acadêmico e formativo

Além das contribuições científicas, o projeto possui forte integração com o ensino, incorporando suas atividades em disciplinas da área de Computação. Essa integração favorece a formação de profissionais capazes de compreender e explorar, de forma consciente, os diferentes níveis de paralelismo disponíveis no hardware contemporâneo.

O projeto está vinculado ao Laboratory of Ubiquitous and Parallel Systems (LUPS) e à linha de pesquisa em Linguagens para Programação Paralela e Distribuída.