ELC139 - Programação Paralela
Primeiro semestre de 2012
Professora: Andrea Schwertner Charão
Carga horária: 60h
Horários: terças e quintas-feiras, das 10:30 às 12:30 (sala 267/CT)
Planejamento
- Plano de ensino (PDF): objetivos, programa, metodologia, avaliação e bibliografia relativos a esta disciplina.
Exercícios e Trabalhos
- Arquiteturas paralelas (até segunda-feira, 08/04, 23:59): cada aluno deverá pesquisar informações sobre duas arquiteturas paralelas reais, de diferentes fabricantes, e elaborar um comparativo para descrição na próxima aula. Critérios de comparação: recursos de processamento e recursos de armazenamento. Colocar material no portfolio, conforme orientações na página da disciplina.
- Experiências com profilers (até terça-feira, 16/04, 10:30)
- Programação multithread (até segunda-feira, 29/04, 23:59)
- Quebra de senhas distribuída (entrega em partes)
Slides
Avaliações
- A avaliação será feita através da análise do portfolio que cada aluno construirá para a disciplina, a partir de exercícios e trabalhos propostos pela professora.
- Alunos que não atingirem média 7,0 na avaliação dos portfolios deverão realizar uma avaliação final (exame) no dia 06/08/2013.
Portfolios
- O portfolio de cada aluno deverá estar publicamente acessível em:
http://www.inf.ufsm.br/~aluno/elc139(ondealunoé o seu identificador de usuário no NCC). Quem quiser pode redirecionar esta URL para um site externo. - O portfolio deve conter:
- Identificação: nome do aluno, nome da disciplina, semestre (1/2013), link para a página da disciplina
- Índice: índice dos componentes do portfolio
- Componentes: exercícios e trabalhos desenvolvidos. Para cada componente, explicitar:
- Título e data
- Motivação, levando em conta objetivos da disciplina
- Descrição do desenvolvimento: como foi feito, que ferramentas e recursos foram usados, fontes de consulta, bibliografia comentada, etc.
- Resultado: evidências da realização (incluindo código-fonte, diagramas e documentação técnica, quando for o caso)
- Reflexão: o que foi aprendido, que dificuldades foram encontradas, o que poderia ser feito diferente, perspectivas e implicações para o futuro, relacionamento com outras disciplinas, áreas e conteúdos, etc.
- Portfolios de ex-alunos: grahl, cicerolp, henz
Bibliografia
OpenMP
- OpenMP: Simple, Portable, Scalable SMP Programming
Página oficial do padrão OpenMP. - OpenMP Tutorial
Tutorial sobre OpenMP, com descrição de diretivas, funcionamento e exemplos de programas. - An Overview of OpenMP
Visão geral de OpenMP (slides). - Summary of OpenMP 3.0 C/C++ Syntax
Cartão de referência de recursos OpenMP.
Livros de programação paralela
- Wilkinson, B.; Allen, M. Parallel programming: techniques and applications using networked workstations and parallel computers. Upper Saddle River, New Jersey: Prentice-Hall, 2004. Material de apoio disponível em: http://www.cs.uncc.edu/~abw/parallel/par_prog/index.htm
- Foster, I. Designing and building parallel programs: concepts and tools for parallel software engineering. Reading, Massachussets: Addison-Wesley, 1995. Disponível em: http://www-unix.mcs.anl.gov/dbpp (antigo, mas ainda relevante, principalmente na parte sobre conceitos).
- CRAD-RS (Comissão Regional de Alto Desempenho - RS). Caderno dos Cursos Permanentes. Porto Alegre: SBC, 2006.
Arquiteturas de computadores paralelos
- Barroso, L. A.; Dean, J.; Hölzle, U. Web Search for a Planet: the Google Cluster Architecture. IEEE Micro, v. 23, n. 2, 2003. Disponível no IEEE Xplore (acesso na UFSM via Portal de Periódicos da CAPES)
- Flynn, M. J.; Rudd, K. W. Parallel Architectures. ACM Computing Surveys, v. 28, n.1, 1996. Disponível na ACM Digital Library (acesso na UFSM via Portal de Periódicos da CAPES) ou através do CiteSeer
- Baker, M. Cluster Computing White Paper. IEEE Computer Society Task Force on Cluster Computing. 2001. Disponível em: http://www.hpdc.syr.edu/~chapin/papers/pdf/ieee_tfcc_wp_clustercomputing.pdf
Desempenho de programas e computadores paralelos
- Bailey, D. H. Twelve Ways to Fool the Masses When Giving Performance Results on Parallel Computers, Supercomputing Review, Aug. 1991. Disponível em: http://crd.lbl.gov/~dhbailey/dhbpapers/twelve-ways.pdf
- Gustafson, J. L. Reevaluating Amdahl's Law. Communications of the ACM, v.31, n.5, 1988. Disponível através da ACM Digital Library (acesso na UFSM via Portal de Periódicos da CAPES)
Abordagens de programação paralela
- Cappello, F.; Etiemble, D. MPI versus MPI+OpenMP on IBM SP for the NAS Benchmarks. Supercomputing 2000, November, Dallas. Disponível em: http://www.sc2000.org/techpapr/papers/pap.pap214.pdf
- Smith, L.; Bull, M. Development of Mixed Mode MPI / OpenMP Applications. Scientific Programming, vol. 9, no. 2-3, pp. 83-98, 2001. Disponível em: http://www2.epcc.ed.ac.uk/~markb/docs/sci_prog01.pdf
- Gorlatch, S. Send-receive considered harmful: Myths and realities of message passing. ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 26, n. 1, pp. 47-56, 2004. Disponível em: http://portal.acm.org/citation.cfm?id=963780 (acesso na UFSM via Portal de Periódicos da CAPES).
- Skillicorn, D.B.; Talai, D. Models and languages for parallel computation. ACM Computing Surveys, v. 30, n. 2, pp. 123-169, 1998.