Programação
Informações Gerais da SSC0143- Programação Concorrente (2017/2) BCC - TA e TB
Este arquivo contem o conteúdo apresentado na primeira aula do curso.
Tem os objetivos, programa a ser cumprido, sistema de avaliação, datas das provas bimestrais e data da prova de recuperação.
Contem também os dados para contato com o professor.
A disciplina tem alunos PAE: Gesiel Rios e Davi Conte.
Entre em contato com ele através dos emails:
gesielrios@gmail.com
davi.j.conte@gmail.com
Horário de atendimento: quarta-feira 16h-18h.
Os atendimentos ocorrerão primeiramente via chat. Caso necessário, serão agendados encontros presenciais nas salas de atendimento PAE.
Prova de Recuperação: 07/02/2018 às 09:00h no ICMC (Campus 1) - Sala 5-002
Os grupos devem ter quatro participantes.
Se você ainda não tem grupo, procure o professor responsável e informe o grupo a que pertence.
Os grupos devem ter quatro participantes.
Se você ainda não tem grupo, procure o professor responsável e informe o grupo a que pertence.
Revisão das Notas (AB2) na Terça, dia 19/12, às 14:00h, na sala 4-136.
Reforçando: a Data da REC já está definida. Vide acima.
Revisão das Notas (AB2) na Terça, dia 19/12, às 14:00h, na sala 4-136.
Reforçando: a Data da REC já está definida. Vide acima.
Apresentação da disciplina. Introdução à Programação Concorrente. Conceitos Essenciais. Arquiteturas Paralelas.
Conteúdo ministrado:
Introdução e Conceitos Essenciais e Revisão de Arquitetura de Computadores Paralelos
Referências:
Caps 01/02/03 Livro Rauber & Rünger
Cap 01/02 Livro Pacheco
Cap 02 Livro Grama
Para Arquiteturas Paralelas, veja também os capítulos finais (sobre Arquiteturas Paralelas) dos livros de Organização & Arquitetura de Computadores de Stallings e de Tanenbaum.
Leitura deste artigo que descreve a origem da Programação Concorrente.
Não precisa entregar nada nesta atividade (resumo/relatório/resenha/...).
Ela apenas é requerida ao aluno e faz parte do conteúdo da disciplina, podendo ser solicitada nas provas.
Desenvolvimento de Aplicações Concorrentes
Metodologias para o Desenvolvimento de Aplicações ConcorrentesConceitos preliminares
Técnicas de Decomposição do Problema em Tarefas Concorrentes
Mapeamento de Tarefas Concorrentes em Processos Concorrentes
Características Importantes de Processos e suas Interações ao Mapeamento
Técnicas de Mapeamento para Balanceamento de Carga e para Redução da Sobrecarga com Interações
Modelos de Programas Concorrentes
Referencias: Grama, Foster, Pacheco e Rauber & Runger.
Ferramentas para Programação Paralela
Gerência de processos & Interações.
Modelos de Programação com Passagem de Mensagens, Memória Compartilhada e CUDA.
Desenv. Apl. Conc. Mem. Compartilhada: Pthreads/OpenMP
Revisão de alguns dos principais aspectos de C/PThreads estudados em Sistemas Operacionais.
Detalhes da codificação em C com OpenMP.
Referências: Grama, Foster, Pacheco e Rauber & Runger.
Desenvolvimento de Aplicações Concorrentes com Passagem de Mensagens: MPI
Modelo de programação com passagem de mensagens usando C e MPI
Referências: Grama, Foster, Pacheco e Rauber & Runger.
Programação com Processadores Heterogêneos: CUDA
Referências para estudo:
(Conteúdo da 1a aula de GPU/CUDA)
Hennessy J. L; Patterson, D.A. Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. 5th ed., 2011. (Appendix C - sobre GPU/CUDA)
Outras referências:
Kirk, D. B.; Hwu W.W. Programming Massively Parallel Processrs: a hands-on approach. Morgan Kaufmann Publishers Inc. NVDIA. 2nd ed. 2013.
NVIDIA, CUDA Runtime API - API Reference Manual. v8.0, Feb, 2016.
Fatahalian, K.; Houston, M. A closer look at GPUs. Commun. ACM 51, 10 (October 2008), 50-57, 2008. DOI: https://doi.org/10.1145/1400181.1400197
Teste de Software para Programas Concorrentes
Slides das aulas de teste de programas concorrentes.
Livro recomendado: Delamaro, M.; Maldonado, J.; Jino, M. Introdução ao teste de software. Elsevier, 2007.