CMP157 - ProgramaDaDisciplina

From Gppd-wiki

Jump to: navigation, search

Contents

CMP157 - Programação Distribuída e Paralela

OBJETIVOS:

  • O objetivo principal da disciplina é a apresentação de determinados tópicos atuais da pesquisa em programação distribuída e paralela. Algoritmos distribuídos são apresentados, usando os modelos síncrono, assíncrono e parcialmente síncrono, e caracterizando as complexidades em passos e em tempo, e algumas impossibilidades ([LYN 1996]). Uma introdução ao escalonamento em sistemas distribuídos é realizada, abordando uma taxonomia, e algumas regras e técnicas para obtenção do resultados próximos do ótimo em certos modelos como o modelo OU e os heterogêneos. Conceitos, modelos e técnicas de computação em grade, computação pervasiva e P2P são apresentados e discutidos. Algumas propostas e resultados de projetos de pesquisa em andamento no PPGC são apresentados e analisados.


SERIAÇÃO:

  • Carga Horária: 60 horas-aula
  • Créditos: 4 (quatro)
  • Semestre: XX/2

PROFESSORES

  • Cláudio Geyer ( geyer at inf.ufrgs.br )

SÚMULA:

  • Revisão de conceitos básicos de PDP e de sistemas distribuídos. Algoritmos Distribuídos (a la Lynch). Grade: conceitos e casos. Computação na Nuvem: conceitos e casos. Computação na Nuvem: conceitos e casos. Escalonamento: conceitos, modelo OU e casos. Projetos: Grade e Computação Ubíqua.

CONTEÚDOS PROGRAMÁTICOS:

  • 1. Revisão de:
    • Sistemas distribuídos e paralelos: conceituação, tipos;
    • Introdução às aplicações distribuídas;
    • Expressão da concorrência;
    • Comunicação e sincronização.
  • 2. Algoritmos distribuídos
    • modelo síncrono: especificação, notação, vantagens e características; exemplos: escolha de líder em anel
    • modelo assíncrono: especificação, notação, vantagens e características
    • modelo assíncrono para redes: especificação, notação; exemplos: algoritmos em grafos: geração de árvore, difusão, coleta, detecção de término, instantâneos, ...
    • modelo parcialmente síncrono: especificação, notação, vantagens e características; exemplo sintético
    • em todos os exemplos: especificação (código) por autômato; complexidade em passos e em tempo
  • 3. Computação na Nuvem, em Grade e Pervasiva
    • conceitos, casos e exemplos de middleware
  • 4. Escalonamento em sistemas distribuídos
    • conceitos e classificação de Casavant
    • modelo OU dinâmico: especificação, paralelização, condições mínimas, técnicas para próximo do ótimo, arquiteturas de escalonadores
    • técnicas para sistemas heterogêneos e dinâmicos: time-goal, estatísticos, ...
  • 5. Tópicos de projetos em sistemas distribuídos e paralelos do GPPD (lista de possíveis temas)
    • Comunicação em Grupo para Internet
    • Map Reduce para ambientes híbridos (cloud, cluster e voluntário; predição de desempenho; melhor dependabilidade; Simulação de Hadoop
    • Avaliação de Desempenho de plataformas para processamento de eventos distribuídos (Storm, Spark, ...)
    • Detector de Falhas Perfeito
    • Componentes e Serviços para Computação Sensível a Contexto
    • ISAMAdapt: conceitos e modelo de linguagem com adaptação
    • Modelo Mestre/Escravos para desenvolvimento de aplicações em grade (Exehda)
    • PerDis: descoberta de recursos em CG e CP
    • Dimi: difusão por software em CG e CP
    • Grand e AppMan: escalonador de aplicações DAG em grade; uso de redes P2P, ...
    • DEPA: análise estática de dependências
    • HprofVis: monitoração visual de programação OO

BIBLIOGRAFIA:

OBS.: Veja também o Material de Apoio da disciplina para lista de documentos, artigos e software disponibilizados online.

  • Barbosa, V. C. “An Introduction to Distributed Algorithms”. MIT Press, 1996.
  • Lynch, N. “Distributed Algorithms”. Ed. Morgan Kaufmann, 1996.
  • Casavant, T.L., Kuhl, J.G. A Taxonomy of Scheduling in General-Purpose Distributed Computing Systems. In Readings in Distributed Computing Systems, eds. Casavant, T.L. and Singhal, M., IEEE Computer Society Press, Los Alamitos, CA, 1994.
  • Chrétienne, P. and alli. (eds.) Scheduling Theory and its Applications. John Wiley and Sons, Chichester, 1997.
  • El-Rewini, H., Lewis, T. Ali, H.H. Task Scheduling in Parallel and Distributed Systems.
  • Ian Foster, Carl Kesselman (eds.) The Grid 2: Blueprint for a New Computing Infrastructure. Hardcover: 748 pages. Publisher: Morgan Kaufmann; 2 edition (November 18, 2003). Language: English. ISBN: 1558609334.
  • Fran Berman, Geoffrey Fox, Anthony J.G. Hey (eds.). Grid Computing: Making The Global Infrastructure a Reality. Hardcover: 1080 pages. Publisher: John Wiley & Sons (April 8, 2003). Language: English. ISBN: 0470853190.
  • Borja Sotomayor, Lisa Childers. Globus® Toolkit 4, First Edition : Programming Java Services Paperback: 536 pages. Publisher: Morgan Kaufmann (December 16, 2005). Language: English. ISBN: 0123694043.
  • Vladimir Silva. Grid Computing For Developers. Paperback: 576 pages. Publisher: Charles River Media; 1 edition (December 30, 2005). Language: English. ISBN: 1584504242.
  • Artigos e documentos de projetos de CG, CP, P2P: Globus, Condor, ...
  • Artigos, dissertações e teses dos projetos do PGCC


BIBLIOGRAFIA COMPLEMENTAR:

  • Andrews, G. R. Concurrent Programming - Principles and Practice. The Benjamin/Cunnings, Redwood City, 1991.
  • Foster, I. Designing and Building Parallel Programs. Addison-Wesley, 1995.
  • Tanenbaum, A. Distributed Systems. Prenctice-Hall, 1995.
  • Raynal, M. “Distributed algorithms and protocols”. Wiley, Chichester, 1992.
Personal tools
Alliances