GithubHelp home page GithubHelp logo

mintyiqingchen / gminer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yaobaiwei/gminer

0.0 1.0 0.0 282 KB

An efficient large-scale graph mining framework.

CMake 2.22% C++ 76.48% Shell 0.01% Makefile 7.71% C 8.79% Objective-C 4.79%

gminer's Introduction

G-Miner

G-Miner is a general distributed system aimed at general graph mining.

G-Miner, a distributed toolkit, a popular framework for large-scale graph processing. G-Miner adopts a number of state-of-art graph based algorithms and formulates a set of key operations in graph processing related fields. We implement these operations as the APIs of G-Miner, which provide strong performance guarantees due to the bounds on computation and memory. Over and above them, G-Miner itself has a high parallelism with both CPU and network as well.

Feature Highlights

  • General Graph Mining Schema: G-Miner aims to provide a unified programming framework for implementing distributed algorithms for a wide range of graph mining applications. To design this framework, we have summarized common patterns of existing graphmining algorithms.

  • Task Model: G-Miner supports asynchronous execution of various types of operations (i.e., CPU, network, disk) and efficient load balancing by modeling a graph mining job as a set of independent tasks. A task consists of three fields: sub-graph, candidates and context.

  • Task-Pipeline: G-Miner provides the task-pipeline, which is designed to asyn-chronously process the following three major operations in G-Miner: (1)CPU computation to process the update operation on each task, (2)network communication to pull candidates from remote machines, and (3)disk writes/reads to buffer intermediate tasks on local disk of every machine.

Getting Started

  • Dependencies Install

    G-Miner is built with the same dependencies of our previous project Pregel+. To install G-Miner's dependencies (e.g., MPI, HDFS), using the instructions in this guide.

  • Build

Please manually MODIFY the dependency path for MPI and HDFS in CMakeLists.txt in root directory.

$ export GMINER_HOME=/path/to/gminer_root  # must configure this ENV
$ cd $GMINER_HOME
$ ./auto-build.sh

Academic Paper

[Eurosys 2018] G-Miner: An Efficient Task-Oriented Graph Mining System. Hongzhi Chen, Miao Liu, Yunjian Zhao, Xiao Yan, Da Yan, James Cheng.

Acknowledgement

The subgraph-centric vertex-pulling API is attributed to our prior work G-thinker.

License

Copyright 2018 Husky Data Lab, CUHK

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.