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:
-
Fundamentação observacional, com levantamento de ferramentas, estudos de caso e práticas consolidadas.
-
Núcleo estruturante, com definição de critérios e métricas para avaliação das propriedades do triplo-e.
-
Organização do método, aplicando o modelo de avaliação sobre os casos estudados.
-
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.