Code Monkey home page Code Monkey logo

Project of Uncertain Graph System

Toward Enabling efficient uncertain graph processing on multi-accelerator systems.

  • BPGraph: Path-Sampling Centric Uncertain Graph Processing

BPGraph (version Beta)

BPGraph is released under the MIT license.

If you use BPGraph in your research, please cite our paper:

  • ICS'22, BPGraph

Introduction

BPGraph is based on a novel runtime path sampling method, which is able to identify and eliminate unnecessary edge sampling via incremental path identification and filtering, resulting in significant reduction in computation and data movement. BPGraph is a general uncertain graph processing framework for multi-GPU systems, and provides general support for users to design and optimize a wide-range of uncertain graph algorithms and applications without concerning about the underlying complexity. For more details, see BPGraph's Overview.

BPGraph New Features:

  • Path Sampling Methodology
  • Path-Sampling Centric Programming APIs
  • High-Performance Supporting on GPUs

Supporting Applications

BPGraph supports the following applications in the implementation, and other algorithms are under developing.

  • Source-Target Path Query
  • K-Nearest Neighbors
  • Any-Pair Shortest Path Search

Quick Start Guide

Before building BPGraph, we recommend our software environment configuration of CMake 3.12, GCC 5.4 and CUDA 11 are required. The later version of the software dependencies are not tested in this time. Meanwhile, the third party code contained in our repository includes the following external dependencies: NCCL, BOOST, and other optional repository. For complete build guide, see Building BPGraph.

git clone --recursive https://github.com/bpgraph/bpgraph.git
cd bpgraph
mkdir build && cd build
cmake .. && make -j$(nproc)
bin/bpgraph --edgelist ../toy.mtx (--st ../st_toy.txt --app ...)

Getting Started with BPGraph

Fast start to run a simple example of source-to-target query in BPGraph system.

bin/bpgraph --edgelist ../toy.mtx --st ../st_toy.txt

Preprocessing

The dataset for this artifact contains all graphs listed the paper, converted to the edgelist matrix format (.mtx or .txt files). Also, we separately give the scripts of small and large datasets for automatically downloaded from open source repositories. Each graph is located in a separate subdirectory, with three additional files:

  • {graphfile}_mtx.txt Raw uncertain graph file.
  • {graphfile}.metadata Description file contains the basic information (#vertex, #edge, #diameter) for uncertain graphs.
  • {st-graphfile}.txt Source-target query datasets containing the generated source-target query pairs.
  • Monte-Carlo.txt Result datasets containing the final execution time, memory consumption and the reliability data.

Execution

Execute uncetain graph query with the following command. --edgelist sets the input graph file, -st sets the source-to-target node pair list file, -app sets the application and -d sets the number of GPU devices.

bin/bpgraph --edgelist ../toy.mtx --st ../st_toy.txt -d 2 -app st

Execute KNN with the following command.

bin/bpgraph --edgelist ../friendster.mtx -d 2 -app knn -sid 0

Execute ASAP with the follwoing command.

bin/bpgraph --edgelist ../twitter.mtx --st ../st_toy.txt -d 2 -app asap

Evaluation

The source files are under scripts folder. The parameters have been configured in the source files. You can rewrite the default setting (e.g., the number of devices, the sampling method and the distance metrics) in the source files or through parameters with the instructions in the files. Here, we demonstrate the input of graph data.

Experiment Datasets

You can download the graphs used in our paper by following the instructions.

Experimental Scritpts

The source files are under scripts folder.

bpgraph's Projects

bpgraph icon bpgraph

A Uncertain Graph Processing Framework

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.