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

Talk proposal: Understanding API Dispatching in NetworkX #188

Open
3 tasks done
Schefflera-Arboricola opened this issue Dec 11, 2024 · 1 comment
Open
3 tasks done
Labels
scheduled The scheduled talks talk-proposal New talk of Python Pune meetup

Comments

@Schefflera-Arboricola
Copy link

Schefflera-Arboricola commented Dec 11, 2024

Title of the talk

Understanding API Dispatching in NetworkX

Description

Hi! Have you ever wished your Python libraries were faster? Or wanted to fundamentally improve a Python library by rewriting everything in a faster language like C or Rust? Well, wish no more... NetworkX's API dispatching mechanism redirects your plain old NetworkX function calls to a FASTER implementation present in a separate backend package by leveraging the Python's entry_point specification!

NetworkX is a popular, pure Python library used for graph(aka network) analysis. But when the graph size increases (like a network of everyone in the world), then NetworkX algorithms could take days to solve a simple graph analysis problem. So, to address these performance issues, a backend dispatching mechanism was recently developed. In this talk, we will unveil this dispatching mechanism and its implementation details, and how we can use it just by specifying a backend kwarg like this:

>>> nx.betweenness_centrality(G, backend=“parallel”)

or by passing the backend graph object(type-based dispatching):

>>> H = nxp.ParallelGraph(G)
>>> nx.betweenness_centrality(H)

We'll also go over the limitations of this dispatch mechanism. Then we’ll use the example of nx-parallel backend as a guide to understand various NetworkX backend and backend configuration features.

Finally, I'll conclude with a brief overview of how this API dispatch mechanism could be integrated in an non-graph-related Python libraries, such as an array-based or data-centric libraries, along with the potential challenges that may arise during integration. This will be followed by an interactive Q&A session.

Slides from the previous versions of this talk - https://github.com/Schefflera-Arboricola/blogs/tree/main/archive . But, this one will be different!

Thank you :)

Table of contents

  • Graphs and what is NetworkX?
  • Dispatching in General
  • Dispatching in NetworkX
  • Other Dispatching related things
  • Dispatching in other projects

Duration (including Q&A)

30 min

Prerequisites

  • Some basic Python... should know what classes and objects are
  • Curiosity

Speaker bio

Hi, I'm Aditi!

GitHub - https://github.com/Schefflera-Arboricola
Slides - https://github.com/Schefflera-Arboricola/blogs/blob/main/archive/PythonPune_December2024_Meetup.pdf

The talk/workshop speaker agrees to

@Schefflera-Arboricola Schefflera-Arboricola added the talk-proposal New talk of Python Pune meetup label Dec 11, 2024
@raukadah
Copy link
Contributor

Thank you @Schefflera-Arboricola for proposing the talk. As discussed on Linkedin, We will be scheduling it for Dec 15, 2024 (Sunday) December Python Pune meetup.

@raukadah raukadah added the scheduled The scheduled talks label Dec 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scheduled The scheduled talks talk-proposal New talk of Python Pune meetup
Projects
None yet
Development

No branches or pull requests

2 participants