RealtimeSystems - Presentation
-
Upload
wilson-de-carvalho -
Category
Documents
-
view
13 -
download
0
Transcript of RealtimeSystems - Presentation
![Page 1: RealtimeSystems - Presentation](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/1.jpg)
Streaming graph partitioning for large
distributed graphsWilson de Carvalho
Processamento de Dados Massivos - 10/2014
![Page 2: RealtimeSystems - Presentation](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/2.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/3.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/4.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/5.jpg)
Visão Geral do Problema
11 1010 1111
10
k = 2
![Page 6: RealtimeSystems - Presentation](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/6.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/7.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/8.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/9.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/10.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/11.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/12.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/13.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/14.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/15.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/16.jpg)
Escalando o tamanho dos grafos: explorando grafos sintéticos
LDG
Hash
METIS
![Page 17: RealtimeSystems - Presentation](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/17.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/18.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/19.jpg)
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](https://reader038.fdocumentos.com/reader038/viewer/2022103020/55cdf6fabb61eb7e488b4595/html5/thumbnails/20.jpg)
Dúvidas?