Computação Paralela e Distribuída Ementa: Conceitos básicos de programação paralela. Introdução a concorrência e sincronização baseada em memória compartilhada (regiões críticas condicionais, semáforos e monitores) e distribuída (ambientes de passagem de mensagem assíncronos e síncronos). Chamada de Procedimento Remoto (RPC) e Rendezvous. Sistemas e Linguagens Concorrentes. Medidas de desempenho. Objetivo: Oportunizar ao acadêmico um conhecimento voltado a sistemas de alto desempenho, tornando-o capaz de planejar, implantar e gerenciar ambientes paralelos e distribuídos. Carga-horária: 60h Conteúdo programático: 1. Fundamentos básicos 1.1. Conceitos 1.2. Motivação para ambientes P&D 1.3. Aplicações de ambientes P&D 1.4. Classificação de arquiteturas 1.5. SMP (SymmetricMultiprocessing) 1.6. Cluster 1.7. Dependabilidade 2. Paralelismo e concorrência 2.1. Paralelismo temporal 2.2. Granularidade 2.3. Decomposição 2.4. Tarefas e canais 2.5. Visão geral da Comunicação 2.6. Medidas de desempenho 2.7. Algoritmos paralelos 2.8. Coerência de cache 2.9. Regiões críticas 2.10. Sincronização por semáforos 2.11. Sincronização por monitores 2.12. Rendezvouz; 2.13. RPC (Remote Procedure Call) 3. Cluster computacional 3.1. Classificação de agregados 3.2. Configurações 3.5. PVM (Parallel Virtual Machine) 3.6. MPI (Message Passing Interface) 3.7. Ambientes Middleware 4. Comunicação em Sistemas Distribuídos 4.1. Protocolos em camadas 4.2. Modelo cliente-servidor 4.3. Comunicação em grupo 5. Computação em Grade 5.1. Arquiteturas e topologias 5.2. Portais 5.3. Middlewares 5.4. Exemplos de ambientes de Grid Bibliografiabásica: COULOURIS, G. Distributed Systems: Concepts and Design. AddisonWesley, 2001. TOSCANI, Simão Sirineo; OLIVEIRA, Rômulo Silva; CARÍSSIMI, Alexandre da Silva. Sistemas Operacionais e Programação Concorrente. Porto Alegre: Sagra-Luzzatto, 2003. Bibliografia complementar: ANDREWS, Gregory R. Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, 2000. BAKER, Lou; SMITH, Bradley J. Parallel Programming.McGraw-Hill, 1996. BUYYA, Rajkumar. High Performance Cluster Computing: Architectures and Systems. Prentice Hall, 1999. CULLER, David E. Parallel Computer Architecture: hardware/software approach. Morgan Kaufmann, 1999. DONGARRA, et al. PVM: Parallel Virtual Machine a User’s Guide and Tutorial for Networked Parallel Computing. MIT Press, 1994. ERAD. Anais da Escola Regional de Alto Desempenho. GROPP, W.; LUSK, E. THAKUR, R. Using MPI-2: Advanced Features of the Message-Passing Interface. MIT Press, 1999. JALOTE, P. Fault Tolerance in Distributed Systems. Prentice-Hall, 1994.