MC-SD02-III
Introdução à Programação Paralela e Vetorial

Professor: Matheus Serpa (UFRGS)

Horarios: Quarta 20/01 de 08:00h às 12:00h

Objetivo: Tradicionalmente o aumento de desempenho das aplicações se dava de forma transparente aos programadores devido ao aumento do paralelismo a nível de instruções e aumento de frequência dos processadores. Entretanto, este modelo não se sustenta mais. Atualmente para se ganhar desempenho nas arquiteturas modernas, é necessário conhecimentos sobre programação paralela e programação vetorial. Ambos paradigmas são tratados de forma lateral em cursos de computação, sendo que muitas vezes nem são abordados. Neste contexto, este minicurso objetiva propiciar um maior entendimento sobre os paradigmas de programação paralela e vetorial, de forma que os participantes aprendam a otimizar adequadamente suas aplicações para arquiteturas modernas. Como plataforma de desenvolvimento, serão utilizados os processadores Intel Xeon do SDumont.

Ementa:
  1. Fundamentos e tecnologias
  2. Introdução ao OpenMP
  3. Introdução a Programação Vetorial (SIMD)
  4. Programação OpenMP/SIMD com Intel Xeon
  5. Estudo de caso com aplicações reais

Pré-requisitos:
  1. Conhecimentos básicos em C
  2. Conhecimentos básicos em Linux

Bibliografia:
  1. SERPA, Matheus; SCHEPKE, Claudio. Programação Paralela em Memória Compartilhada e Avaliação de Desempenho com Contadores de Hardware, 2019. https://doi.org/10.5753/sbc.4400.9.3;
  2. CHAPMAN, Barbara; JOST, Gabriele; VAN DER PAS, Ruud. Using OpenMP: portable shared memory parallel programming. MIT press, 2008.
  3. OPENMP, A. R. B. Openmp application program interface v5.0.1. OpenMP Architecture Review Board, 2020. http://openmp.org/