Skip to main content

Crate ringkernel_graph

Crate ringkernel_graph 

Source
Expand description

GPU-accelerated graph algorithm primitives for RingKernel.

This crate provides high-performance graph algorithms optimized for parallel execution on GPUs. It includes:

  • CSR Matrix: Compressed Sparse Row format for efficient graph storage
  • BFS: Parallel breadth-first search with multiple source support
  • SCC: Strongly connected components via forward-backward algorithm
  • Union-Find: Parallel disjoint set data structure
  • SpMV: Sparse matrix-vector multiplication

§Example

use ringkernel_graph::{CsrMatrix, bfs_parallel, NodeId};

// Build adjacency list: 0 -> 1 -> 2
let matrix = CsrMatrix::from_edges(3, &[(0, 1), (1, 2)]);

// Run BFS from node 0
let distances = bfs_parallel(&matrix, &[NodeId(0)]).await?;
assert_eq!(distances[0].0, 0);  // Distance to self
assert_eq!(distances[1].0, 1);  // Distance to node 1
assert_eq!(distances[2].0, 2);  // Distance to node 2

Re-exports§

pub use algorithms::bfs::bfs_parallel;
pub use algorithms::bfs::bfs_sequential;
pub use algorithms::bfs::BfsConfig;
pub use algorithms::scc::scc_kosaraju;
pub use algorithms::scc::scc_tarjan;
pub use algorithms::scc::SccConfig;
pub use algorithms::spmv::spmv;
pub use algorithms::spmv::spmv_parallel;
pub use algorithms::spmv::SpmvConfig;
pub use algorithms::union_find::union_find_parallel;
pub use algorithms::union_find::union_find_sequential;
pub use algorithms::union_find::UnionFind;
pub use models::csr::CsrMatrix;
pub use models::csr::CsrMatrixBuilder;
pub use models::node::ComponentId;
pub use models::node::Distance;
pub use models::node::NodeId;

Modules§

algorithms
Graph algorithms.
models
Graph data models.

Enums§

GraphError
Graph algorithm error types.

Type Aliases§

Result
Result type for graph operations.