38
Introdução na Computação Distribuída e Paralela Docente: MSc. Angel Alberto Vazquez Sánchez ISUTIC 2017

ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Introdução na ComputaçãoDistribuída e Paralela

Docente: MSc. Angel Alberto Vazquez Sánchez

ISUTIC2017

Page 2: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Características da matéria

● 90 horas no semestre● Conferências, Aulas Práticas, Laboratórios e

Seminários● Objetivo

– Introduzir os alunos nos fundamentos de sistemas de computadores paralelos e distribuídos e possibilitar o entendimento dos principais aspectos que intervêm no projecto e na utilização desses sistemas, em vários níveis de complexidade.

Page 3: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Avaliações contínuas

● Questionários escritos.● Participação em aulas.● Laboratórios.● Seminários.● Trabalho Prático Final.

Page 4: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Conteúdos da matéria

1.Definição e Aspectos Básicos de Sistemas Paralelos e Distribuídos

2.Arquitecturas Paralelas e Distribuídas.

3.Aspectos do Projecto de Sistemas Paralelos e Distribuídos

4.Redes de Processadores

5.Sistemas Operacionais Paralelos e Distribuídos

6.Gerência de Processos Distribuídos

7.Comunicação entre Processos Paralelos e Distribuídos: Modelo ClienteServidor.

Page 5: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Conteúdos da matéria

8.Memória Compartilhada Distribuída

9.Gerência de Arquivos Distribuída

10.Banco de Dados Distribuídos

11.Paradigmas da Programação Paralela e Distribuída

12.Avaliação de Desempenho de Sistemas Computacionais Paralelos e Distribuídos

13.Desenvolvimento de Sistemas de Informação Paralelos e Distribuídos

Page 6: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Bibliografia recomendada

● Coulouris, G., Dollimore, J., Kindberg, T., & Blair, G. (2013). Sistemas Distribuídos-: Conceitos e Projeto. Bookman Editora.

● Lynch, N. A. (1996). Distributed algorithms. Morgan Kaufmann.● Marques, J. A., & Guedes, P. (1998). Tecnologia de sistemas

distribuídos.● Mullender, S., & others. (1993). Distributed systems (Vol. 12).

acm press United States of America.● Tanenbaum, A. S. (1995). Distributed operating systems.

Pearson Education India.● Wilkinson, B., & Allen, M. (1999). Parallel programming:

techniques and applications using networked workstations and parallel computers. Prentice-Hall.

Page 7: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Aula de hoje

● Necessidades e Motivações dos Sistemas Distribuídos e Paralelos.

● Definição de Sistemas Distribuídos e Paralelos.● Classificação de Flynn.

Page 8: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Objetivo

● Identificar os principais conceitos associados a

Sistemas Distribuídos e Paralelos.

Page 9: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Computador convencional

● Um único processador resolve todas as tarefas

Page 10: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Necessidade

● O rendimento dos computadores sequenciais está a começar a saturarse.

● Uma única CPU tem limites físicos:– Limite da velocidade da luz: Estancamento nos

incrementos da frequência de relógio.– Limite de Integração: Cerca do limite máximo.– Mais frequência → Mais consumo + Temperaturas

muitoelevadas.– Memória disponível.– Características.

Page 11: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Necessidade

● Há uma demanda contínua de um poder computacional superior:– Modelagem e simulação numérica de problemas em

ciências e engenharia.– Caros cálculos iterativos sobre grandes quantidades

de dados e fortes restrições temporárias:● Exemplos: predição meteorológica, biocomputación,

astrofísica.

– São sistemas a cada vez mais complexos que requerem maior tempo de cómputo.

● Os processadores atuais são paralelos: n-core

Page 12: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Motivações

● Sistemas de Previsão do Tempo:● A atmosfera total é dividida em células de

tamanho por exemplo 1 milha x 1 milha x 1 milha, para uma alta de 10 milhas = 5 x células.

● Se cada cálculo requer 200-flops, em um intervalo de tempo flops são necessários.

● Analisar o clima de 7 dias, com intervalos de 1 minuto, num computador de 1Gflops ( flops) leva segundos ≈12 dias.

Page 13: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Motivações

● Problema das N-corpos no espaço:– Cada corpo atrai gravitacionalmente todos os outros.– O movimento de um corpo depende da força total

exercida sobre ele.– Para N corpos, N-1 força devem ser calculadas: N2

cálculos.– O cálculo é repetido a intervalos de tempo curtos.– A galáxia é de cerca de 1011 corpos.– Se cada cálculo leva 1ms, uma iteração completa

leva 3 anos.

Page 14: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Motivações

Page 15: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Motivações

Page 16: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Motivações

Problemas de grandes desafios:

São problemas fundamentais em ciência ou engenharia muito usados, e cujos soluções exigem da computação de alto rendimento (High Performance Computing, HPC) para alcançar respostas de tempo adequado.

Exemplos:● A dinâmica de fluidos computacional para:

– Projeto de aviões hipersônicos, carrocerías de autos eficientes e submarinos silenciosos,

– Previsão do tempo para o curto e longo prazo,– Recuperação de petróleo eficiente

Page 17: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Motivações

Problemas de grandes desafios:● Cálculos de estrutura eletrônica para a concepção

de novos materiais tais como:– Catalisadores químicos,– Agentes imunológicos,– Supercondutores,– Simulação de circuitos

● Processamento de imagem:– Aplicação em Medicina,– Jogos de vídeo.

Page 18: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Motivações

Problemas de grandes desafios:● Computação simbólica para:

– Reconhecimento de voz,– Visão por computador,– Compreensão da linguagem natural,– Razonamiento automático,– Ferramentas para design, fabricação e simulação de

sistemas complexos.

● Problemas de astrofísica: Evolução de Galaxias.

Page 19: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Motivações

Problemas de grandes desafios:● Biologia computacional:

– Sequência de DNA,– Reprodução de Espécies,– Funcionamento do cérebro humano.

● Administração de dados:– Banco de dados geográficas,– Mineração de Dados,– BigData

Page 20: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Motivações

Problemas de grandes desafios:● Meio ambiente:

– Contaminação– Predição de incêndios e inundações de grande escala,– Predição do clima.

● Simulação:– Início do universo,– Correntes Oceánicas,– Evacuações,– Difusão de Doenças, Vírus Informático, etc.

Page 21: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Sistema Distribuido

¿Que têm em comum estes aplicativos?● Tomam muito tempo.● Manejam grandes volumes de dados.● O tamanho do problema é extremamente

grande.

Para que sejam efetivas se requer um processamento num tempo razoável.

Page 22: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Solução

● Usar vários processadores

Page 23: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Sistema Distribuido

● Colecção de computadores separados fisicamente e ligados por uma rede de comunicações; cada máquina tem seus componentes de hardware e software que o programador percebe como um sozinho sistema.

● O programador acede aos componentes de software (objetos) remotos num grupo de computadores, da mesma maneira em que acederia a componentes locais.

Page 24: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Sistema Distribuido ou Sistema Paralelo

● Em programação distribuída, existe um conjunto de computadores conectados por uma rede que são usados colectivamente para realizar tarefas distribuídas.

● Por outro lado nos sistemas paralelos, a solução a um problema importante é dividida em pequenas tarefas que são repartidas e executadas para conseguir um alto rendimento.

Page 25: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

¿Que é a programação paralela?

● Uso de vários processadores trabalhando juntos para resolver uma tarefa comum.

● O modo de uso dos processadores pode ser desenhado pelo programador:– Cada processador trabalha numa porção do

problema.– Os processos podem trocar dados, através da

memória ou por uma rede de interconexão.

Page 26: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

¿Que é a programação paralela?

Page 27: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Evolução de computadores mais potentes

Page 28: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Tarefa

● Procurar informação sobre os 10 super computadores mais poderosas da actualidade.

● ¿Que paises estão mais representados?● https://www.top500.org/

Page 29: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Vantagens da Computação Paralela

● A programação paralela permite:– Resolver problemas que não cabem numa CPU.– Resolver problemas que não se resolvem num

tempo razoável.

● Podem-se executar:– Problemas maiores.– Mais rapidamente (aceleração).– Mais problemas.

Page 30: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Aplicações distribuídas

● Funcionam seguindo um modelo cliente/servidor: Um ou mais servidores criam uns objetos locais e depois atendem petições de acesso sobre esses objetos provenientes de clientes situados em lugares remotos da rede.

● Desta maneira os sistemas distribuídos solucionam as necessidades de:– Repartir o volume de informação.– Compartilhar recursos, já seja em forma de

software ou hardware.

Page 31: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Clasificação de Flynn

● Fluxo de Instrução vs. Fluxo de Dados– SISD– SIMD– MISD– MIMD

Letra SignificadoS SimplesM MúltiplaI InstruçãoD Dado

Page 32: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Clasificação de Flynn Aspectos de hardware

Fluxo de Instrução vs. Fluxo de Dados● SISD: Único fluxo de instruções aplicado a um

único fluxo de dados.● SIMD: Único fluxo de instruções aplicado a

múltiplos fluxos de dados.● MISD: Múltiplos fluxos de instruções aplicado a

um único fluxo de dados.● MIMD: Múltiplos fluxos de instruções aplicado a

múltiplos fluxos de dados

Page 33: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Clasificação de Flynn Aspectos de hardware

Page 34: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Tarefa

● Procurar dados biográficos de Michael J. Flynn e seus principais contribuições científicas

Page 35: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Tarefa

● Procurar informação para responder asseguintes perguntas:– ¿Que diferenças existem entre Memória– Compartilhada e Memória Distribuída?– ¿Quais são as topologias de interconexão em

sistemas distribuídos?

Page 36: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos
Page 37: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Clasificação de Flynn Aspectos de hardware

Fluxo de Instrução vs. Fluxo de Dados● SISD: Único fluxo de instruções aplicado a um

único fluxo de dados.● SIMD: Único fluxo de instruções aplicado a

múltiplos fluxos de dados.● MISD: Múltiplos fluxos de instruções aplicado a

um único fluxo de dados.● MIMD: Múltiplos fluxos de instruções aplicado a

múltiplos fluxos de dados

Page 38: ISUTIC 2017 - WordPress.com · 10.Banco de Dados Distribuídos 11.Paradigmas da Programação Paralela e Distribuída 12.Avaliação de Desempenho de Sistemas Computacionais Paralelos

Introdução na ComputaçãoDistribuída e Paralela

Docente: MSc. Angel Alberto Vazquez Sánchez

ISUTIC2017