-
Notifications
You must be signed in to change notification settings - Fork 15
Graph Algorithms
The following is are a wide variety of graph primitives, including traversal-based (Breadth-First Search, Single-Source Shortest Path); node-ranking (Hyperlink-Induced Topic Search, PageRank); and global (Connected Component, Minimum Spanning Tree) implemented within Gunrock.
The "File" column in the table below shows, which within these applications' implementations are (e.g. sssp.hxx
). The version number in the "Gunrock" and "Essentials" columns show which API abstraction of gunrock supports the respective application. If you are interested in helping us port an application in the older abstraction ("Gunrock") to a newer, much cleaner abstraction ("Essentials"), please see our How to write a new graph algorithm guide.
Application | Directory | Gunrock | Essentials |
---|---|---|---|
A* Search | astar | v0.5.x | |
Betweenness Centrality | bc | v1.x.x | v0.0.1 |
Breadth-First Search | bfs | v1.x.x | v0.0.1 |
Connected Components | cc | v1.x.x | 🌟 |
Graph Coloring | color | v1.x.x | v0.0.1 |
Geolocation | geo | v1.x.x | v0.0.1 |
RMAT Graph Generator | grmat | v0.5.x | |
Graph Trend Filtering | gtf | v1.x.x | |
Hyperlink-Induced Topic Search | hits | v1.x.x | v0.0.1 |
K-Core Decomposition | kcore | v1.x.x | v0.0.1 |
K-Nearest Neighbors | knn | v1.x.x | |
Louvain Modularity | louvain | v1.x.x | 🌟 |
Label Propagation | lp | v0.5.x | |
MaxFlow | mf | v1.x.x | |
Minimum Spanning Tree | mst | v0.5.x | v0.0.1 |
PageRank | pr | v1.x.x | v0.0.1 |
Local Graph Clustering | pr_nibble | v1.x.x | v0.0.1 |
Graph Projections | proj | v1.x.x | |
Random Walk | rw | v1.x.x | 🌟 |
GraphSAGE | sage | v1.x.x | |
Stochastic Approach for Link-Structure Analysis | salsa | v0.5.x | |
Subgraph Matching | sm | v1.x.x | 🌟 |
Shared Nearest Neighbors | snn | v1.x.x | |
Scan Statistics | ss | v1.x.x | |
Sparse-Matrix Vector Multiplication | spmv | v0.0.1 | |
Single Source Shortest Path | sssp | v1.x.x | v0.0.1 |
Triangle Counting | tc | v1.x.x | v0.0.1 |
Top K | topk | v0.5.x | |
Vertex Nomination | vn | v1.x.x | |
Who To Follow | wtf | v0.5.x |
(🌟 are priority ports, and we're interested in porting them as soon as possible)
Essentials © 2022 The Regents of the University of California
- Programming Model
- Gunrock Operators
- Graph Algorithms
- Getting Essentials
- (GitHub Template)
essentials
project example
- MGPU, Python, Docs (needs review)
- Boolmap Frontier
- Hypergraphs (private)
- Modern CPP Features
- Programming Interface Examples (API)
- Style Guide
- Understanding the code structure
- Git Workflow
-
Debugging with
cuda-memcheck
andcuda-gdb
- Profiling with NVIDIA Nsight Systems and Compute
- Unit testing with GoogleTest
- Performance analysis
- How to write a new graph algorithm
- PageRank: PageRank: From
networkx
togunrock essentials
- How to write parallel operators
- How to add a new graph representation
- How to add a new frontier representation
- How to add multiple GPU support
- How to bind an application to python
- How to use
thrust
/cub
- Writing sparse-matrix dense-vector multiplication using graphs
- Variadic Inheritance
- Polymorphic-Virtual (Diamond) Inheritance
- Need for custom copy constructor
- CUDA-enabled
std::shared_ptr
- Ubuntu
-latest
- Windows
-latest
- Doxygen
- Code Quality