Você está na página 1de 2

Plano de Ensino

Nome do componente curricular: Programação Paralela e Concorrente Semestre/Ano de oferta: 2020-1


Código do componente curricular: GCC177
Nome do(s) docente(s) responsável(is): Marluce Rodrigues Pereira
Nome do(s) docente(s) alocado(s):
Carga horária (CH) total:
68 CH Teórica: 34 CH Prática: 34
Pré-requisito forte GCC116 Sistemas Operacionais

Ementa
Concorrência e Sincronização de Processos. Projeto de algoritmos paralelos. Programação para Plataformas de Memória Compartilhada. Programação Usando Paradigma de Passagem de
Mensagens. Análise de desempenho.

Objetivos

Ao final dessa disciplina pretende-se que o aluno tenha desenvolvido as seguintes competências: resolver problemas usando ambiente de programação paralela; conhecer as bibliotecas de
paralelização existentes e como funcionam; avaliar criticamente projetos de sistemas de computação (avaliação de desempenho); especificar, projetar, implementar,manter, avaliar e inovar
sistemas de computação, empregando teorias, práticas e ferramentas adequadas à infraestrutura de hardware disponível.

Metodologia

A disciplina será ofertada no formato de ERE (Ensino Remoto Emergencial). Prevê-se a realização de 10 semanas letivas no formato remoto, com a
aplicação de cinco Roteiro de Estudos Orientados (REO), a serem desenvolvidos quinzenalmente. Serão aplicadas atividades avaliativas em cada REO. As avaliações serão baseadas em
questionários e atividades práticas
individuais, envolvendo o desenvolvimento de programas. Assim como, no final do semestre, com o retorno das aulas presenciais, será
aplicada uma última atividade avaliativa no formato de prova presencial.
Aferição de frequência: não serão empregados mecanismos de aferição de frequência neste semestre.

Avaliação

A avaliação será realizada através de 5 atividades avaliativas (12% cada) a serem resolvidas individualmente e entregues ao final de cada quinzena. Ao final do semestre haverá uma prova
presencial valendo 40%.

Conforme apresentada no Art. 126 da Resolução CEPE 473 de 2018, se prevê a aplicação da Avaliação Adicional presencialmente ao final do semestre.

Referências Bibliográficas Básicas


Tipo de publicação
Título da referência Autor Editora Ano Impresso Digital
B1 - CUDA application design and
development FARBER, Rob. Morgan Kaufmann 2011 x x
GRAMA, A., Gupta, A.,
Karypis, G. and Kumar,
B2 - Introduction to Parallel Computing V. Addison Wesley. 2003 x x
B3 - Parallel Programming in C with MPI
and OpenMP. MICHAEL, J. Quinn. McGraw-Hill 2004 x x

Referências Bibliográficas Complementares


C1- Parallel and Distributed Programming HUGHES, C. and
Using C++ Hughes, T. Addison Wesley. 2004

C2- Programming massively parallel KIRK, David; HWU,


processors: a hands-on approach Wen-mei. Morgan Kaufmann 2013
C3- Parallel Programming with MPI.
Morgan Kaufman Publishers, Inc. PACHECO, P. Morgan Kaufmann 1997
C4- Parallel programming: for multicore RAUBER, Thomas;
and cluster systems RÜNGER, Gudula. Springer 2013
C5 - Parallel programming: for multicore SANDERS, Jason;
and cluster systems KANDROT, Edward. Addison-Wesley 2011
C6-Interprocess Communications in
Linux®: The Nooks & Crannies GRAY, John Shapley Prentice Hall 2003 Pdf online
TANEMBAUM, Andrew Digital na
C7- Sistemas Operacionais Modernos S.; BOS, Herbert Pearson Education 2016 biblioteca virtual

Cronograma de Atividades
05/03/2020 Apresentação da disciplina, metodologia de ensino, avaliações.
06/03/2020 História da computação paralela. Conceitos de concorrência, processos e threads.
Aulas presenciais antes
da pandemia Modelos de memória compartilhada e distribuída: Modelo PRAM, Taxonomia de Flynn,
12/03/2020 Cluster.
13/03/2020 Programação de processos com fork.
01/06/2020 ERE: Revisão dos conteúdos anteriores.
Quinzena 1 ERE: Interprocess Communication: conceito de pipes, programação de pipes. Exclusão
08/06/2020 mútua, deadlock, semáforos e barreiras
15/06/2020 ERE: Entrega de Lista Avaliativa 1 (12%)
ERE: Projetos de algoritmos paralelos: conceitos de decomposição, tarefa, grafo de
15/06/2020 dependência, concorrência, processo e mapeamento.
Quinzena 2
ERE:Decomposição de tarefas e mapeamento de threads e processos, balanceamento
22/06/2020 de carga
29/06/2020 ERE: Entrega de Lista Avaliativa 2 (12%)
29/06/2020 ERE:Programação para memória compartilhada com Posix Threads (Pthreads)
Quinzena 3
06/07/2020 ERE: Programação para memória compartilhada com OpenMP
13/07/2020 ERE: Entrega de Lista Avaliativa 3 (12%)
ERE: Avaliação de desempenho: Tempo de execução, speedup, eficiência, Lei de
Quinzena 4 13/07/2020 Amdahl, escalabilidade
20/07/2020 ERE: Programação para GPU
27/07/2020 ERE: Entrega de Lista Avaliativa 4 (12%)
27/07/2020 ERE: Programação por passagem de mensagens
Quinzena 5
03/08/2020 ERE: Programação para grandes volumes de dados
08/08/2020 ERE: Entrega de Lista Avaliativa 5 (12%)
Presencial - Semana 1 13/08/2020 Revisão presencial dos conteúdos
Presencial - Semana 2 20/08/2020 Revisão presencial dos conteúdos
Presencial - Semana 3 28/08/2020 Atividade Avaliativa Presencial (40%)
Presencial - Semana 4 03/09/2020 Tira dúvidas
Avaliação adicional nos termos do art. 126 da Resolução CEPE 473/2018 (data
11/09/2020 sugerida, passível de alteração).

Você também pode gostar