rapidsai / cugraph

cuGraph - RAPIDS Graph Analytics Library
https://docs.rapids.ai/api/cugraph/stable/
Apache License 2.0
1.74k stars 304 forks source link

[FEA]: Implement G.to_directed for distributed graphs #3140

Open acjones27 opened 1 year ago

acjones27 commented 1 year ago

Is this a new feature, an improvement, or a change to existing functionality?

New Feature

How would you describe the priority of this feature request

High

Please provide a clear description of problem this feature solves

Hi,

I am currently building a large directed graph on Multi-GPUs (1.7bn edges), and I am trying to calculate the number of weakly connected components. However, the calculation requires an undirected graph and I noticed that the G.to_directed method is not yet implemented for distributed graphs.

Do you know when this would be implemented?

Describe your ideal solution

Implementation of the function here: https://github.com/rapidsai/cugraph/blob/2f04980602cd7f48231c22af5e435a43d20429d9/python/cugraph/cugraph/structure/graph_implementation/simpleDistributedGraph.py#L754-L774

Describe any alternatives you have considered

Currently I'm just trying to build the undirected graph myself just to calculate this metric, but that requires me to rebuild the whole graph from scratch on a new machine just for this purpose (I run out of memory if I try to build both directed and undirected graphs on the same machine, even with 4 x A100 GPUs).

I tried building the graph on a single machine, so as not to build a distributed graph, but it's too large for any single GPU that I have access to.

Additional context

No response

Code of Conduct

BradReesWork commented 1 year ago

working this into the roadmap. @acjones27 thanks for the request

ChuckHastings commented 1 year ago

Reassigning to @rlratzel - this is a python requirement. There is python logic that handles this already, not sure why this is not implemented using the existing logic.

There is a need to optimize this logic, but that should be a separate issue, I believe.