42
Prof. Luiz Fernando Bittencourt IC - UNICAMP MC714 Sistemas Distribuídos 2° semestre, 2018

aula01 - Home | INSTITUTO DE COMPUTAÇÃO › ~bit › mc714 › aulas › aula01.pdf · 2018-08-17 · •2. Sistema onde componentes de hardware ou software localizados em computadoresem

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MC714Sistemas Distribuídos2° semestre, 2018

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Introdução– sistemasdistribuídos

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Introdução- sistemasdistribuídos• 1. Coleção de entidades independentes que colaboram para

resolver um problema que não poderia ser resolvido individualmente (Kshemkalyani e Singhal).

• 2. Sistema onde componentes de hardware ou software localizados em computadores em rede comunicam-se e coordenam suas ações através somente de troca de mensagens (Couloris, Dollimore e Kindberg).

• 3. Um conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e coerente(Tanenbaum e Van Steen).

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Caracterização– sistemasdistribuídos• Usuário só descobre que está usando um sistema distribuído

quando alguma falha impede de usar alguma aplicação (Lamport).

• Coleção de computadores que não compartilham memória ou relógio físico comum, que se comunicam por mensagenssobre uma rede de comunicação, e cada computador possui sua própria memória e executa seu próprio sistema operacional. Tipicamente são semi-autônomos e fracamente acoplados enquanto cooperam para resolver um problema coletivamente (Tanenbaum / Van Steen).

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Caracterização– sistemasdistribuídos• Um termo que descreve uma ampla gama de

computadores, desde sistemas fracamente acoplados como redes de longa distância, a sistemas fortemente acoplados como as LANs, e até sistemas muito fortemente acoplados como sistemas multiprocessados(Goscinski).

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Introdução- sistemasdistribuídos• Existem desde sempre• Comunicação entre agentes móveis na natureza

• Hoje• Dispositivos computacionais em rede• Ferramenta para resolver problemas

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Características• Sem relógio físico comum• Introduz a noção de distribuição, dando origem à

assincronia inerente entre processadores.

• Sem memória compartilhada• Requer troca de mensagens para comunicação.• Deve-se notar que pode fornecer abstração de um

espaço de endereçamento comum através da abstração de memória compartilhada distribuída.

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Características• Separação geográfica – quanto mais separado,

“mais é” um sistema distribuído• Não necessariamente em uma wide area network. • Clusters – pequenos sistemas distribuídos

• Autonomia e heterogeneidade• Processadores fracamente acoplados com diferentes

“velocidades” e diferentes SOs

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Componentes- hardware• Cada computador tem uma unidade de memória

e de processamento• São conectados por uma rede de comunicação• Fig 1

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Componentes- Software• Aplicação distribuída• Middleware• Sistema operacional• Pilha de protocolos de rede• Fig 2

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquitetura/Middleware• Execução distribuída é a execução de processos

no sistema distribuído para alcançar um objetivo comum.• Arquitetura em camadas para quebrar

complexidade (Fig 2).• Middleware é o software distribuído que

coordena o sistema distribuído enquanto fornece transparência de heterogeneidade.

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquitetura/Middleware• Bibliotecas/padrões/mecanismos de

middleware:• CORBA – common object request broker• Normalização de semântica de chamadas entre

objetos• RPC – remote procedure call• DCOM – distributed component object model• RMI – remote method invocation• SOAP – simple object access protocol

• MPI – message passing interface

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquitetura/Middleware• RPC: conceitualmente igual à chamada de

procedimento local, com a diferença que o código chamado pode estar em máquina remota.• Software de RPC envia mensagem pela rede e aguarda

resposta, momento em que a chamada se completa do ponto de vista do processo invocador.

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Motivação/requisitos• Existem aplicações onde a computação é

intrinsecamente distribuída• Ex: transferência bancária

• Compartilhamento de recursos• Hardware, software/bibliotecas, dados, licenças

• Impossível replicar tudo em todo lugar – impraticável ou ineficiente

• Impossível colocar tudo em um lugar só – gargalos e confiabilidade

• Acesso a recursos geograficamente distribuídos• Dados sensíveis ou muito grandes• Acesso a dados e supercomputadores a partir de dispositivos

móveis

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Motivação/requisitos• Aumentar confiabilidade• Replicação de dados e de software• Disponibilidade: recurso deve estar disponível

“sempre”• Integridade: estado/valor de um recurso deve ser

correto, sob acessos concorrentes de múltiplos processadores, de acordo com a semântica esperada pela aplicação• Tolerância a falhas: habilidade de recuperação de

falhas no sistema

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Motivação/requisitos• Melhorar taxa desempenho/custo• Compartilhamento de recursos e dados remotos

• Aumentar vazão (nem sempre é esse o objetivo...)

• Pode oferecer melhor desempenho/custo que máquinas paralelas especiais

• Oferecer escalabilidade – evitar gargalos• Adicionar mais processadores não impõe gargalo direto para a

rede.

• Modularidade / facilidade de expansão• Adicionar (ou substituir) processadores heterogêneos sem

degradar desempenho.

• Outras?

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasparalelos

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasparalelos• Existem sistemas que possuem algumas, mas

não todas, as características de um sistema distribuído• Como classificá-los?• São sistemas distribuídos ou sistemas multiprocessados?

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturasdememória• Dois aspectos: localização e política de acesso.

• Uma memória para todos os processadores: memória compartilhada.• Se memória não é compartilhada: acesso via

meios explícitos de comunicação, como troca de mensagens.

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturasdememória• Memória centralizada: • Memória comum acessada por todos os processadores.

• Memória distribuída:• Fisicamente distribuída com os processadores.• Memória compartilhada• Espaço de endereçamento global• Tempo de acesso diferente, em geral

• Multiprocessadores de memória distribuída• Troca de mensagens• Acesso através do processador• Hierárquica: alguns (2-4) processadores compartilham memória,

formando um nó de computação. Múltiplos nós são conectados em um nível mais alto – IBM Blue Gene L

• Fig 3

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Arquiteturasdememória-diferenças• Memória centralizada• Extensão intuitiva da arquitetura de um único processador.

• Contenção na comunicação com memória central limita escalabilidade.

• Sistemas baseados em barramento geralmente possuem poucos processadores (<=8).

• Memória distribuída• Com troca de mensagem permite projeto mais simples, mas

programação torna-se mais complicada.

• Maior escalabilidade – massively parallel processors (MPP) são sistemas de memória distribuída que usam troca de mensagens e podem conter centenas de milhares de processadores.

• Multiprocessadores de memória distribuída integram as duas abordagens, fornecendo escalabilidade e maior facilidade de programação.

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasparalelos-classificação• Sistemas multiprocessados• Multicomputadores• Processadores vetoriais

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasmultiprocessados• Sistemas paralelos onde os múltiplos processadores tem

acesso direto a uma memória compartilhada, a qual forma um espaço de endereçamento único.• Geralmente sem um relógio comum.• Geralmente constituem uma Uniform Memory Access

(UMA), onde a latência de acesso à memória é a mesma para qualquer processador.• Comunicação entre processos: leitura/escrita da

memória compartilhada. • Processadores geralmente do mesmo tipo em um

mesmo container.• Fig 4

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasmultiprocessados• Interconexão: bus ou switch

• Bus: limitação de escalabilidade, menor custo• Switch: Centralizado (multi-stage switch)

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasmultiprocessados• Duas redes de interconexão populares são a

omega e a butterfly.• São redes multi-estágio formadas por

comutadores 2x2.• Permitem dados de qualquer das duas entradas serem

direcionados para qualquer das duas saídas.• Colisões ocorrem quando mais de um dado é

direcionado ao mesmo tempo para a mesma saída.

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasmultiprocessados• Omega• Omega: n processadores, n unidades de memória• (n/2) log2n switches 2x2, log2n níveis• Função de interconexão

• Função de roteamento• Para nível s da rede, se o s+1-ésimo bit mais significativo do

endereço destino é 0, vai pro fio de cima, se for 1 vai pro fio de baixo.

• Fig 5

j =

(2i, 0 i n

2 � 1

2i+ 1� n, n2 i n� 1

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasmultiprocessados• Butterfly• Função de interconexão• Depende de n e de s• Seja M=n/2 switches em cada nível, e <x,s> um switch x

no nível s• Existe uma aresta de <x,s> para <y, s+1> se:• x=y• x XOR y tem exatamente um bit 1, que está no s+1-ésimo bit mais

significativo

• Função de roteamento• Num nível s, se s+1-ésimo bit mais significativo é 0, vai

para o fio de cima, senão vai para o fio de baixo.• Fig 6

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasparalelos-classificação• Sistemas multiprocessados.• Multicomputadores.• Processadores vetoriais

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Multicomputadores• Sistema paralelo onde múltiplos processadores

não têm acesso direto a memória compartilhada.• Memória pode ou não formar um espaço de

endereçamento comum.• Geralmente não têm relógio comum.• Próximos fisicamente.• Fortemente acoplados (hardware e software

homogêneos).• Fig 7

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Multicomputadores• Espaço de endereçamento comum ou troca de

mensagens.• Espaço de endereçamento comum: geralmente

corresponde a arquitetura NUMA (non-uniform memoryaccess).• Topologias regulares e simétricas• Mesh, anel, torus, cubo, hipercubo• Propriedades matemáticas interessantes para

roteamento• Fig 8

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Multicomputadores• Sistema paralelo onde múltiplos processadores não têm

acesso direto a memória compartilhada.• Memória pode ou não formar um espaço de endereçamento

comum.• Geralmente não têm relógio comum.• Próximos fisicamente.• Fortemente acoplados (hardware e software homogêneos).• Fig 7

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Multicomputadores• Espaço de endereçamento comum ou troca de mensagens.• Espaço de endereçamento comum: geralmente corresponde a

arquitetura NUMA (non-uniform memory access).• Topologias regulares e simétricas• Mesh, anel, torus, cubo, hipercubo• Propriedades matemáticas interessantes para roteamento• Fig 8

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Multicomputadores -topologias• Topologias regulares e simétricas• Mesh, anel, torus, cubo, hipercubo• Propriedades matemáticas interessantes para roteamento• Fig 8

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Torus• Wrap-around 2D-mesh (Torus)

• Mesh contém processadores.

• Comprimento máximo do caminho entre quaisquer 2 processadores: k

k ⇥ k k2

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Hipercubo• Hipercubo com k dimensões tem unidades de

processamento/memória.

• Cada unidade é um nó no hipercubo e tem um rótulo único de kbits.

• Grau de cada nó: log2(n).

• Cada uma das k dimensões é associada com uma posição nos rótulos.

• Rótulos de quaisquer 2 nós adjacentes são iguais exceto pelo bit da posição correspondente à dimensão na qual os nós diferem.• Processadores rotulados de forma que o caminho mínimo entre

quaisquer 2 nós é a distância de Hamming de seus rótulos (limitante superior = k).

2k

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Hipercubo• Um hipercubo de d dimensões pode ser particionado em 2

hipercubos de d-1 dimensões.• Fixe uma posição qualquer do rótulo. Processadores com 0 nessa

posição são um hipercubo de dimensão d-1, e processadores com 1 são outro hipercubo.

• Roteamento salto-a-salto.

• A cada passo, a mensagem pode ser enviada para qualquer dimensão correspondente à posição na qual o endereço do nó corrente difere do endereço do destino.

• Múltiplas rotas entre qualquer par de nós: tolerância a falhas e controle de congestionamento.

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Outras• Bus• Anel• Crossbar switch

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasparalelos-classificação• Sistemas multiprocessados.• Multicomputadores.• Processadores vetoriais

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Array processors(vectorprocessors)• Processadores fisicamente próximos, fortemente acoplados.• Relógio comum.• Podem não compartilhar memória e podem comunicar-se por

troca de mensagens.• Processamento e troca de dados sincronizados.• Ex.: DSP e processamento de imagens.

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Array processors(vectorprocessors)• Processadores fisicamente próximos, fortemente

acoplados.• Relógio comum.• Podem não compartilhar memória e podem

comunicar-se por troca de mensagens.• Processamento e troca de dados sincronizados.

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemasparalelos• Distinção/caracterização é importante para

projeto de algoritmos.• Considerar latências• Muito acesso aos mesmos dados, muito acesso a

dados locais e pouco acesso a dados distribuídos, etc.

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Sistemas paralelos

Computação distribuída Computação paralelaMulticomputadores

Memória compartilhadaNUMA

UMAProcessadores vetoriais

Switch centralizado

Switch decentralizadoBus

Troca de mensagens Espaço de end. único

• Tarefa: achar inconsistências na figura acima em relação aos slides anteriores.• Considere dois níveis abaixo. Análise pode ser diferente para cada um deles?

• Programação -> memória compartilhada ou troca de mensagens?• Arquitetura -> como é a disposição física dos componentes?

Sistemas multiprocessados

Exercício

Relógio físico comum