Cap - PowerPoint PPT Presentation

1 / 47
About This Presentation
Title:

Cap

Description:

Cap tulo 5: Termina o e algoritmos b sicos Ajay Kshemkalyani e Mukesh Singhel Distributed Computing: Principles, Algorithms, and Systems Cambridge University Press – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 48
Provided by: BernardoL
Category:
Tags: cap

less

Transcript and Presenter's Notes

Title: Cap


1
Capítulo 5 Terminação e algoritmos básicos
  • Ajay Kshemkalyani e Mukesh Singhel
  • Distributed Computing Principles, Algorithms,
    and Systems
  • Cambridge University Press

2
Topologias e abstrações
  • Sistema Grafo não direcionado com pesos nas
    arestas G(N,L), onde n N, l L
  • Topologia física
  • Nós (Vértices) Nós da rede, todos os hosts
    (participando ou não)
  • Arestas toda a Lan, Links da WAN, ligação direta
    entre hosts
  • Ex. Figura 5.1(a) topologia todos os links da
    WAN
  • Topologia lógica
  • Nós (Vértices) Hosts onde a aplicação é
    executada
  • Arestas Canal lógico entre estes nós
  • Totalmente conectado (Ex. Figura 5.1(b))
  • Topologia sobreposta (overlay)
  • Superposição na topologia lógica
  • Meta Coleta eficiente de informação,
    distribuição ou procura
  • Ex. anel, árvore, malha, hipercubo

3
Abstrações de Topologia
  • Figura 5.1 Topologia vista sob diferentes níveis
    de abstração

4
Classificação e conceitos básicos
  • Execução do aplicativo vs. Execução do algoritmo
    de controle
  • Algoritmo de controle
  • Para monitorar e prover funções auxiliares. Ex.
    ST, MIS, CDS, eleição de líder, gravação de
    estado global (deadlock terminação), check point
  • Sobreposto ao aplicativo, mas sem interferir
  • Envia e recebe eventos internos, sendo
    transparente a aplicação
  • Ex. protocolo
  • Algoritmos centralizados e distribuídos
  • Centralizado Assimétrico configuração
    cliente-servidor gargalos são processamento e
    banda há pontos de falha
  • Distribuídos Mais balanceados dificuldade de
    criar algoritmos perfeitamente distribuídos (Ex.
    Algoritmos de snapshot, baseados em árvores,
    etc...)
  • Algoritmos simétricos e assimétricos

5
Classificação e conceitos básicos
  • Algoritmos anônimos id dos processos não são
    utilizados na tomada de nenhuma decisão (em tempo
    de execução run-time)
  • Estruturalmente elegantes, mas difíceis ou
    impossíveis de implementar. Ex. Eleição de líder
  • Algortimos uniformes O número de processadores
    n, não pode ser um parâmetro do código
  • Permite escalabilidade, entrada e saída de
    processos da computação é simples e apenas os
    vizinhos tem noção da mudança de topologia
  • Algoritmos adaptativos Seja K (  n) o número de
    processadores participando no contexto do
    problema X quando este é executado. A
    complexidade deve ser expressa como função de K e
    não n.
  • Ex. Exclusão mutua O overhead de acesso à seção
    crítica é expresso em termos de K

6
Classificação e conceitos básicos
  • Determinístico vs. Não determinístico
  • Execução não determinística contém ao menos 1
    recebimento não determinístico, enquanto o
    determinístico contém nenhum
  • Não determinístico Pode receber a mensagem de
    qualquer fonte.
  • Determinístico A fonte é especificada.
  • Dificuldades
  • Sistemas assíncronos
  • Deterministico todas as execuções produzem a
    mesma ordem parcial de eventos (utilizado em
    debugging, detecção de predicados instáveis,
    etc...)
  • Não deterministico as execuções podem produzir a
    ordem parcial de eventos diferentes (tempo de
    envio e possível congestionamento imprevisível,
    atraso local variável)

7
Classificação e conceitos básicos
  • Sistema Assíncrono vs. síncrono
  • Síncrono
  • Limitado pelo delay de mensagens
  • Escorregamento de relógios conhecidos.
  • Limite superior de execução de um passo lógico
    conhecido
  • Assíncrono Nenhum dos critérios anteriores é
    valido
  • Algoritmos para solução de problemas dependem
    muito de modelos de sistema inteiramente
    assíncronos
  • Controle on-line vs. Controle off-line
  • On-line Executa enquanto o dado está sendo
    gerado. Vantagem clara para debugging,
    scheduling, etc...
  • Off-line Requer que todo o dado seja analisado
    antes da execução.

8
Classificação e conceitos básicos
  • Algoritmos Wait-Free
  • Resistentes a n - 1 falhas de processos.
    Operações em qualquer processo deve ser
    completada em um número certo de passos
  • Robusto, mas caro
  • Possível para exclusão mútua
  • Pode nem sempre ser possível de se fazer. Ex.
    Problema do produtor-consumidor
  • Canais de comunicação
  • Ponto-aponto FIFO, Não FIFO, Na camada de
    aplicação.
  • Normalmente provida pelo protocolo de comunicação.

9
Medições e métricas de complexidade
  • Cada métrica é especificada utilizando-se o
    limite inferior (?), o limite superior (O) e
    complexidade justa (?)
  • Métricas
  • Complexidade de espaço por nó
  • Complexidade de espaço do sistema (? n da
    complexidade por nó). Ex. Pior caso de todos os
    nós pode nunca ocorrer simultaneamente
  • Complexidade de tempo por nó
  • Complexidade de tempo do sistema. Os nós executam
    totalmente concorrentemente?
  • Complexidade de mensagens
  • Número de mensagens
  • Tamanho das mensagens
  • Complexidade de tempo das mensagens depende do
    número de mensagens , tamanho das mensagens,
    concorrência de envio e referencia de mensagens.
  • Outras métricas Send e Receive, multicast. Como
    implementar?
  • Memória compartilhada Tamanho da memória
    compartilhada Operações de sincronização

10
Lista de Algoritmos Distribuídos
11
Sync 1-initiator ST (enchente)
12
1-init Spanning Tree Síncrono Exemplo
  • Figura 5.2 árvore em negrito
  • Raiz designada. Nó A no exemplo
  • Cada nó identifica seu pai
  • Como identificar nós filhos

13
1-init Spanning Tree Síncrono Complexidade
  • Terminação Depois do diâmetro ser encontrado
  • Como um processo pode terminar depois de setar
    seu pai?
  • Complexidade
  • Espaço Local O(Grau)
  • Espaço Global O(SEspaço Local)
  • Tempo local O(Grau Diâmetro)
  • Complexidade de tempo de mensagem d pulos de
    mensagens
  • Complexidade de mensagem Maior que 1, menor que
    2 mensagens / arestas, então l, 2l
  • Spanning Tree análogo a breadth-first search

14
1-init Spanning Tree Assíncrono
15
1-init Spanning Tree Assíncrono Operação
  • Root inicia a enchente de QUERY para identificar
    os vértices da árvore
  • Pai 1 nó pelo qual se recebe um QUERY
  • ACCEPT (resp ) enviado como resposta QUERY
    enviado para os vizinhos
  • Terminação quando ACCEPT ou REJECT (resp -)
    recebido de um vizinho não pai. Porque?
  • QUERY de um não pai respondido com um REJECT
  • É necessário rastrear os vizinhos? Determinar os
    filhos e quando terminar?
  • Porque o tipo de mensagem REJECT é necessário?
  • A mensagem de REJECT pode ser eliminada? Como?
    Qual o impacto?

16
1-init Spanning Tree Assíncrono Complexidade
  • Terminação Depois de receber um REJECT ou ACCEPT
    de um vizinho não Pai
  • Complexidade
  • Espaço Local O(Grau)
  • Espaço Global O(SEspaço Local)
  • Tempo local O(Grau)
  • Complexidade de tempo de mensagem d 1 pulos de
    mensagens
  • Complexidade de mensagem Maior que 2, menor que
    4 mensagens / arestas, então 2l, 4l
  • Spanning Tree Pior caso altura igual a n - 1

17
1-init Spanning Tree Assíncrono Exemplo
  • Figura 5.3 árvore em negrito
  • Raiz designada. Nó A no exemplo
  • Vértices da árvore QUERY ACCEPT msg
  • Cross-edges e back-edges 2(QUERY REJECT) msg

18
Spanning Tree Assíncrono Iniciação concorrente
  • Algoritmo
  • Um nó pode espontaneamente iniciar o algoritmo
    tornando-se Raiz
  • Cada Raiz inicia variações do algoritmo 1-init.
  • Terminação apenas a Raiz detecta a terminação.
    Precisa de uma mensagem extra para informar aos
    outros.
  • Complexidade de tempo O(l)
  • Complexidade de mensagens O(nl)
  • Figura 5.4 Inicio concorrente
  • em A, G e J
  • Opção1 Unir Sts parciais. Dificuldade baseado
    em conhecimento local. Pode levar a ciclos.
  • Opção 2 Permitir apenas 1 instancia do ST e
    descartar as outras. Seleciona Raiz com maior id.

19
Spanning Tree Assíncrono (1/2)
20
Spanning Tree Assíncrono (2/2)
21
DFS Spanning Tree Assíncrono
  • Lida com inicialização concorrente como o
    algoritmo não DFS.
  • Quando QUERY, ACCEPT ou REJECT chegam a ação
    depende se
  • myroot lt newroot
  • Terminação apenas a Raiz que terminou com
    sucesso detecta e informa via arestas da ST.
  • Complexidade de tempo O(l)
  • Complexidade de mensagens O(nl)

22
DFS Spanning Tree Assíncrono
23
Broadcast e convergecast em uma árvore
  • Figura 5.5 Estrutura de árvore para broadcast e
    convergecast
  • Como fazer BC e CC em um anel? E em uma malha?
  • Custo?

24
Broadcast e convergecast em uma árvore
  • Broadcast em um sistema distribuído
  • BC1. Raiz envia informação de broadcast para seus
    filhos e termina
  • BC2. Quando um não Raiz recebe a informação de
    seu pai. Copia a informação e repassa para seus
    filhos e termina
  • Convergecast Coleta informação no Raiz para
    computar uma função global
  • CVC1. Nó folha envia seu relatório para seu pai e
    termina
  • CVC2. Um nó interno da árvore recebe o relatório
    de todos os seus filhos realiza uma operação e
    repassa para seu pai e termina
  • CVC3. Nó Raiz. Recebe o relatório de todos os
    seus filhos. Calcula a função e termina.
  • Usos Calcular máximos e mínimos, Eleição de
    líder, computar funções de estado global.
    Complexidade de tempo O(h) Complexidade de
    Mensagens n - 1

25
Menor caminho com fonte única Bellman-Ford
Síncrono
  • Grafo com pesos, sem ciclos com pesos negativos.
  • Nenhum nó tem visão global, apenas topologia
    local.
  • Assume-se cada nó conhece outros n necessário
    para a terminação
  • Depois de K rodadas tamanho até qualquer nó é
    minimo com K pulos
  • Depois de K rodadas O tamanho até todos os nós
    com até k pulos de distancia da MST final
    estabilizou
  • Terminação n 1 rodadas
  • Complexidade de tempo n 1 rodadas
  • Complexidade de mensagen (n 1) / mensagens

26
Bellman-Ford Síncrono Código
27
Distance Vector Routing
  • Utilizado no roteamento de internet (popular no
    meio dos anos 80), muda dinamicamente os grafos,
    onde os pesos das arestas representam o delay ou
    a carga nos canais.
  • Variação do algoritmo síncrono de Bellman-Ford O
    loop externo é infinito.
  • Procura o menor caminho para cada destino.
  • Tamanho substituído por LENGTH1..n pai
    substituído por PARENT1..n
  • K-ésimo componente representa o melhor caminho
    até LENGTHk
  • Em cada iteração
  • Aprica-se a inequação de triangulação para cada
    destino independentemente
  • Inequação de triangulação (LENGTHk gt
    (LENGTHjK weightj,k))
  • Nó i tem peso weightij estimado utilizando RTT ou
    avaliando o delay até o vizinho j

28
Menor caminho com fonte única Bellman-Ford
Assíncrono
  • Grafo com pesos, sem ciclos com pesos negativos.
  • Nenhum nó tem visão global, apenas topologia
    local.
  • Número de mensagens O( cn ) exponencial e
    complexidade de tempo O( cn .d ) exponencial no
    pior caso, onde c é uma constante.
  • Se todos os links tiverem o mesmo peso, o
    algoritmo computa o caminho mínimo de saltos a
    tabela de caminho mínimo de saltos para todos os
    destinos é computada utilizando-se O(cn.l)
    mensagens

29
Bellman-Ford Assíncrono Código
30
All-All shortest Path (Menor caminho)
Floyd-Warshall
  • Figura 5.6 (a) Inequação triangular para o
    algoritmo de Floyd-Warshall. (b) Relação VIA por
    um ramo da árvore para um dado par (s,t)

31
All-All shortest Path (Menor caminho)
Floyd-Warshall
  • Depois das iternções do pivo do loop externo
  • Invariante
  • LENGTHi,j é o menor caminho passando por nós
    intermediários do conjunto i,...,pivo. VIAi,j
    é o primeiro salto correspondente
  • Complexidade (centralizado) O(n3)

32
Floyd-Warshall Distribuido
  • Linha i de LENGTH1..n,1..n, VIA1..n,1..n
    armazenado em i, que é responsável por atualizar
    a linha. (logo, i atua como fonte)
  • Correspondência com o algoritmo centralizado,
    linh(4)
  • Como o nó i acessa o dado remoto LENGTHpivot,t
    em cada iteração do pivo?
  • Sink tree Distribuída (dinâmica) em cada
    iteração de pivo, todos os nós s LENGTHs,t ?
    8 estão na sink tree, com sink em t
  • Como sincronizar as execuções da iteração do loop
    externo em nós diferentes?
  • Simular sincronizador Ex. Utilizar mensagem de
    recebimento para pegar os dados LENGTHpivo, de
    seu pai na sink tree.

33
Floyd-Warshall Distribuídos Estruturas de dados
34
Floyd-Warshall Distribuídos Código
35
Flyd-Warshall Distribuido sink tree dinâmica
  • Renomear LENGTHi.j e VIAi,j como LENj e
    PARENTj
  • Em cada nó i, na iteração do pivo
  • Se LENpivo ? 8 no nó i, então o pivo distribui
    LEN para todos os nós (incluindo i) na sink
    tree do pivo.
  • Arestas Pai-Filho na sink tree devem possuir ID,
    como?
  • Um nó envia IN_TREE para PARENTpivo
    NOT_IN_TREE para os outros vizinhos
  • Recebendo um IN_TREE de k, k é um filho na sink
    tree do pivo
  • Esperar IN_TREE ou NOT_IN_TREE de todos os
    vizinhos. Essas mensagens são uma sincronização
  • Pivo broadcast LEN para toda sua sink tree.
    Essas mensagens são uma sincronização.
  • Agora todos os Nós executam a inequação de
    triangulação em passos pseudo-exclusivos
  • Complexidade de tempo O(n2) Execução / nós. Mais
    o tempo para n broadcasts
  • Complexidade de mensagens n iterações
  • 2 IN_TREE ou NOT_IN_TREE msg de tamanho O(1)
  • n 1 PIV_LEN msg de tamanho O(n) O(n) msg
  • Total O(n(ln)) Mensagens Total (nl n3) espaço
    de mensagens.

36
Floyd-Warshall Distribuído Sink Tree
  • Figura 5.7 Identificando os nós Pai-Filho da
    árvore

37
Enchente Controlada (sem ST)
  • Canais FIFO
  • Enchente assíncrona
  • Utilizado para Verificar o estado de links de
    roteamento no IPV4
  • Complexidade 2l mensagens no pior caso Tempo d
    seqüências de saltos
  • Enchente Síncrona(para adquirir um dado de cada
    processo)
  • STATEVEk é o dado do processo k
  • Complexidade de mensagens 2dl mensagens, cada
    uma com tamanho n
  • Complexidade de tempo d turnos

38
Enchente controlada Assíncrona
39
Enchente controlada Síncrona
40
Minimum Spanning Tree (MST)
  • Assumindo um grafo não direcionado com pesos. Se
    os pesos não são únicos assume-se algum critério
    de desempate como ID dos nós para ordenação total
    dos pesos dos vértices
  • Revisão de definições Floresta, Spanning forest,
    Spanning tree, MST
  • Kruskal's MST
  • Assumindo uma floresta de componentes de grafos
  • Manter uma lista ordenada de vértices
  • Em cada n 1 iterações, identificar o vértice de
    peso minimo que conecta dois componentes
    diferentes
  • Incluir este nó na MST
  • O(l log(l) )
  • Prim MST
  • Começar com apenas um único nó
  • Em cada n 1 iteração, selecionar o vértice de
    peso mínimo incidente neste nó. Continua-se
    utilizando este novo nó
  • O(n2) (ou O(n log(n)) utilizando pilhas Fibonacci
    em grafos densos)

41
GHS algoritmo de MST síncrono
  • Gallagher-Humblet-Spira MST distribuído utiliza
    estratégia de Kruskal. Começa com uma floresta de
    componentes do grafo.
  • MWOE (Aresta de peso mínimo de saída) Saída é
    saída lógica, ex. Indica a direção da expansão do
    componente.
  • Spanning tree de componentes conectados combinado
    com os MWOES mantem as propriedades das Spanning
    trees.
  • Combinação concorrente de MWOEs
  • Depois da k-ésima iteração, n / 2k componentes.
    Até o máximo de log n iterações
  • Cada componente possui um nó líder na iteração
  • Cada iteração em um componente possui 5 passos
    iniciados pelo líder
  • Fase de broadcast-convergecast líder identifica
    as MWOE
  • Fase de broadcast líder (potencial) para a
    próxima iteração é identificado
  • Ase de broadcast entre as componentes agrupadas,
    1 lider é selecionado Ele se identifica para
    todos os novos componentes

42
Aresta de saída de peso mínimo exemplo
Figura 5.8 Agrupando os MWOE dos componentes.
(a) Ciclo len 2 é possível. (b) Ciclo len gt 2
não é possível
  • Observação 5.1
  • Para qualquer Spanning forest (Ni, Li) i
    1..k do grafo G, considerando qualquer
    componente (Nj, Lj). Denotamos por ?j, o nó com o
    menor peso entre todos os incidentes apenas no no
    Nj. Então qualquer sub-grafo G da MST que inclui
    todos os nós em cada Li da spanning forest deve
    incluir ?j.

43
MST exemplo
  • Figura 5.9 Fases da iteração de um componente.
  • (a) Root broadcast SEARCH_MWOE (b) Ocorre um
    convergecast REPLY_MWOE (C) Root broadcast
    ADD_MWOE (d) se a MWOE também é escolhido como
    MWOE pelo componente no outro lado do MWOE, O
    processo incidente com maior ID é o líder na
    proxima iteração Broadcast NEW_LEADER

44
GHS Síncrono Tipos de mensagens
45
GHS Síncrono Código
46
GHS Complexidade
  • Log n rodadas (Síncrono).
  • Complexidade de tempo O(n log n)
  • Complexidade de mensagens
  • Em cada iteração, O(n) mensagens pelas arestas da
    árvore (passos 1,3,4,5)
  • Em cada iteração, L mensagens de EXAMINE para
    determinar as MWOEs
  • Corretude requerida pelas operações síncronas
  • No passo (2), EXAMINE é utilizado para determinar
    se um vizinho não marcado pertence a mesma
    componente. Se o nó de uma aresta não marcada
    estiverem em níveis diferentes há problemas.
  • Considerando EXAMINE enviado na aresta (j,k)
    pertencente a mesma componente. Mas k pode não
    saber que esta pertence a nova componente e ao
    novo líder ID responde com ve
  • Pode levar a ciclos.

47
MST Assíncrono
  • GHS síncrono é simulado utilizando-se mensagens /
    passos extras
  • Novo Líder faz BC / CC nas arestas marcadas da
    nova componente
  • No passo (2), destinatário de um EXAMINE pode
    atrasar a resposta se estiver em um turno
    anterior.
  • N log n mensagens extras
  • No novo turno, informar cada vizinho
  • Enviar EXAMINE quando todos os vizinhos nas
    arestas não marcadas estiverem no mesmo nível
  • L log n mensagens extras
  • Engenharia de GHS Assíncrono
  • Mensagens O( n log n l) tempo O(n log n(l
    d))
  • Desafios
  • Determinar o nível de nós adjacentes
  • Se as componentes estão em níveis diferentes,
    busca coordenada pelas novas MWOEs
Write a Comment
User Comments (0)
About PowerShow.com