Escolar Documentos
Profissional Documentos
Cultura Documentos
MC714
Sistemas Distribuídos
2° semestre, 2013
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
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
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
Sistemas paralelos
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Sistemas paralelos
• 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
Arquiteturas de memó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
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 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
Sistemas multiprocessados
• 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 todo 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
Sistemas multiprocessados
• Interconexão: bus ou multistage switch
• Representação: grafo não direcionado
• Vértice = 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 Bittencourt IC - UNICAMP
Sistemas multiprocessados
• 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
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 ≤i≤n−1
• Função de roteamento
• Para nível s da rede, se o s+1-ésimo bit mais significativo de j é 0, vai
pro fio de cima, se for 1 vai pro fio de baixo.
• Fig 5
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Sistemas multiprocessados
• 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 de j é 0, vai para
o fio de cima, senão vai para o fio de baixo.
• Fig 6
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).
• ccNuma – Cache Coherent NUMA
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)
2
• Mesh k × k contém k processadores.
• Comprimento máximo do caminho entre quaisquer 2
processadores: k
Prof. Luiz Fernando Bittencourt IC - UNICAMP
Hipercubo
• Hipercubo com k dimensões tem 2k 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).
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
Taxonomia
• Processamento (Flynn):
• SISD, MISD, SIMD, MIMD
• Programação
• Memória compartilhada
• Troca de mensagens
• PRAM – Parallel Random Access Machine
• LogP vs. PRAM
Prof. Luiz Fernando Bittencourt 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 Instruction, Single Data – SISD
• Single Instruction, Multiple Data – SIMD
• Multiple Instruction, Single Data – MISD
• Multiple Instruction, Multiple Data – MIMD
Prof. Luiz Fernando Bittencourt IC - UNICAMP
SISD
• Single instruction 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 Bittencourt IC - UNICAMP
SIMD
• Single instruction stream, multiple data stream.
• Processamento: múltiplos processadores homogêneos.
• Mesma instrução.
• Itens de dados distintos.
• Processamento de arrays e matrizes.
• Co-processamento (MMX, SSE).
• Fig 10
Prof. Luiz Fernando Bittencourt IC - UNICAMP
MISD
• Multiple instruction stream, single data stream.
• Operações diferentes
• Mesmo dado
• Fig 11
Prof. Luiz Fernando Bittencourt IC - UNICAMP
MIMD
• Multiple instruction stream, multiple 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