-
-
Notifications
You must be signed in to change notification settings - Fork 31
Adding Embarrassingly Parallel Algorithms in NetworkX to nx-parallel #82
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
Comments
Hey , i would like to work on this issue |
Hi @RohitP2005 , let us know if you have any questions :) Also, writing parallel versions of functions that return a non-generator(i.e. functions that |
Thank you @Schefflera-Arboricola , I will reach out to you if i need anything |
@Schefflera-Arboricola i have made a pull request traversal |
hey @Schefflera-Arboricola can u clarify that am i supposed to add a alogrithmfrom in networkx that is embarissingly parallel to the nxparallel algorithms |
Hi, I am trying to add a parallel algorithm for diameter of unweighted graphs based on this paper since the current algorithm which works for weighted graphs does not have much scope for parallelisation. When, I run the tests for the parallel algorithm it fails the test cases which are based on weighted graphs. Should I go ahead and submit the PR anyway? |
It is fine to submit early-stage or not-quite-working PRs. You can indicate that they aren't quite ready to be merged by selecting the option of a "Draft Pull Request". Or you can just state in the PR post what is not quite working and how you've tried to make it work. Of course the PR comment should start with a description of the intent of the PR and description of what it does -- just like a PR with completed work would. |
Hey @Schefflera-Arboricola, |
Hello @Schefflera-Arboricola, I am looking into implementing additional algorithms in nx-parallel and would appreciate your input. I came across an article mentioning that computing Closeness Centrality on large graphs is computationally expensive in NetworkX. Given that Betweenness Centrality is already parallelized in the repository, would it be worthwhile to explore parallelization for other centrality algorithms as well? Please let me know if this approach is good. |
If you’re confident with your approach, please open a PR. We’ll review it. If you run into specific issues, feel free to ask, but otherwise, just go for it. Thanks! |
Embarrassingly parallel algorithms
Embarrassingly parallel algorithms are those that can be easily and efficiently divided into smaller, independent tasks that can be executed concurrently across multiple processing units, such as CPUs, GPUs, or nodes, without requiring significant communication or synchronisation between them. This type of parallelism is often referred to as “embarrassingly parallel” because it’s so straightforward and easy to implement. Refer this to see how to implement embarrassingly parallel algorithms using joblib.
Characteristics of Embarrassingly Parallel Problems(Algorithms):
Adding a new algorithm to nx-parallel
Step 1 : Find a NetworkX algorithm that is embarrassingly parallel
_dispatchable
decorator(in the networkx's codebase) on the algorithm you have selected to parallelise.Step 2 : Complete the checklist in Contributor's guide
This checklist in Contributor's guide for adding a new algorithm to the package.
Some references:
It would be better to look at currently existing algorithms than previous PRs that add parallel algorithms(like #60 , #37 , #45 and many more) because we have changed a few things.
Feel free to ask questions if you get stuck anywhere or if anything is not clear or if you want something to be explained in a bit more detail here.
Thank you :)
The text was updated successfully, but these errors were encountered: