Extensão

Introdução à Computação Paralela e de Alto Desempenho.(High Performance Computing)

Objetivo

O curso visa a introduzir os conceitos fundamentais e a prática de técnicas de programação paralela e de alto desempenho usando o Visual Studio 2013 Community Edition e a programação de propósito geral em processadores gráficos (GPU – C CUDA).

O curso aborda as principais técnicas de programação paralela e visa à codificação de aplicações de alto desempenho computacional a partir, também, do conhecimento básico da arquitetura da plataforma computacional explorada (PCs Intel x64 com placas gráficas Nvidia). O uso das técnicas é sempre exemplificado com estudos de caso como, por exemplo, Big Data, Data Mining e computação técnica e científica, a partir da codificação de programas em Visual Studio e em CUDA. Ao final do curso, espera-se que o aluno tenha em mãos um arcabouço ferramental no formato de códigos fonte que possam ser facilmente adaptados aos seus casos reais.

Programação do curso

  • Introdução à arquitetura básica de computadores.
    • CPU, memórias, unidades de processamento.
    • Tipos primitivos: inteiro, ponto flutuante.

  • Computação de Alto Desempenho
    • Conceito de FLOPS (Floating Point Operations per Second).
    • Otimização de códigos sequenciais.
    • Computadores paralelos.
    • Processadores multi-core e many-core.
    • Configuração otimizada de compiladores.

  • Computação Paralela
    • Multiprocessamento paralelo.
    • Conceitos básicos de computação distribuída (cluster, grid e cloud)
    • Algoritmos paralelos.
    • Programação paralela por threads (OpenMP) e por mensagens (MPI).
    • Medição do desempenho de programas paralelos.
    • Programação de propósito geral em processadores gráficos (GPU – C CUDA).
    • Big Data

  • Estudos de casos
    • Seleção de estudos de caso para exemplificar as técnicas estudadas no curso.

  • Considerações finais
    • O que fazer agora?
    • O que ler?
    • Como me especializar?

Aulas com apresentação de slides do tipo PowerPoint em paralelo com abordagem "hands-on", com uso simultâneo do Visual Studio para exemplificar os conceitos e executar os programas codificados em aula. Os arquivos relativos aos códigos fonte serão fornecidos aos alunos para uso posterior livre, o que permitirá ao aluno ter um bom ferramental para uso próprio.