Universidade de Brasília Brasília, 06 de Julho de 2026

Resumo do Componente Curricular

Dados Gerais do Componente Curricular
Tipo do Componente Curricular: DISCIPLINA
Unidade Responsável: PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIAS MECÂNICAS - PCMEC (11.01.01.11.04.01)
Código: PCMEC0232
Nome: PRINCÍPIOS DE PROGRAMAÇÃO PARALELA
Carga Horária Teórica: 60 h.
Carga Horária Prática: 0 h.
Carga Horária Total: 60 h.
Pré-Requisitos:
Co-Requisitos:
Equivalências:
Excluir da Avaliação Institucional: Não
Matriculável On-Line: Sim
Horário Flexível da Turma: Sim
Horário Flexível do Docente: Sim
Obrigatoriedade de Nota Final: Sim
Pode Criar Turma Sem Solicitação: Sim
Necessita de Orientador: Não
Exige Horário: Sim
Permite CH Compartilhada: Não
Permite Múltiplas Aprovações: Não
Quantidade de Avaliações: 1
Ementa: 1. Introdução: Evolução dos computadores. Programação sequencial e programação paralela. Diferentes arquiteturas dos processadores. Processadores com memória compartilhada. Processadores com memórias não compartilhadas. Placas gráficas. Processamento em placas gráficas. Taxonomia de Flym 2. Medidas de performance de computação paralela: Eficiência e ganho de velocidade (speedup). Lei de Amdahl. Lei de Gustafson-Barsis. Métrica de KarpFlatt. Métrica de isoeficiência. 3. Paralelização com memória compartilhada: O modelo de memória compartilhada. Programação paralela usando openmp: Um primeiro código openmp. Estruturas de repetição em paralelo. Condições de corrida. Seções críticas. Exemplos de códigos de programação paralela com openmp: soma dos elementos de um vetor, multiplicação vetor-vetor, multiplicação matriz-vetor, multiplicação matriz-matriz, resolução da equação de calor usando diferenças finitas. 4. Programação paralela com memória distribuída: O modelo de memória distribuída. Princípios do Message passing interface (MPI). A comunicação via mensagem entre os processadores. Distribuição dos dados nas memórias. Acesso aos dados. Exemplos de códigos de programação paralela com openmp: soma dos elementos de um vetor, multiplicação vetor-vetor, multiplicação matriz-vetor, multiplicação matriz-matriz, resolução da equação de calor usando diferenças finitas. 5. Processamento em placas gráficas: Os modelos de programação Cuda e opencl. Transferência de dados entre a CPU e a GPU. Exemplos de códigos de programação paralela com cuda: soma dos elementos de um vetor, multiplicação vetor-vetor, multiplicação matriz-vetor, multiplicação matriz-matriz, resolução da equação de calor usando diferenças finitas. 6. A biblioteca Petsc para programação paralela de métodos numéricos: Exemplos de programação com a biblioteca Petsc. Diferenças finitas e elementos finitos. 7. Programas opensource de elementos finitos com programação paralela: O programa Deal.ii. O programa Fenics.
Referências:
Currículos
Código Ano.Período de Implementação Matriz Curricular Obrigatória Período Ativo
6467/1 2017.1 CIÊNCIAS MECÂNICAS/PCMEC - Mestrado - Presencial Não 0 Sim
6475/1 2017.2 CIÊNCIAS MECÂNICAS/PCMEC - Doutorado - Presencial Não 0 Sim
6475/-2 2014.1 CIÊNCIAS MECÂNICAS/PCMEC - Doutorado - Presencial Não 0 Sim
6467/2 2023.2 CIÊNCIAS MECÂNICAS/PCMEC - Mestrado - Presencial Não 0 Sim
6475/2 2023.2 CIÊNCIAS MECÂNICAS/PCMEC - Doutorado - Presencial Não 0 Sim

SIGAA | Secretaria de Tecnologia da Informação - STI - (61) 3107-0102 | Copyright © 2006-2026 - UFRN - app03.sigaa03 v4.15.10.75