Giter Club home page Giter Club logo

gelly-partition-centric's People

Contributors

kien-truong avatar koevskinikola avatar vasia avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gelly-partition-centric's Issues

Sky3 is down

Hi Vasia,
Sky3 is down again. Can you tell someone to check it on Monday ?
Thanks.

Algorithms for in-partition connected components

For the in-partition connected components algorithm, you can experiment with the following approaches:

  1. Store the whole partition as a graph structure (adjacency list / matrix) and find connected components using BFS/DFS iteratively for each vertex. This is the approach used in the Giraph++ paper.

  2. Use a semi-streaming-like graph algorithm. In this model, your partition operator will iterate over "augmented" edges, where the edge source vertex has an associated value (the component Id). You can create this type of records with a join of your workset (vertices) and edges. The algorithm works as follows:

  • For each partition, you maintain a disjoint set data structure for the partitions' components. For each edge, check if its endpoints already belong to an existing component. If not, create a component with id the smallest of the vertex Ids. If they belong to different components, merge them and update the component Id to the smallest of the 2 components Ids. If only one of the endpoints belongs to a component, add the other one to the same component and update the component Id if necessary.

Consider the following edges input in a partition: (3, 5), (3, 4), (1, 3), (2, 4), (5, 1), (6, 7), (5, 6). The algorithm proceeds as follows (assume each vertex has its own Id as initial component Id):

edge (3, 5) => create a new component and add the vertices

Component id Vertices
3 3, 5

edge (3, 4) => add 4 to the component

Component id Vertices
3 3, 5, 4

edge (1, 3) => add 1 to the component and update the component Id to min(1, 3)=1

Component id Vertices
1 3, 5, 4, 1

edge (2, 4) => add 2 to the component

Component id Vertices
1 3, 5, 4, 1, 2

edge (5, 1) => both vertices already in the component

Component id Vertices
1 3, 5, 4, 1, 2

edge (6, 7) => create new component with Id=6 and add both vertices

Component id Vertices
1 3, 5, 4, 1, 2
6 6, 7

edge (5, 6) => 5 belongs to comp=1, 6 belongs to comp=6 => merge the components and update the component Id to min(1, 6)=1.

Component id Vertices
1 3, 5, 4, 1, 2, 6, 7

TODO list, Nov 27

Based on today's meeting, we need to:

  • measure total time for job execution only
  • measure time per iteration
  • measure messages sent per iteration
  • measure active vertices per iteration
  • implement one more algorithm, e.g. SSSP

Please add anything I might have forgotten :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.