Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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• 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
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