Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graph Types/Classes in Python #1379

Open
1 task done
BradReesWork opened this issue Feb 3, 2021 · 0 comments
Open
1 task done

Graph Types/Classes in Python #1379

BradReesWork opened this issue Feb 3, 2021 · 0 comments
Assignees
Labels
Epic Tracker for a relatively large body of work that is broken down into stories and issues

Comments

@BradReesWork
Copy link
Member

BradReesWork commented Feb 3, 2021

cuGraph needs to expand its list of graph types to better capture and support the fully range of graph analytics. Various graph types require different processing, and having well defined classes helps control and ensure accurate processing and analytical results. cuGraph currently supports a single data structure, called Graph, that is used for every possible graph problem. Some of the issues are:

  • Some methods are only for one graph type, with requires a lot of status flag checking
  • Some graph types require different input parameters

Any refactoring that results in user-facing changes needs to include a Deprecation Warning for at least one release before the breaking API change is finalized in the next release.

Class Directed & Undirected Self-loops Allowed Parallel edges Allowed Isolated vertices Allowed Distributed-capable Batch-capable Release
Graph Yes Yes No Yes Yes Yes
MultiGraph Yes Yes Yes Yes Yes ?
BipartiteGraph Yes Yes Yes Yes Yes ?
HyperGraph Yes Yes Yes Yes Yes ?
Tree Yes No No No Yes ?
Property Directed-only Yes Yes Yes ? ?

Tasks:

  • [DOC] Create new Graph Class design  #1384 Design new class inheritance structure
  • New Design document
  • [ENH] Document which algorithms work on which graph types and formats #1095 Document graph types to algorithms
  • new Graph Class, GraphImpl internal class & docs+tests
  • Add DiGraph backwards-compat class with DeprecationWarning
  • Renumbering: extend in-progress impl and retire current/legacy
  • Add new from_edgelist() API & docs+tests
  • Add filtering API (remove verts/edges based on lambda) & docs+tests
  • Add pruning API (remove: self-loops, isolated verts, sinks, verts based on degree, explicit vert/edge) & docs+tests
  • Add updating API (update weights based on lambda) & docs+tests
  • Add insert API (add vert/edge) & docs+tests
  • Add compat module for CuPy & docs+test refactoring
  • Add compat module for NetworkX & docs+test refactoring
  • Add compat module for SciPy/Pandas (if necessary) & docs+test refactoring
  • Notebook update based on new classes/APIs
  • Blog on new classes, new compat modules, etc.
  • Add expert mode APIs (allow user to perform specific graph/algo-prep operations upfront with documented caveats) & docs+tests
  • Expert mode notebook
  • Blog on expert mode (if applicable)
  • Add new MultiGraph Class, internal Impl class if necessary, & docs+tests
  • Add Bipartite Graph Class, internal Impl class if necessary, & docs+tests
  • Add HyperGraph Class, internal Impl class if necessary, & docs+tests
  • Add Tree Class, internal Impl class if necessary, & docs+tests
  • Add Forest Class, internal Impl class if necessary, & docs+tests
  • Add Property Class, internal Impl class if necessary, & docs+tests
  • New classes notebook(s)
  • Blog 3 if applicable

Also address:

Related Tasks

Preview Give feedback
  1. improvement
    rlratzel
@BradReesWork BradReesWork added the ? - Needs Triage Need team to review and classify label Feb 3, 2021
@BradReesWork BradReesWork added Epic Tracker for a relatively large body of work that is broken down into stories and issues and removed ? - Needs Triage Need team to review and classify labels Feb 3, 2021
@BradReesWork BradReesWork added the UX label Feb 3, 2021
@rapidsai rapidsai deleted a comment from github-actions bot Nov 8, 2021
@BradReesWork BradReesWork removed the UX label Sep 20, 2022
@BradReesWork BradReesWork added the ? - Needs Triage Need team to review and classify label Jul 6, 2023
@BradReesWork BradReesWork removed the ? - Needs Triage Need team to review and classify label Jul 13, 2023
@rapidsai rapidsai deleted a comment from github-actions bot Aug 1, 2023
@rapidsai rapidsai deleted a comment from github-actions bot Aug 1, 2023
@rapidsai rapidsai deleted a comment from github-actions bot Aug 1, 2023
@rapidsai rapidsai deleted a comment from github-actions bot Aug 1, 2023
@kingmesal kingmesal changed the title [EPIC] Graph Types/Classes in Python Graph Types/Classes in Python Aug 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Tracker for a relatively large body of work that is broken down into stories and issues
Projects
None yet
Development

No branches or pull requests

5 participants