GithubHelp home page GithubHelp logo

hirayaku / edgepart Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ansrlab/edgepart

0.0 1.0 0.0 134 KB

a repo for edge partitioning algorithms

License: MIT License

Python 1.86% CMake 6.42% C++ 91.72%

edgepart's Introduction

Edge Partitioning Algorithms for Large Graphs

These algorithms are implemented by Qin Liu during his study at CUHK.

In this repo, we implement several edge partitioning algorithms and compute their replication factors for comparison:

Compilation and Usage

We tested our program on Ubuntu 14.04/16.04, and it requires the following packages: cmake, glog, gflags, boost:

sudo apt-get install libgoogle-glog-dev libgflags-dev libboost-all-dev

Compilation:

git clone https://github.com/ansrlab/edgepart.git
cd edgepart
mkdir release && cd release
cmake ..
make -j8

Usage:

$ ./main --help
main: -filename <path to the input graph> [-filetype <edgelist|adjlist>] [-p <number of partitions>] [-memsize <memory budget in MB>]

  Flags from /home/qliu/workspace/edgepart/src/main.cpp:
    -filename (the file name of the input graph) type: string default: ""
    -filetype (the type of input file (supports 'edgelist' and 'adjlist'))
      type: string default: "edgelist"
    -inmem (in-memory mode) type: bool default: false
    -memsize (memory size in megabytes) type: uint64 default: 4096
    -method (partition method: ne, sne, random, and dbh) type: string
      default: "sne"
    -p (number of parititions) type: int32 default: 10
    -sample_ratio (the sample size divided by num_vertices) type: double
      default: 2

Example. Partition the Orkut graph into 30 parts using our NE algorithm:

$ ./main -p 30 -method ne -filename /path/to/com-orkut.ungraph.txt

Example. Partition the LiveJournal graph into 30 parts using our SNE algorithm (CacheSize = 2|V|, see our paper for detailed description):

$ ./main -p 30 -method sne -filename /path/to/com-lj.ungraph.txt -sample_ratio 2

Evaluation

The experiments are conducted on a PC with 16 GB RAM. MLE means "memory limit exceeded".

Algorithms that are listed but not contained in this repo:

  • METIS
  • Sheep: published on VLDB'15
  • Algorithms that has been integrated in to PowerGraph
    • Oblivious
    • High-Degree (are) Replicated First (HDRF): published on CIKM'15
Algorithm wiki-Vote email-Enron web-Google com-LiveJournal com-Orkut twitter-2010 com-Friendster uk-union
METIS 5.25 2.40 1.05 2.13 MLE MLE MLE MLE
NE 2.35 1.34 1.12 1.55 2.48 1.88 1.98 1.04
Random 9.28 5.10 6.54 8.27 19.48 11.68 11.84 15.99
DBH 5.43 3.32 4.09 5.18 11.97 3.67 6.88 5.14
Oblivious 3.85 2.30 2.28 3.43 6.94 8.60 8.82 2.03
HDRF 3.90 2.12 2.18 3.33 7.27 7.90 8.87 1.62
Sheep 4.20 1.78 1.71 3.33 7.94 2.34 4.45 1.29
SNE 3.05 1.44 1.17 1.88 4.49 2.83 3.00 1.65
HSFC 3.80 3.75 2.66 3.78 6.31 5.82 4.80 1.96

edgepart's People

Contributors

hirayaku avatar lqhl avatar

Watchers

 avatar

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.