A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 1 CMP157 – Programação.

Apresentações semelhantes


Apresentação em tema: "Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 1 CMP157 – Programação."— Transcrição da apresentação:

1 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 1 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder Gary L. Peterson University of Rochester (An O(n log n) Unidirectional Algorithm for the Circular Extrema Problem ACM Transactions on Programming Languages and Systems, Vol. 4, No. 4, October 1982, Pages 758-762.) Carlos Eduardo Benevides Bezerra Universidade Federal do Rio Grande do Sul Instituto de Informática

2 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 2 O problema: eleição de líder Dado n processos em um anel (cada nó comunica-se apenas com seus vizinhos), o problema de eleger um líder é o de escolher um processo máximo (ou mínimo).

3 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 3 Contexto LeLann obteve uma solução que requeria O(n²) mensagens Chang e Roberts propuseram uma solução com O(n log n) mensagens no caso médio, mas O(n²) no pior caso Hirschber e Sinclair: solução com O(n log n) mensagens, bidirecional. Hirschber e Sinclair: especulação sobre possível limite inferior de Ω(n²) mensagens no caso unidirecional Peterson propõe então uma solução com O(n log n) mensagens, com comunicação unidirecional e otimal.

4 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 4 Características Cada processo tem um valor único Tais valores podem ser transmitidos e comparados Todos processos são idênticos, exceto pelo seu valor O número n de processos é desconhecido a princípio Algoritmo “naturalmente assíncrono” –Sincronização é obtida através dos receives bloqueantes

5 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 5 Algoritmo básico Processos divididos em: –Active (executa o algoritmo) –Relay (apenas repassa as mensagens) –Qualquer um destes dois pode detectar o término e ser eleito Algoritmo dividido em fases –A cada fase, o número de processos ativos é dividido por 2 –Número máximo de fases:  log 2 (n)  Consiste numa simulação unidirecional de um algoritmo bidirecional: –A cada fase, cada processo i verifica se seu id i é o Max (id i-1, id i, id i+1 ) –Se não for, o processo i sai do modo Active

6 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 6 Algoritmo bidirecional - I

7 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 7 Algoritmo bidirecional - II

8 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 8 Algoritmo bidirecional - III

9 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 9 Algoritmo bidirecional - IV

10 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 10 Algoritmo bidirecional - V

11 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 11 Algoritmo bidirecional - VI

12 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 12 Algoritmo bidirecional - VII

13 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 13 Algoritmo bidirecional - VIII

14 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 14 Algoritmo – tid e processos Relay Cada processo possui um tid (id temporário) –O valor inicial de tid i é id i (id real) A cada fase, cada processo relay i executa: –recebe mensagem m do vizinho de trás Verifica se m é o id i (terminaria o algoritmo) –repassa m ao vizinho da frente

15 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 15 Algoritmo – processo Active A cada fase, cada processo ativo i executa: –envia seu tid i ao vizinho da frente –recebe tid i-1 do vizinho de trás Verifica se o valor recebido é id i (terminaria) –envia Max(tid i-1, tid i ) ao vizinho da frente –recebe Max(tid i-2, tid i-1 ) do vizinho de trás Verifica se o valor recebido é o id i (terminaria) –se tid i-1 = Max(tid i, tid i-1, tid i-2 ), então: tid i ← tid i-1 senão: processo i torna-se relay

16 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 16 Exemplo de execução - I

17 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 17 Exemplo de execução - II

18 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 18 Exemplo de execução - III

19 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 19 Exemplo de execução - IV

20 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 20 Exemplo de execução - V

21 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 21 Exemplo de execução - VI

22 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 22 Exemplo de execução - VII

23 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 23 Análise de complexidade Para cada processo que sobrevive a uma fase, pelo menos um outro não sobreviverá –Seja a seqüência a 1, a 2, K, p 1, p 2 (distintos): K = Max(a2, K, p1) equivale a a2 < Max(a1, a2, K) e p1 < Max(K, p1, p2) –Isso faz com que, no mínimo, metade dos processos sejam descartados a cada fase –Tem-se, então log 2 (n) fases, no máximo Cada processo (tanto relay quanto active), a cada fase, envia duas mensagens –Tem-se então, 2n = O(n) mensagens a cada fase –Total de 2n × log 2 (n) mensagens, ou seja, O (n log n)

24 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 24 Conclusões O algoritmo de Peterson consegue melhorar a complexidade de mensagens num anel unidirecional por simular um algoritmo de anel bidirecional. Esse mesmo princípio básico (simulação de recursos não disponíveis) poderia ser usado para melhorar outros algoritmos em situações parecidas. Conseguiu-se uma complexidade assintótica otimal. Todos as melhorias realizadas posteriormente tem complexidade de comunicação proporcional a (n log n).

25 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 25 Referências PETERSON, Gary L., An O(n log n) Unidirectional Algorithm for the Circular Extrema Problem, ACM Transactions on Programming Languages and Systems, Vol. 4, No. 4, October 1982, Pages 758-762. LYNCH, Nancy A., SHAMIR, Boaz P., Distributed Algorithms, Lecture Notes for 6.852, Fall 1992; January, 1993.


Carregar ppt "Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 1 CMP157 – Programação."

Apresentações semelhantes


Anúncios Google