Professor Walfredo Cirne
Aulas: Segunda 10:00-12:00, na sala de aula da Copin (bloco CN)
Atendimento: Terça 8:00-10:00, no LSD (bloco BB)
Este curso tem dois objetivos básicos. O primeiro é de familiarizar o aluno com as técnicas básicas de computação paralela, cobrindo fundamentos, aplicações e plataformas de execução. O segundo objetivo é expor o aluno ao estado-da-arte em computação paralela, explorando os tópicos de pesquisa mais "quentes" dentro da área.
A ementa desta disciplina consiste de Plataformas de Execução para Aplicações Paralelas (SMPs, DSMs, MPPs, NOWs, Grids), Modelos de Programação (troca de mensagens, memória compartilhada), Aplicações Paralelas Típicas (data parallel, lock-step, fine grain, coarse grain, data intensive, bag of tasks), e Avaliação de Desemproble de Aplicações Paralelas.
A carga horária da disciplina é de 32 horas. Serão admitidos no máximo 10 alunos.
Os pré-requisitos são bom conhecimento de redes de computadores e programação e conhecimento dos fundamentos de sistemas operacionais e sistemas distribuídos. O público alvo são todos os alunos que detenham os pré-requisitos e tenham interesse em conhecer o estado-da-arte em computação paralela.
Faremos aulas expositivas para cobrir as técnicas básicas de computação paralela. Tais aulas serão complementadas pela leitura de artigos na área, dando aos alunos um visão do estado da arte na área. Finalmente, faremos um projeto de aproximadamente 1 mês, o que dará chance aos alunos começarem a se envolver com pesquisa em computação paralela.
A avaliação consistirá de uma prova cobrindo o assunto apresentado em aulas, de um projeto, e da apresentação de um artigo. Note que quando o aluno não estiver apresentando o artigo do dia, ele precisa fazer ler o artigo antes da aula e me enviar um resumo de até uma página.
A avaliação está disponível aqui.
Aula 1: Computação Paralela como a principal forma de obter performance (muito) superior a um PC. Computação Paralela como uma sub-área de Computação Distribuída. Principais aspectos da Computação Paralela: Plataformas de Execução, Modelo de Programação e Aplicações.
Aula 2: MPI
Aula 3: MPI, Plataformas de Execução: SMPs, MPPs. NOWs e Grids
Aula 4: Threads
Misleading Performance Reporting in the Supercomputing Field. David Bailey. RNR Technical Report RNR-92-005. Apresentado por Bruno.
The Quest for a Zero Overhead Shared Memory Parallel Machine. G. Shah, A. Singla, U. Ramachandran. Proc. of 1995 International Conference on Parallel Processing. Apresentado por Airon.
Beowulf: Harnessing the Power of Parallelism in a Pile-of-PCs. Daniel Ridge, Donald Becker, Phillip Merkey, Thomas Sterling. Proceedings of IEEE Aerospace, 1997. Apresentado por Adriano.
A Case for Networks of Workstations: NOW. Thomas E. Anderson, David E. Culler, David A. Patterson, and the NOW Team. IEEE Micro, Feb, 1995. Apresentado por Andrey.
The Anatomy of the Grid: Enabling Scalable Virtual Organizations, I. Foster, C. Kesselman, S. Tuecke. To be published in Intl. J. Supercomputer Applications, 2001. Apresentado por Esther.
Efficient run-time support for irregular blockstructured applications, S. J. Fink, S. B. Baden, and S. R. Kohn, J. Parallel Distrib. Comput., vol. 50, pp. 61-62, April-May 1998. Apresentado por Wesley.
Cilk: An Efficient Multithreaded Runtime System, Robert D. Blumofe, Christopher F. Joerg, Charles E. Leiserson, Keith H. Randall, and Yuli Zhou. In 5th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming PPOPP '95. July 19-21, 1995, Santa Barbara, California, pp. 207-216. Apresentado por Fabiana.
Three Complementary Approaches to Parallelization of Local BLAST Service on Workstation Clusters. K. T. Pedretti, Th. L. Casavant, R. C. Braun, T. E. Scheetz, C. L. Birkett, C. A. Roberts. Parallel Computing Technologies, pp. 271-282, 1999. Apresentado por Damião.
Parallel Phylogenetic Inference. Quinn Snell, Michael Whiting, Mark Clement, David McLaughlin. Supercomputing´2000. Apresentado por Wellber.
Combining Workstations and Supercomputers to Support Grid Applications: The Parallel Tomography Experience. Shava Smallen, Walfredo Cirne, Jaime Frey, Francine Berman, Rich Wolski, Mei-Hui Su, Carl Kesselman, Steve Young, and Mark Ellisman. Proceedings of the HCW'2000 - Heterogeneous Computing Workshop, May 2000. Apresentado por Nazareno.
The Regional Atmospheric Modeling System (RAMS): Development for Parallel Processing Computer Architectures. Craig Tremback e Robert Walko. Apresentado por Raquel.
Server-directed collective I/O in Panda. K.E. Seamons, Y. Chen, P. Jones, J. Jozwiak, and M. Winslett. In Proceedings of Supercomputing '95, San Diego, CA, December 1995. IEEE Computer Society Press. Apresentado por Elizeu.
Serverless Network File Systems. Tom Anderson, Michael Dahlin, Jeanna Neefe, David Patterson, Drew Roselli, Randy Wang. 15th Symposium on Operating Systems Principles, ACM Transactions on Computer Systems, 1995. Apresentado por Lauro.
CRAY T90 vs. Tera MTA: The Old Champ Faces a New Challenger. Jay Boisseau, Larry Carter and Allan Snavely with David Callahan, John Feo, Simon Kahan and Zhijun Wu. Cray User's Group Conference, June, 1998.
Designing and Building Parallel Programs, excelente livro on-line escrito por Ian Foster.
OpenMP, o consórcio que define o padrão OpenMP, que permite a escrita de aplicações paralelas baseadas em memória compartilhada.
MPI Forum, o consórcio que define o padrão MPI, que permite a escrita de aplicações paralelas baseadas na troca de mensagens.
MPICH, a implementação portátil do MPI feita pelo Argonne National Lab.
Tutorial on MPI: The Message-Passing Interface, do Argonne National Laboratory.
Projeto Globus, que visa prover infra-estrutura para computação global.