Educação em Programação Paralela e Concorrente

Voltar para a página de pesquisa.

Tenho interesse em estudar como estudantes constroem a passagem da programação sequencial para a programação concorrente e paralela.

Essa passagem exige mais do que aprender bibliotecas ou diretivas. Ela envolve raciocinar sobre processos, threads, sincronização, memória compartilhada, troca de mensagens, decomposição de problemas, escalabilidade e medição de desempenho.

Nesta linha, programação paralela e concorrente aparece como tema técnico e também como problema de formação: como introduzir abstrações difíceis sem esconder seus custos, como conectar sistemas operacionais, arquitetura de computadores e algoritmos, e como evitar que ferramentas como OpenMP, MPI ou CUDA sejam ensinadas como receitas isoladas.

Possíveis frentes de trabalho

  • sequenciamento didático entre programação sequencial, threads, OpenMP, MPI e programação em GPU;
  • estudo de dificuldades recorrentes em sincronização, condições de corrida, deadlocks, comunicação e divisão de trabalho;
  • desenho de exercícios que conectem correção, desempenho, escalabilidade e análise experimental;
  • comparação entre abordagens de ensino baseadas em código, simulação, teste de mesa, visualização e experimentos em laboratório;
  • construção de trilhas introdutórias de computação paralela para estudantes com formações matemáticas e computacionais heterogêneas.

Fontes de orientação

Esta linha dialoga com materiais históricos da ERAD-RS sobre programação concorrente, OpenMP, MPI, CUDA, desempenho e ensino de processamento de alto desempenho.