nx_parallel: a parallel backend for NetworkX + nx-guides Contributor Guide and Traversal Notebook
- Mentors
- MridulS, dschult
- Organization
- NumFOCUS
- Technologies
- python, Jupyter Notebook
- Topics
- education, python, Graph Theory, Jupyter notebook
NetworkX is a Python package offering a large set of algorithms and tools for the study and manipulation of graphs. Users have requested parallel implementations of many algorithms, something especially relevant with the rising interest in machine learning and, as a result, parallel computation. As such, I built the foundation for nx_parallel, a parallel backend to NetworkX that makes use of its plugin dispatch architecture, an experimental feature. I parallelized multiple NetworkX functions in nx_parallel, and created the structure for future efforts to build out the parallel backend.
In addition, although the graph algorithms in NetworkX are well-documented, users benefit from explanations and example uses of the algorithms. To satisfy this need, NetworkX has created nx-guides, which are pedagogical Jupyter Notebooks that clearly explain and experimentally explore (with examples) algorithms implemented in NetworkX. I added a notebook to nx-guides where I explain the traversal algorithms provided by NetworkX. In addition, new contributors currently do not have a roadmap for contributing to nx-guides, as mentioned by @MridulS in community meeting notes. In addition to my pedagogical notebooks, I finalized an easy-to-follow contributing guide for nx-guides.