MC-SD03-IV
Programação avançada em Aceleradores com Diretivas

Professor: Pedro Pais Lopes (Exaflop)

Horarios: Terça 19/01 de 13:30h às 17:30h

Objetivo: Processadores com centenas a milhares de núcleos de processamento estão presentes no cotidiano da computação. Este número expressivo de núcleos estão em placas gráficas (denominadas GPUs) como também em aceleradores x86 (como os Xeon Phi) ou mesmo em chips ARM, com arquiteturas complexas de acesso a memória e de operações de ponto flutuante. A programação para utilizar este grande poder de processamento pode envolver linguagens especializadas, o que demanda profunda modificação do programa e possivelmente redução da sua portabilidade. Padrões de programação baseadas em diretivas, amplamente utilizadas para expor paralelismo em arquitetura de memória central, surgiram ou foram expandidos para permitir expor o paralelismo destes processadores massivamente paralelos.
Neste minicurso serão tratados os padrões existentes (OpenACC e OpenMP v4.5), suas principais diretivas, compiladores com suporte a estes padrões e desempenho obtido em aplicações simples em algumas arquiteturas (GPU, CPU multicore e Xeon Phi).

Ementa:
  1. Introdução aos conceitos de processamento paralelo
  2. Diretivas de compilação
  3. Formato de diretivas
  4. Condicional de compilação
  5. Construtores paralelos
  6. Construtores de compartilhamento de trabalho
  7. Construtores combinados
  8. Clausulas
  9. Diretivas de sincronização
  10. Funções de ambiente de execução
  11. Funções de bloqueio
  12. Funções do tempo
  13. Variáveis de ambiente.
  14. Escoamento monofásico