GithubHelp home page GithubHelp logo

sapahlavani / c-saw Goto Github PK

View Code? Open in Web Editor NEW

This project forked from concept-inversion/c-saw

0.0 0.0 0.0 17.81 MB

A Framework for Graph Sampling and Random Walk on GPUs.

Shell 1.26% C++ 10.99% C 3.28% Cuda 83.26% Makefile 1.21%

c-saw's Introduction

C-SAW: A Framework for Graph Sampling and Random Walk on GPUs


C-SAW is a GPU based framework which can be used to implement variants of graph sampling and random walk algorithms.

This repo contains two folders. One for streaming sampling for large graph and another for non-streaming sampling for graphs that fit in GPU memory.

C-SAW uses CSR format of graph for sampling. Web-google dataset is included in the repo as example. Adjacency list of most datasets are available here. http://snap.stanford.edu/data/index.html

The adjacency list can be converted into CSR using this library: https://github.com/asherliu/graph_project_start

Generate the CSR and put the folder in main directory of both non-streaming and streaming sampling.

To run:

Step 1: Define the required API in API.cuh inside the non-streaming folder.

Step 2: Go to streaming or non streaming folder. Run make command.

Step 3: Update the dataset name in the run.sh file.

Step 4: ./run.sh <# of samples> <FrontierSize> <NeighborSize> <Depth/Length> <nGPUs> 

For changing the depth of the sampling or length of the random walk, update the DEPTH_LIMIT within Sampling class in sample_class.cuh at non-stream folder. You can also change the memory allocation and other paramters with the Sampling class.

The sampled graph is stored as edge list in the GPU memory as a class variable Si found in sample_class.cuh. The output format:

Edges sampled, dataset name, min-time, max-time

min-time and max-time is same for single GPU. SEPS can be computed as Edges sampled/max-time.

For more details, please refer to our paper.

Citation:

@INPROCEEDINGS {,
author = {S. Pandey and L. Li and A. Hoisie and X. Li and H. Liu},
booktitle = {2020 SC20: International Conference for High Performance Computing, Networking, Storage and Analysis (SC)},
title = {C-SAW: A Framework for Graph Sampling and Random Walk on GPUs},
year = {2020},
volume = {},
issn = {},
pages = {780-794},
keywords = {},
doi = {10.1109/SC41405.2020.00060},
url = {https://doi.ieeecomputersociety.org/10.1109/SC41405.2020.00060},
publisher = {IEEE Computer Society},
address = {Los Alamitos, CA, USA},
month = {nov}
}

c-saw's People

Contributors

concept-inversion 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.