Escolar Documentos
Profissional Documentos
Cultura Documentos
MC714
Sistemas Distribuídos
1° semestre, 2017
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Introdução - sistemas
distribuídos
• 1. Coleção de en#dades independentes que colaboram para
resolver um problema que não poderia ser resolvido
individualmente (Kshemkalyani e Singhal).
• 2. Sistema onde componentes de hardware ou soUware
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 Bi1encourt IC - UNICAMP
Caracterização – sistemas
distribuí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 compar#lham memória
ou relógio 7sico comum, que se comunicam por mensagens
sobre 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
cole`vamente (Tanenbaum / Van Steen).
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Características
• Sem relógio bsico comum
• Introduz a noção de distribuição, dando origem à
assincronia inerente entre processadores.
• Sem memória compar`lhada
• 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 compar`lhada distribuída.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Componentes - Software
• Aplicação distribuída
• Middleware
• Sistema operacional
• Pilha de protocolos de rede
• Fig 2
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquitetura / Middleware
• Execução distribuída é a execução de processos no sistema
distribuído para alcançar um obje`vo comum.
• Arquitetura em camadas para quebrar complexidade (Fig 2).
• Middleware é o soUware distribuído que coordena o sistema
distribuído enquanto fornece transparência de
heterogeneidade.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Motivação / requisitos
• Existem aplicações onde a computação é
intrinsecamente distribuída
• Ex: transferência bancária
• Compar`lhamento de recursos
• Hardware, soUware/bibliotecas, dados, licenças
• Impossível replicar tudo em todo lugar – impra`cá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 par`r de disposi`vos
móveis
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Motivação / requisitos
• Aumentar confiabilidade
• Replicação de dados e de soUware
• Disponibilidade: recurso deve estar disponível
“sempre”
• Integridade: estado/valor de um recurso deve ser
correto, sob acessos concorrentes de múl`plos
processadores, de acordo com a semân`ca esperada
pela aplicação
• Tolerância a falhas: habilidade de recuperação de
falhas no sistema
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Motivação / requisitos
• Melhorar taxa desempenho/custo
• Compar`lhamento de recursos e dados remotos
• Aumentar vazão (nem sempre é esse o obje`vo...)
• 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 subs`tuir) processadores heterogêneos sem
degradar desempenho.
• Outras?
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas paralelos
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas paralelos
• Existem sistemas que possuem algumas, mas
não todas, as caracterís`cas de um sistema
distribuído
• Como classificá-los?
• São sistemas distribuídos ou sistemas
mul`processados?
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas de memória
• Dois aspectos: localização e polí`ca de acesso.
• Uma memória para todos os processadores:
memória compar4lhada.
• Se memória não é compar`lhada: acesso via
meios explícitos de comunicação, como troca de
mensagens.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas de memória
• Memória centralizada:
• Memória comum acessada por todos os processadores.
• Memória distribuída:
• Fisicamente distribuída com os processadores.
• Memória compar`lhada
• Espaço de endereçamento global
• Tempo de acesso diferente, em geral
• Mul`processadores de memória distribuída
• Troca de mensagens
• Acesso através do processador
• Hierárquica: alguns (2-4) processadores compar`lham memória,
formando um nó de computação. Múl`plos nós são conectados em
um nível mais alto – IBM Blue Gene L
• Fig 3
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Arquiteturas de memória -
diferenças
• Memória centralizada
• Extensão intui`va 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.
• Mul`processadores de memória distribuída integram as duas
abordagens, fornecendo escalabilidade e maior facilidade de
programação.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas paralelos -
classiEicação
• Sistemas mul#processados.
• Mul`computadores.
• Processadores vetoriais
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas multiprocessados
• Sistemas paralelos onde os múl`plos processadores tem
acesso direto a uma memória compar`lhada, a qual forma um
espaço de endereçamento único.
• Geralmente sem um relógio comum.
• Geralmente cons`tuem 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
compar`lhada.
• Processadores geralmente do mesmo `po em um mesmo
container.
• Fig 4
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas multiprocessados
• Interconexão: bus ou mul4stage switch
• Representação: grafo não direcionado
• Vér`ce = processador + memória local + switch
• Aresta = enlace de comunicação entre processadores
• Grau – número de mensagens que podem ser manipuladas
simultaneamente por um processador.
• Diâmetro – menor número de nós necessário para comunicação
entre dois nós mais distantes na rede.
• Largura de bisseção – número de enlaces mínimo que divide a
rede na metade. Indica quantas mensagens podem ser trocadas
simultaneamente entre duas metades da rede.
• Fig 15
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas multiprocessados
• Duas redes de interconexão populares são a omega e a
bu1erfly.
• São redes mul`-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 Bi1encourt IC - UNICAMP
Sistemas multiprocessados
• Omega
• Omega: n processadores, n unidades de memória
• (n/2) log2n switches 2x2, log2n níveis
(
• Função de interconexão
2i, 0 i n2 1
j= n
2i + 1 n, 2 in 1
• Desenhem exemplo para n=8
• Função de roteamento
• Para nível s da rede, se o s+1-ésimo bit mais significa`vo de j é 0, vai
pro fio de cima, se for 1 vai pro fio de baixo.
• Fig 5
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas multiprocessados
• Bu1erfly
• 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
significa`vo
• Desenhem exemplo para n=8
• Função de roteamento
• Num nível s, se s+1-ésimo bit mais significa`vo de j é 0, vai para o
fio de cima, senão vai para o fio de baixo.
• Fig 6
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas paralelos -
classiEicação
• Sistemas mul`processados.
• Mul#computadores.
• Processadores vetoriais
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Multicomputadores
• Sistema paralelo onde múl`plos processadores não têm
acesso direto a memória compar`lhada.
• 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 soUware homogêneos).
• Fig 7
Prof. Luiz Fernando Bi1encourt 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á`cas interessantes para roteamento
• Fig 8
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Multicomputadores -
topologias
• Topologias regulares e simétricas
• Mesh, anel, torus, cubo, hipercubo
• Propriedades matemá`cas interessantes para roteamento
• Fig 8
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Torus
• Wrap-around 2D-mesh (Torus)
• Mesh contém
k⇥k k 2 processadores.
• Comprimento máximo do caminho entre quaisquer 2
processadores: k
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Hipercubo
2k
• Hipercubo com k dimensões tem unidades de processamento/
memória.
• Cada unidade é um nó no hipercubo e tem um rótulo único de k
bits.
• 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).
• Desenhem um hipercubo de 4 dimensões.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Hipercubo
• Um hipercubo de d dimensões pode ser par`cionado 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 des`no.
• Múl`plas rotas entre qualquer par de nós: tolerância a falhas e
controle de conges`onamento.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Outras
• Bus
• Anel
• Crossbar switch
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Sistemas paralelos -
classiEicação
• Sistemas mul`processados.
• Mul`computadores.
• Processadores vetoriais
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Caracterização de sistemas
paralelos
• Dis`nçã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 Bi1encourt IC - UNICAMP
Caracterização de sistemas
paralelos
• Uso primário de sistemas paralelos: maior vazão através da
divisão da carga entre os processadores.
• Tarefas que podem ser melhor aceleradas são as que podem
ser par`cionadas em subtarefas com pouca comunicação.
• Ex.:Muitas operações sobre vetores e matrizes, comuns em
aplicações cien}ficas.
• Máquinas paralelas foram objeto de pesquisa teórica e de
sistemas em 1980, entretanto não se provaram
economicamente viáveis na época.
• Poucas aplicações populares `ravam vantagem de paralelismo.
• Aumento da capacidade de processamento de PCs.
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Taxonomia
• Processamento (Flynn):
• SISD, MISD, SIMD, MIMD
• Programação
• Memória compar`lhada
• Troca de mensagens
• PRAM – Parallel Random Access Machine
• LogP vs. PRAM
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
Taxonomia – Flynn
• Quatro “modos” de processamento classificando:
• Como é o processamento de instruções
• Quais são os dados de entrada de cada processador
• Single Instruc`on, Single Data – SISD
• Single Instruc`on, Mul`ple Data – SIMD
• Mul`ple Instruc`on, Single Data – MISD
• Mul`ple Instruc`on, Mul`ple Data – MIMD
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
SISD
• Single instruc`on stream, single data stream
• Modo “convencional” no paradigma de Von Neumann
• Uma CPU
• Uma unidade de memória
• Conectados por bus
• Fig 9
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
SIMD
• Single instruc`on stream, mul`ple data stream.
• Processamento: múl`plos processadores homogêneos.
• Mesma instrução.
• Itens de dados dis`ntos.
• Processamento de arrays e matrizes.
• Co-processamento (MMX, SSE).
• Fig 10
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
MISD
• Mul`ple instruc`on stream, single data stream.
• Operações diferentes
• Mesmo dado
• Fig 11
Prof. Luiz Fernando Bi1encourt IC - UNICAMP
MIMD
• Mul`ple instruc`on stream, mul`ple data stream.
• Instruções diferentes.
• Dados diferentes.
• Modo de operação de sistemas distribuídos e paralelos em
geral.
• Sem relógio comum.
• Fig 12