1 / 28

List Ranking : Um Estudo Experimental

List Ranking : Um Estudo Experimental. Dissertação de Mestrado Orientando: Guilherme Pereira Vanni Orientador: Prof. Siang Wung Song. Departamento de Ciência da Computação Instituto de Matemática e Estatística Universidade de São Paulo. Introdução. Definição

camdyn
Download Presentation

List Ranking : Um Estudo Experimental

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. List Ranking: Um Estudo Experimental Dissertação de Mestrado Orientando: Guilherme Pereira Vanni Orientador: Prof. Siang Wung Song Departamento de Ciência da Computação Instituto de Matemática e Estatística Universidade de São Paulo

  2. Introdução • Definição Lista ligada: uma seqüência de nós tal que cada nó aponta para outro nó, chamado seu sucessor, e não há ciclo em tal lista. O problema de List Rankingconsiste em determinar o rank para todos os nós, isto é, a distância para o último nó da lista. 4 2 0 5 1 6 3 Rank: 6 5 4 3 2 1 0

  3. [Reif 1993] Importância Síntese de algoritmos paralelos para grafos

  4. - Arquitetura: Memória distribuída. - Problema de tamanho n - p processadores cada um com memória local O(n/p). - Rodada de computação + rodada de comunicação. - Em cada rodada cada processador envia e recebe O(n/p) dados. - Algoritmo eficiente minimizar o nº rodadas de comunicação bem como o tempo de computação local total. - parâmetros: n e p. Modelo CGM

  5. Algoritmos paralelos CGM para LR

  6. P2 P3 P4 P1 1º n Lista ligada armazenada em 4 proc.

  7. 1 1 1 1 1 1 1 0 2 2 2 2 2 2 1 0 4 4 4 4 3 2 1 0 7 6 5 4 3 2 1 0 Cada sucessor pode estar em outro proc. O(log n) rodadas de comunicação. Algoritmo seqüencial O(n). Algoritmo paralelo usando “pointer jumping” O(log n).

  8. [Dehne e Song 1997] nó da amostra = pivô Amostra: cada nó é escolhido com probabilidade de 1/p. m = distância máxima entre 2 pivôs m <= 3 p ln n com alta probabilidade Prob. {m > c(3 p ln n)} <= 1/ n^c, c >2

  9. nextPivot(x) m x distToPivot(x) Algoritmo Probabilístico - nomenclatura nextPivot(x) = pivô mais próximo a direita distToPivot(x) = distância entre x e nextPivot(x) List ranking modificado Determinar para cada x: nextPivot(x) e distToPivot(x)

  10. Algoritmo Probabilístico n – nós, p – processadores, O(n/p) – nós por processador • Cada processador seleciona nós como pivô com probabilidade 1/p. • Todos processadores resolvem o problema do list ranking Modificado. • Os valores de nextPivot(x) e distToPivot(x) de todo pivô são enviados de cada processador a todos os outros. • 4. Cada processador resolve seqüencialmente o problema do list ranking para seus nós.

  11. Número de rodadas do algoritmo O(log p + log log n) rodadas de comunicação com alta prob.

  12. Algoritmo Determinístico - definições L R 3 2 3 2 2 [Dehne et al. 2002] r-ruling set: subconjunto de elementos selecionados de L, onde: • Dois vizinhos nunca são selecionados. • A distância de qualquer elemento ao próximo elemento selecionado é no máximo r. Exemplo: uma lista L e um 3-ruling set R

  13. 3 2 3 2 2 12 9 7 4 2 12 9 7 4 2 12 9 7 4 2 2 1 1 2 1 1 1 12 11 10 9 8 7 6 5 4 3 2 1 Algoritmo Determinístico • Computar O(p²)-ruling set R com |R| = O(n/p). • Fazer um broadcast de R para todos os processadores. 3. Calcular seq., em cada processador o List Ranking de R. 4. Obter para (L - R) a dist. para o próx. elemento de R (pointer jumping). 5. Calcular em cada processador os ranks dos seus elementos.

  14. Número de rodadas do algoritmo O(log p) rodadas de comunicação

  15. Rotular cada elemento de L com o índice do processador no máximo p rótulos L(s[i]) L(i) L(s[s[i]]) p-1 p-1 O(p²)-ruling set Quebra de simetria Denote por s[i] o sucessor do elemento i s[i] é um máximo local Selecionar inicialmente todos os máximos locais distância máxima de 2 (p - 1) nº máx. de elementos selecionados = O(n)

  16. Algoritmo para determinar O(p²)-ruling set • Marcar todos os elementos da lista como nós não selecionados. • Para todo i em L fazer em paralelo Se L(i) < L(s[i]) > L(s[s[i]]) então marcar s[i] como selecionado. • Seqüencialmente, em cada processador, processar as sublistas de elementos subseqüentes que estão armazenados no mesmo processador. Para cada sublista, marcar todo segundo elemento. Se a sublista tem somente dois elementos, e ambos os vizinhos não possuem um rótulo menor, marcar os elementos da sublista como não selecionado.

  17. 4. Para k = 1 ... log p fazer 4.1. Para todo elemento i em L fazer em paralelo Se s[i] é não selecionado então s[i] s[s[i]]. 4.2. Para todo elemento i em L fazer em paralelo Se (i, s[i], s[s[i]] são selecionados) e not ( L(i) < L(s[i]) > L(s[s[i]]) ) e ( L(i) <> L(s[i]) ) e ( L(s[i]) <> L(s[s[i]]) ) então marcar s[i] como não selecionado. 4.3. Seqüencialmente, em cada processador, processar as sublistas de elementos selecionados subseqüentes da lista que estão armazenados no mesmo processador. Para cada sublista marcar todo segundo elemento como não selecionado. Se a sublista tem apenas dois elementos e ambos os vizinhos não possuem rótulos menores, então marcar ambos elementos da lista como não selecionado. 5. Marcar o último elemento como selecionado. Algoritmo O(p²)-ruling set (continuação)

  18. Resultados Experimentais • Reid-Miller algoritmos PRAM com resultados satisfatórios para o Cray C-90, mas específicos para a máquina. • Gustedt apresenta dois algoritmos CGM (PC-cluster): probabilístico e um determinístico. • Sibeyn algoritmo CGM com O(p) rodadas de comunicação. Para p = 36 e n = 600 mil aceleração de aproximadamente 5. • Chan e Dehne algoritmo com O(log p) rodadas de comunicação. Resultados conhecidos mais eficientes.

  19. Gustedt - desempenho do programa determinístico Tempo de execução por elemento para o programa determinístico

  20. Gustedt - desempenho do programa probabilístico Tempo de execução por elemento para o programa probabilístico

  21. Chan e Dehne - desempenho do programa determinístico Curva dos tempos observados na plataforma ultra (switch de 100Mb)

  22. Chan e Dehne - desempenho do programa determinístico Curva dos tempos observados na plataforma thoga (switch de 1Gb)

  23. Resultados obtidos neste trabalho Programa Probabilístico com n = 1M Curva dos tempos observados para o algoritmo probabilístico com entrada n = 1M.

  24. Resultados obtidos neste trabalho Programa Probabilístico com n = 32M Curva dos tempos observados para o algoritmo probabilístico com entrada n = 32M.

  25. Resultados obtidos neste trabalho Programa Probabilístico com n = 32M Acelerações (speedups) obtidas para o algoritmo probabilístico para n = 32M.

  26. Resultados obtidos neste trabalho Programa Determinístico com n = 32M Curva dos tempos observados para o algoritmo determinístico com entrada n = 32M.

  27. Resultados obtidos neste trabalho Programa Determinístico Modificado com n = 32M Curva dos tempos observados para o algoritmo probabilístico com entrada n = 32M.

  28. Conclusão • Os dados experimentais obtidos mostram um desempenho satisfatório dos programas. • Os programas são mais eficientes para maiores valores da entrada (n). • O tempo de execução diminui com o aumento do número de processadores, exceto para n = 1M, onde o tempo de comunicação não é compensado pela quantidade de dados. Para p = 8 e n = 16M todos os programas paralelos são mais rápidos que o programa seqüencial. • Programa determinístico modificado é um pouco mais rápido que o programa determinístico. • A implementação do algoritmo probabilístico (que possui na teoria maior número de rodadas de comunicação) obteve melhor desempenho que a do algoritmo determinístico.

More Related