PROGRAMAÇÃO PARALELA E DISTRIBUÍDA

Obrigatória: Não

Carga Horária: 60

Créditos: 4

OBJETIVOS:
Estudo dos principais modelos e metodologias para o desenvolvimento de
sistemas paralelos e distribuídos.

EMENTA:
Principais algoritmos paralelos e distribuídos (mestre-escravo, cliente-servidor, peer-to-peer, bag of tasks, ...). Programação com memória compartilhada e troca de mensagens: comunicação e sincronização. Análise e escalonamento de programas paralelos e distribuídos. Ambientes e bibliotecas para programação paralela e distribuída. Mobilidade de código e pervasividade. Estudo de casos.

PROGRAMA:
1. Comunicação e sincronização
1.1 Memória compartilhada
1.2 Troca de mensagens
1.3 Ambientes e bibliotecas
2. Algoritmos paralelos e distribuídos
2.1 Mestre-escravo
2.2 Cliente-servidor
2.3 Peer-to-Peer
2.4 Bag of tasks
3. Escalonamento e gerência de recursos
3.1 Sistemas paralelos
3.2 Sistemas distribuídos
4. Mobilidade e pervasividade
4.1 Mobilidade de hardware
4.2 Mobilidade de software
4.3 Sensibilidade ao contexto
5. Estudo de casos

Bibliografia:
Baker, L. Parallel Programming. New York: McGraw-Hill, 1996.

Colouris, G. et al. Distributed Systems: concepts and design. New York: Addison-Wesley, 1996.

Chow, R.; Johnson, T. Distributed Operating Systems and Algorithms. Addison-Wesley, 1997.

Dongarra, J. The Sourcebook of Parallel Computing. 2002.

Foster, I. Designing and Bulding Parallel Programs. Addison-Wesley, 1995.

Foster, I. The Grid 2: Blueprint for a New Computing Infrastructure. 2003.

Gropp,W.; Lusk,E.; Thakur,R.; Skjellum, A. Using MPI-2: Advanced Features of the Message Passing Interface. 2000.

Grama, A.; Karypis, G.; Kumar, V.; Gupta, A. An Introduction to Parallel Computing: Design and Analysis of Algorithms, Second Edition. 2003.

Hansmann,U.; L Merk, M. Nicklous, T. Stober. Pervasive Computing 2nd Edition. 2003.

Karniadakis, G.; Kirby, R.M. II. Parallel Scientific Computing in C++ and MPI : A Seamless Approach to Parallel Algorithms and their Implementation. 2003.

Milojicic, D.S.; Milojicic,D.; Douglis, F. Mobility: Processes Computers and Agents. 1999.

Pacheco, P. S. Parallel Programming with MPI. Morgan Kaufmann, 1997.

Ryan, T. W. Distributed Object Technology: concepts and applications. New Jersey: Prentice-Hall, 1997.

Salmre, I. Writing Mobile Code: Essential Software Engineering for Building Mobile Applications. 2005.

Wilkinson, B.; Allen, M. Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. 2004.

Zomaya, A. Y. H. Parallel and Distributed Handbook. New York: McGraw-Hill, 1996.