Coder Social home page Coder Social logo

isabella232 / hygraph Goto Github PK

View Code? Open in Web Editor NEW

This project forked from atlarge-research/hygraph

0.0 0.0 0.0 17 KB

High-Performance Graph Processing on Heterogenous CPU-GPU Platforms by Dynamic Workload Balancing

C++ 74.89% Cuda 22.93% CMake 2.18%

hygraph's Introduction

HyGraph: High-Performance Graph Processing on Hybrid CPU-GPU Platforms by Dynamic Load-Balancing

HyGraph [1] is a graph-processing system designed for hybrid platforms consisting of a multi-core CPU and a NVIDIA GPU. It solves the issue of workload imbalance in hybrid graph processing by replicating vertex state into both CPU and GPU memory and scheduling task onto both CPU and GPU in a dynamic fashion. This balances the workload of both devices, resulting in high performance. By overlapping communication and computation, the overhead of data transfers between CPU and GPU is hidden.

Compile

HyGraph requires the following packages (in parentheses are the recommended versions):

  • NVIDIA CUDA Compiler (at least 7.0)
  • Any C compiler (tested with gcc 4.8.2)
  • GNU Make
  • CMake

To compile, create a directory named build and run cmake in this directory.

mkdir build
cd build
cmake ..

Usage

To run HyGraph, run main.

./main [graph file] [algorithm]

Where algorithm should be one of the following: bfs (Breadth-first search), pr (PageRank), sssp (Single-Source Shortest Path), cc (Connected components). The graph file should be in human-readable format containing one edge per line where each edge consists of a pair of two number. Duplicate edges, empty lines or comments (start with # or * or -) are ignored. Example of valid graph file:

1 2
2 3
3 5
1 5

To decrease graph loading time, it is possible to convert the graph into a binary format using the convert program.

./convert [text graph file] [binary graph file]

Where the binary graph file should be have .bin appended. For example, ./convert test.txt test.txt.bin.

License

This software is licensed under the GNU GPL v3.0.

Bibliography

[1] Heldens S., Varbanescu A. L., Iosup A., HyGraph: Fast Graph Processing on Hybrid CPU-GPU Platforms by Dynamic Load-Balancing, 2016. Manuscript submitted for publication.

hygraph's People

Contributors

stijnh 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.