14–31 Oct 2024
Porto & Évora, Portugal
Europe/Lisbon timezone

Programa

Módulo 1: Introdução à Computação Paralela e Configuração do Ambiente (2 horas) 

  • Apresentação do curso e dos objetivos
  • Conceitos básicos de programação em Fortran
  • História e evolução da computação paralela
  • Introdução à computação paralela
  • Configuração do ambiente de desenvolvimento
  • Instalação e configuração do OpenMP
  • Exercícios práticos e discussão em grupo
  • Fazer o Hello World do OpenMP que será explicado melhor no próximo módulo 

Módulo 2: Fundamentos do OpenMP e Memória Partilhada (2 horas) 

  • O que é OpenMP? 
  • História do OpenMP 
  • Por que OpenMP? 
  • O que é Memória Partilhada? 
  • Vantagens da Memória Partilhada 
  • Desafios da Memória Partilhada 
  • Componentes de um Programa OpenMP 
  • Diretivas OpenMP 
  • Estrutura de um Programa OpenMP 
  • Paralelizando Loops 
  • Desafios Comuns do OpenMP
  • Boas Práticas 
  • Lista de Exercícios práticos e discussão em grupo 

Módulo 3: Sincronização e Gerenciamento de Variáveis em OpenMP (2 horas) 

  • Sincronização de Threads 
  • Exemplo Prático: Sincronização 
  • Variáveis Privadas e Compartilhadas 
  • Exemplo Prático: Variáveis Privadas
  • Gerenciamento de Threads
  • Exemplo Prático: Escalonamento 
  • Lista de Exercícios práticos e discussão em grupo

Módulo 4: Tópicos Avançados em OpenMP (2 horas) 

  • Redução de Dados 
  • Exemplo Prático: Redução de Dados 
  • Secções e Tarefas
  • Exemplo Prático: Secções
  • Exemplo Prático: Tarefas
  • Funções de Runtime do OpenMP
  • Lista de Exercícios práticos e discussão em grupo

Módulo 5: Aplicação Prática - Problemas Simples de Computação Paralela (2 horas) 

  • Introdução a problemas simples que podem beneficiar da computação paralela.
  • Implementação passo a passo de algoritmos simples, como ordenação paralela ou busca em paralelo, utilizando OpenMP. 
  • Discussão dos resultados e comparação com implementações series. 
  • Lista de Exercícios práticos e discussão em grupo, focando em problemas que os formandos possam encontrar em suas atividades diárias. 

Módulo 6: Projeto Final e Avaliação (2 horas) 

  • Revisão detalhada dos conceitos aprendidos em cada módulo. 
  • Apresentação de um problema real que possa ser resolvido com OpenMP, como otimização de um algoritmo existente ou paralelização de uma tarefa computacional comum. 
  • Orientações para o desenvolvimento do projeto final, incluindo critérios de avaliação e expectativas. 
  • Tempo dedicado para o início do projeto final, com suporte do instrutor.