realtimesystems - presentation

20
Streaming graph partitioning for large distributed graphs Wilson de Carvalho Processamento de Dados Massivos - 10/2014

Upload: wilson-de-carvalho

Post on 14-Aug-2015

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RealtimeSystems - Presentation

Streaming graph partitioning for large

distributed graphsWilson de Carvalho

Processamento de Dados Massivos - 10/2014

Page 2: RealtimeSystems - Presentation

Motivação

Existência de grafos gigantescos● Grafo da web com mais de um trilhão de links

em 2011

● Facebook com mais de 1 bilhão de usuários ativos mensais (09/2014)

● Redes de proteínas

Page 3: RealtimeSystems - Presentation

Motivação

Problema maior não é o tamanho do grafo, mas a quantidade de dados associados:

● PageRank (e outros problemas de multiplicação de matrizes)

● Broadcast de atualização de status

● Identificar associação de proteínas

● E muito mais

Page 4: RealtimeSystems - Presentation

Motivação

● Corte de arestas corresponde (aproximadamente) ao volume de comunicação necessário

● Mover dados pela rede é muito caroo Comunicação entre processos: nanossegundoso Comunicação de rede: microssegundos

● O dado precisa ser carregado no cluster em algum momento…

● Podemos particionar enquanto carregamos os dados?

Page 5: RealtimeSystems - Presentation

Visão Geral do Problema

11 1010 1111

10

k = 2

Page 6: RealtimeSystems - Presentation

Visão Geral do Problema

● Partição de grafo é NP-difícil

● Partição balanceada de grafo é NP-completo

● Grandes grafos:o São mais difíceis de carregar em memória para

realizar o particionamento

o Reduzem drasticamente a quantidade de processamento que é viável - O(n) ou menor

● Os algoritmos de particionamento precisam ser

paralelos e distribuídos

Page 7: RealtimeSystems - Presentation

O Modelo de Fluxo

𝑀𝑘

𝑀 1

𝑀 2

Fluxo do grafo →

Particionador

Grafo está ordenado:• Aleatório• Busca por largura (BFS)• Busca por profundidade

(DFS)

Objetivo: Gerar um k-particionamento aproximadamente balanceado

Cada máquina fica

com nós

𝐶=(1+𝜀)𝑛𝑘

Possível Buffer de tamanho

Page 8: RealtimeSystems - Presentation

Heurísticas (s/ buffer)

● Balanced

● Chunking

● Hashing

● (Weighted) Deterministic Greedy

● (Weighted) Randomized Greedy

● (Weighted) Triangles

● Balance Big

Simples de fazer balanceamento enquanto ignora a estrutura do grafo

Se IDs dos vértices são consecutivos, hashing = balanced

Aleatoriedade melhora pior caso

Redes sociais possuem alto coeficiente de aglomeração ao encontrar triângulos

Usa nós com alto grau para “atrair” nós de mais baixo grau para a partição

Page 9: RealtimeSystems - Presentation

Heurísticas (c/ buffer)

● Prefer Big

● Avoid Big

● Greedy EvoCut

Versão com buffer do Balance Big

Ideia de que nós de mais baixo grau podem ser particionados após remover os de alto grau

Page 10: RealtimeSystems - Presentation

Abordagens em Sistemas Reais

● Usar hashing ignora arestas

● Próso Rápido para localizar dados

o Não requer DHT ou sincronização

● Contraso Hashing do ID do vértice corta uma fração de das

arestas em qualquer ordem

Page 11: RealtimeSystems - Presentation

Abordagem do Trabalho

● Avaliadas 16 heurísticas em 21 conjuntos de

dados com cada uma das três ordenações com

números variados de partições

● Descobrir qual heurística funciona em cada

grafo

● Comparação destes com os resultados de:o Hashing aleatório para pegar o pior resultado

o METIS para obter o “melhor” desempenho offline

Page 12: RealtimeSystems - Presentation

Observações

● METIS é uma heurística, não é o limite inferior verdadeiroo Na prática resolve

o Disponível online para reprodução dos resultados

● Conjuntos de dados públicoso Grafos tendem a ser menores que os das companhias

● Usar metadados para particionamento pode ser bomo URL para grafo da web

o Localização geográfica para usuários de rede social

Does fine in practiceAvailable online for reproducing resultsUsed publicly available datasetsPublic graph datasets tend to be much smaller than what companies haveUsing meta-data for partitioning can be goodpartitioning the web graph by URLUsing geographic location for social network users

Page 13: RealtimeSystems - Presentation

Conjuntos de Dados

● Inclui FEM (Finite Element Meshes), redes de citação, redes sociais, grafos da web, redes de proteína e grafos gerados sinteticamente

● De 297 vértices a 41.7 milhões de vértices

● Maiores grafos: LiveJournal e Twitter

Page 14: RealtimeSystems - Presentation

Método Experimental

● Para cada grafo, heurística, ordenação e

partição em 2, 4, 8 e 16 partes

● Comparar com corte aleatório - limite superior

● Comparar com METIS - limite inferior

● Performance medida por:

¿𝑎𝑟𝑒𝑠𝑡𝑎𝑠 𝑐𝑜𝑟𝑡 .𝑝𝑜𝑟 𝑐𝑜𝑟𝑡𝑒𝑎𝑙𝑒𝑎𝑡− ¿𝑎𝑟𝑒𝑠𝑡𝑎𝑠𝑐𝑜𝑟𝑡 .𝑝𝑜𝑟 h𝑒𝑢𝑟 í 𝑠𝑡𝑖𝑐𝑎 ¿¿ 𝑎𝑟𝑒𝑠𝑡𝑎𝑠𝑐𝑜𝑟𝑡 .𝑝𝑜𝑟 𝑐𝑜𝑟𝑡𝑒𝑎𝑙𝑒𝑎𝑡−¿

𝑎𝑟𝑒𝑠𝑡𝑎𝑠𝑐𝑜𝑟𝑡 .𝑝𝑜𝑟 𝑀𝐸𝑇𝐼𝑆 ¿

Page 15: RealtimeSystems - Presentation

AB: Avoid BigB: BalancedPB: Prefer BigC: ChunkingDG: Determ. GreedyEDG: Exp. Det. GreedyERG: Exp. Rand. GreedyET: Exp. TrianglesGE: Greedy EvoCutH: Hashing

LDG: Linear Det. GreedyLRG: Linear Rand. GreedyLT: Linear TrianglesRG: Random. GreedyBB: Balance BigT: Triangle

Resultados

Melhor heurística, LDG, tem um ganho médio de

76% em todos os conjuntos!

Hash

METIS

Page 16: RealtimeSystems - Presentation

Escalando o tamanho dos grafos: explorando grafos sintéticos

LDG

Hash

METIS

Page 17: RealtimeSystems - Presentation

Mais observações

● BFS é uma ordenação superior para todos os

algoritmos

● Avoid Big foi 46% PIOR em média do que

Random Cut

Page 18: RealtimeSystems - Presentation

Resultados em um Sistema Real● Comparação do particionamento de fluxo com o

hashing aleatório no SPARK

● Duas base de dados

o 4,6 milhões de usuários, 77 milhões

de arestas

o 41,7 milhões de usuários, 1,468

bilhão de arestas

● Calculado o PageRank de cada grafo

Page 19: RealtimeSystems - Presentation

Resultado no Spark

Ganho no Twitter:Naïve – 19,1%

Combiner – 18,8%

Ganho no LJ:Naïve – 38,7%

Combiner– 28,8%

LJ Hash LJ Stream Twitter Hash Twitter Stream

Naïve PR Mean 296.2 s 181.5 s 1199.4 s 969.3 s

Naïve PR STD 5.5 s 2.2 s 81.2 s 16.9 s

Combiner PR Mean 155.1 s 110.4 s 599.4 s 486.8 s

Combiner PR STD 1.5 s 0.8 s 14.4 s 5.9 s

LiveJournal – 4,6 milhões de usuários, 77 milhões de arestasTwitter – 41,7 milhões de usuários, 1,468 bilhão de arestas

Page 20: RealtimeSystems - Presentation

Dúvidas?