Dagger.jl icon indicating copy to clipboard operation
Dagger.jl copied to clipboard

Add DaggerGraphs subpackage

Open jpsamaroo opened this issue 2 years ago • 0 comments

This was started during JuliaCon with @pszufe but I never finished it - it's a naive Graphs.jl directed graph implementation that uses Dagger to partition the graph.

@gdalle

Todo:

  • [x] Optimize add_vertices! implementation
  • [x] Add undirected graph support
  • [x] Add freeze for creating immutable DGraph
  • [x] Optimize immutable DGraph operations
  • [x] Default to directed graph
  • [x] Add vertex/edge metadata support
  • [x] Add lazy weights implementation (calls weights on metadata)
  • [x] Rename "external" to "background" for cross-partition AdjList
  • [x] Switch AdjList to dense representation (like SimpleGraph)
  • [x] Optimize purely local operations
  • [x] Validate Graphs.jl interface compatibility
  • [x] Return and cache neighborhood on remote vertex lookup (inneighbors/outneighbors)
  • [ ] Implement user-configurable caching strategies
  • [ ] Prefetch neighborhoods
  • [x] Implement batched and/or streaming edge creation
  • [x] Add loading/saving from $k^2$ files
  • [x] Validate benchmark performance on purely-local operations versus SimpleGraph
  • [ ] Add docs
  • [x] Add CI
  • [ ] (Optional) Add support for ingesting vertices/edges from a DataFrame or Tables source

jpsamaroo avatar Oct 31 '23 19:10 jpsamaroo