Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo...

25
1 Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder CMP157 – Programação Distribuída e Paralela 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

Transcript of Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo...

Page 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.

1Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderCMP157 – Programação Distribuída e ParalelaCMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderGary L. PetersonUniversity 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 BezerraUniversidade Federal do Rio Grande do SulInstituto de Informática

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

2Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líder

O problema: eleição de líderO 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).

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

3Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderContextoContexto

• 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.

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

4Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderCaracterísticasCaracterí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

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

5Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo básicoAlgoritmo 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: log2(n)

• Consiste numa simulação unidirecional de um algoritmo bidirecional:– A cada fase, cada processo i verifica se seu idi é o

Max (idi-1 , idi , idi+1)– Se não for, o processo i sai do modo Active

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

6Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo bidirecional - IAlgoritmo bidirecional - I

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

7Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo bidirecional - IIAlgoritmo bidirecional - II

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

8Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo bidirecional - IIIAlgoritmo bidirecional - III

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

9Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo bidirecional - IVAlgoritmo bidirecional - IV

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

10Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo bidirecional - VAlgoritmo bidirecional - V

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

11Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo bidirecional - VIAlgoritmo bidirecional - VI

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

12Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo bidirecional - VIIAlgoritmo bidirecional - VII

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

13Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo bidirecional - VIIIAlgoritmo bidirecional - VIII

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

14Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo – tid e processos Algoritmo – tid e processos RelayRelay

• Cada processo possui um tid (id temporário)– O valor inicial de tidi é idi (id real)

• A cada fase, cada processo relay i executa:– recebe mensagem m do vizinho de trás

• Verifica se m é o idi (terminaria o algoritmo)

– repassa m ao vizinho da frente

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

15Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAlgoritmo – processo Algoritmo – processo ActiveActive

• A cada fase, cada processo ativo i executa:– envia seu tidi ao vizinho da frente

– recebe tidi-1 do vizinho de trás• Verifica se o valor recebido é idi (terminaria)

– envia Max(tidi-1 , tidi) ao vizinho da frente

– recebe Max(tidi-2 , tidi-1) do vizinho de trás• Verifica se o valor recebido é o id i (terminaria)

– se tidi-1 = Max(tidi , tidi-1 , tidi-2),• então: tidi ← tidi-1

• senão: processo i torna-se relay

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

16Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderExemplo de execução - IExemplo de execução - I

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

17Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderExemplo de execução - IIExemplo de execução - II

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

18Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderExemplo de execução - IIIExemplo de execução - III

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

19Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderExemplo de execução - IVExemplo de execução - IV

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

20Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderExemplo de execução - VExemplo de execução - V

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

21Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderExemplo de execução - VIExemplo de execução - VI

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

22Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderExemplo de execução - VIIExemplo de execução - VII

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

23Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderAnálise de complexidadeAnálise de complexidade

• Para cada processo que sobrevive a uma fase, pelo menos um outro não sobreviverá

– Seja a seqüência a1, a2, K, p1, p2 (distintos):• K = Max(a2 , K , p1) equivale aa2 < 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 log2(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 × log2(n) mensagens, ou seja, O (n log n)

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

24Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderConclusõesConclusõ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).

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

25Carlos Eduardo Benevides Bezerra CMP157CMP157 – Programação Distribuída e Paralela

Algoritmo de Peterson para escolha de líderReferênciasReferê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.