List Ranking: Um Estudo Experimental

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Algoritmos em Grafos.
Geometria Computacional Fecho Convexo II
Estratégias Pipelined
Lei de Little.
Fluxo em Redes Prof. Ricardo R. Santos.
Complexidade de Algoritmos
Sincronização em Sistemas Distribuídos
Exercícios PAA- Grafos
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
6 Outubro de 2005Trajectória de um Projéctil1 Jorge Cruz DI/FCT/UNL Introdução aos Computadores e à Programação 1º Semestre 2005/2006.
2 Dezembro de 2005Simulação com Modelos Diferenciais1 Jorge Cruz DI/FCT/UNL Programação para as Ciências Experimentais 1º Semestre 2005/2006.
Capítulo 3 - Aplicações das Derivadas
ARQUITETURA DE COMPUTADORES II
Relógios Lógicos e Físicos
Método de Clusterização baseado em Densidade Algoritmo DBSCAN
UM ESTUDO SOBRE O PROBLEMA DO CAIXEIRO VIAJANTE
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Árvores.
Geometria Computacional Fecho Convexo
Modelos de Computadores Paralelos
Dárlinton B. Feres Carvalho
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
NÃO DETERMINISMO Marcus Eduardo Cabral Seabra
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
WAR STORY Stripping Triangulations Luciana Oliveira e Silva
Arquitetura de Computadores
Linguagens de Programação
Experiments with Strassen’s Algorithm: from sequential to parallel
DEPARTAMENTO DE ESTATÍSTICA
List Ranking. List Ranking (1) Seja L uma lista representada por um vetor s tal que s[i] é o nó sucessor de i na lista L, para u, o último elemento da.
Meta - heurísticas Prof. Aurora
Aprendizado de Máquina Aula 13
Informática Teórica Engenharia da Computação
Otimização por Colônia de Formigas (ACO)
Comparação entre os métodos de ordenação
Exercícios PAA- Grafos
Produto cartesiano Mais parâmetros dos dados Algoritmo
Função de uma Variável Aleatória
Algoritmos paralelos eficientes para alguns problemas de processamento de Cadeia de Caracteres Alunos: Diego Alencar dos Santos Melo Felipe Formagini Brant.
Algorítmos e estrutura de dados III
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos em redes e sistemas distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Rodrigo de Carvalho.  Introdução ◦ Descrição do Problema  Algoritmos ◦ GRASP ◦ S.A ◦ AG  Planejamento Experimental ◦ Objetivo ◦ Instância e métricas.
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Algoritmos Crescimento de Funções
Conceitos básicos em grafos
Fundamentos de Programação
Algoritmo Adaptativo de Substituição de Páginas
Redes Neuronais/Neurais/ Conexionistas Introdução
ARQUITETURA DE COMPUTADORES II
Ronaldo Celso Messias Correia –
Roberto A. G. Motta sob orientação do Prof. Dr. Siang Wun Song
Experimentação Algorítmica
1 Sincronização em Sistemas Distribuídos Alcides Calsavara.
Universidade Federal de Mato Grosso do Sul Departamento de Computação e Estatística Circuitos de Euler em Paralelo Universidade Federal de Mato Grosso.
Busca Combinatorial e Métodos de Heurística
Algoritmos FPT para o Problema da k-Cobertura por Vértices
A maior parte dos programas de computador gera uma saída resultante de um processamento que é executado sobre dados que ele recebe como entrada. Em geral.
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Sistemas de Arquivos Paralelos Alternativas para a redução do gargalo no acesso ao sistema de arquivos Roberto Pires de Carvalho carvalho arroba ime ponto.
Taís Sineiro Herig Laboratório de Genômica e Expressão / UNICAMP
Transcrição da apresentação:

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 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 Ranking consiste 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

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

Modelo CGM - Rodada de computação + rodada de comunicação. - 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.

Algoritmos paralelos CGM para LR Autor Número de Rodadas Algoritmo Denhe e Song O(log p + log log n) probabilístico O(ln* n log p) Sibeyn O(p) determinístico Denhe et al. O(log p)

Lista ligada armazenada em 4 proc. 1º n

Algoritmo seqüencial O(n). Algoritmo paralelo usando “pointer jumping” O(log n). 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.

Amostra: cada nó é escolhido com probabilidade de 1/p. [Dehne e Song 1997] Amostra: cada nó é escolhido com probabilidade de 1/p. nó da amostra = pivô 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

Algoritmo Probabilístico - nomenclatura nextPivot(x) distToPivot(x) x 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)

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.

Número de rodadas do algoritmo passo nº rodadas 1 – 2 log 3 p + log ln n 3 4 total 1 + log 3 p + log ln n O(log p + log log n) rodadas de comunicação com alta prob.

Algoritmo Determinístico - definições [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 L R 3 2 3 2 2

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

Número de rodadas do algoritmo passo nº rodadas 1 log p ? 2 log p 3 – 4 log p² 5 total 2 log p + log p² O(log p) rodadas de comunicação

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

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.

Algoritmo O(p²)-ruling set (continuação) 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.

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.

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

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

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

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

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

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

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

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

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

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.