Computação Paralela 2002.2

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)

Objetivos

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. 

Ementa

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.

Carga Horária e Número de Vagas

A carga horária da disciplina é de 32 horas. Serão admitidos no máximo 10 alunos.

Público Alvo e Pré-requisitos

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.

Metodologia

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.

Avaliação

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.

Aulas

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

Artigos

Avaliação de Performance

Misleading Performance Reporting in the Supercomputing Field. David Bailey. RNR Technical Report RNR-92-005. Apresentado por Bruno.

Plataformas de Execução

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.

Modelos de Programação

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.

Aplicações

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.

Parallel I/O

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.

Artigos Usados em Anos Anteriores

Plataformas de Execução

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. 

Links Úteis

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.