210 likes | 310 Views
CMP 157 Processamento Paralelo e DistribuÃdo Prof Claudio Geyer. TL 1 Análise de Artigo. Marcelo Panosso Edson Berreta. A Scalable, Asynchronous Spanning Tree Algorithm on a Cluster of SMPs. Guojing Cong IBM Research Yorktown Heights, NY gcong@us.ibm.com. Hanhong Xue
E N D
CMP 157 Processamento Paralelo e DistribuídoProf Claudio Geyer TL 1 Análise de Artigo Marcelo PanossoEdson Berreta
A Scalable, Asynchronous Spanning Tree Algorithm on a Cluster of SMPs Guojing Cong IBM Research Yorktown Heights, NY gcong@us.ibm.com Hanhong Xue IBM System & Technology Group Poughkeepsie, NY hanhong@us.ibm.com IPDPS 2008. IEEE International Symposium on Parallel and Distributed Processing14-18 April 2008
Motivação e estado-da-arte Manipulação de grafos esparsos com bilhões de vértices Muitas vezes não podem ser armazenados na memoria principal de um computador. Maioria do algoritmos existentes são baseados PRAM (modelo teórico de computador) Shiloach-Viskin (SV), ST em paralelo utilizando BFS-Busca em largura Propõe um novo algoritmo distribuído ST, recursivo e assíncrono
Motivação e estado-da-arte A “única” aplicação de alta performance com memoria distribuída utilizando BFS (largura) A. Yoo, E. Chow, K. Henderson, W. McLendon, B. Hendrickson, and U¨ . V. C¸ atalyu¨rek. A scalable distributed parallel breadth-first search algorithm on Bluegene/L. In Proc. Supercomputing (SC 2005), Seattle, WA, November 2005.
Problemas a resolver (objetivos) BFS leva O (d) passos para um grafo de diâmetro d, para um d grande a quantidade de paralelismo é rapidamente saturada Tanto BFS e SV utilizam mensagens de parada “barreiras” globais, causando problemas de escalabilidade com muitos processadores Um dos principais objetivos do algoritmo é diminuir a quantidade de mensagens de parada (barreira).
Algorítimo 1: DFS Paralela Semelhante ao DFS regular Menor sintaxe Diferente semântica Linguagem Cilk (multi-treaded parallel) eficaz para explorar o paralelismo dinâmico altamente assíncrono spawn(cria um filho e continua no pai em paralelo) Assíncrono Atômico (garante acesso ao vértice uma única vez) Para cada vizinho u de v chama “spawn DFS_T(u)” recursivamente
Diferença para PRAM ou BSP As atividades são criadas durante a execução Não há construção de loop paralelo É improvável que escalonamento estático funcione(?) Não emprega sincronização global Amplamente assíncrono Impl. real: barreira após a inicialização de dados e antes de liberar recursos pode ser necessária (poucas) Prova formal do Algoritmo 1 (não tem ciclos) → teorema 1 Problemas
Implementação Otimizada para Memória Distribuída Derivada naturalmente do algorítimo anterior Representação de entrada: Lista de adjacência LAPI (API de baixo nível) Comunicação unilateral Active Messages Distribuída Assíncrona Chamada de função recursiva
Algorítimo 2 DFS_T(u): Thread principal Msg_Handler(u,v): Chegada do Active Mesage (maior processamento)
Características do Algoritimo 2 Acesso atômico a matriz por exclusão mútua Terminação trivial (todos os vértices foram visitados e não existe mensagem em transito = barreira) → teorema 2, complexidade para detecção término = O(log p) Problema na memória distribuída: terminação prematura (atividades assíncronas) Soluções: Detectar se todas as atividades criadas por ela estão terminadas, lista de active mensages enviadas. Demora = O(m) Dijkstra
Otimização Evitar envio de mensagens para processador próprio Turning com LAPI Dois Handlers (manipuladores) Manipulador de cabeçalho (MC) Manipulador de conclusão da mensagem (MCM) Pode ser opcionalmente executado em segmento separado Não usado nessa implementação
Manipulador de cabeçalho Inspecionar cabeçalho Detectar novas ações a executar na chegada da msg Msg enviada para MCM, se não foi consumida pelo MC Sempre invocado pelo mesmo segmento que recebeu a msg (evita custo de comutação) Reduz tempo gasto apenas dando pushing na pilha ao invés de enviar uma mensagem recursiva A função DFS_T fica com o trabalho de enviar a msg Isso faz com que o algorítimo injete msgs continuamente na rede Maioria do trabalho ocorre na função principal Diferente do algorítimo original Não existe modelo apropriado para análise de tal comportamento
Análises |Msg| transmitidas entre quaisquer processadores é estável ( m >> p) Ex.: m=4G, p=1024, δ = 0.01 Probabilidade é inferior a Carga de processadores equilibrada para grandes grafos aleatórios
Resultados Hardware Cluster SMPs cada nó 16-CPUIBMP575+ running at 1.9 Ghz Communication network among nodes is 2GB/s IBM HPS adapters connected by IBM HPS switch. For our test, we use 64 nodes with a total of 1024 CPUs. Experimental results for random graphs with 1G (230) vertices and 4G, 8G, 30G (m =n log n) arestas
Resultados Tempo execução x nr processadores
Resultados Mensagens x nr processadores
Resultados - Análise Tempo de execução aproximadamente de forma linear até 1024 processadores. Com o aumento da densidade dos vértices, para o mesmo número de processadores, o tempo de execução também aumenta conforme o esperado. Não parece haver qualquer gargalo que limita a expansão do algoritmo. Para DFS paralelo o número de mensagens enviadas é basicamente o fator determinante de desempenho. O número de mensagens enviadas é perfeitamente linear com o número de processadores. Desvio padrão de 0,1 % da média de mensagens enviadas. Este fato confirma a nossa análise do número de mensagens transmitidas entre os processadores.
Comparação com trabalhos relacionados Apesar de citarem o trabalho ....Yoo.... Scalable distributed parallel breadth-first search algorithm on Bluegene/L. In Proc. .... não fizeram a comparação com as mesmas entradas, pois não tinham acesso a esta implementação. Complexidade de mensagens para detecção de terminação: Parallel DFS O ( log p ) (processadores) SV O ( log n)(vértices) Yoo Parallel BFS O ( d ) (diâmetro)
Conclusões do grupo de PDP Constam provas teóricas e também práticas As otimizações descritas não aparecem no algorítimo Artigo é tendencioso, está direcionado para a IBM, feito pelo pessoal da e software da empresa e também testado somente em equipamentos da empresa Como seria o desempenho em outras plataformas ?
Comparação Lynch O artigo mostra as provas formais e também a implementação. No livro da Lynch da só são tratados algorítimos com busca em largura – BFS Neste algorítimo o envio de mensagens é feito por um manipulador de mensagens LAPI da IBM.
Notas a) Motivação e estado-da-arte........................5 b) Problemas a resolver e Modelo..................4 c) Protótipo, Resultados e comparação com trabalhos relacionados................................... 3 d) Redação e formatação .............................. 3