Network Analysis At The Speed Of C With The Power Of Python Using NetworKit


August 14th, 2021

37 mins 7 secs

Your Hosts

About this Episode


Analysing networks is a growing area of research in academia and industry. In order to be able to answer questions about large or complex relationships it is necessary to have fast and efficient algorithms that can process the data quickly. In this episode Eugenio Angriman discusses his contributions to the NetworKit library to provide an accessible interface for these algorithms. He shares how he is using NetworKit for his own research, the challenges of working with large and complex networks, and the kinds of questions that can be answered with data that fits on your laptop.


  • Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
  • Your host as usual is Tobias Macey and today I’m interviewing Eugenio Angriman about NetworKit, an open-source toolkit for large-scale network analysis


  • Introductions
  • How did you get introduced to Python?
  • Can you describe what NetworKit is and the story behind it?
  • A core focus of the project is for use with graphs containing millions to billions of nodes. What are some of the situations where you might encounter networks of that scale?
  • There are a number of network analysis libraries in Python. How would you characterize NetworKit’s position in the ecosystem?
  • What are the algorithmic challenges that graph structures pose when aiming for scalability and performance?
    • How do you approach building efficient algorithms for complex network analysis?
  • Can you describe how NetworKit is architected?
    • What are the design principles that you focus on for the library?
    • How have the design and goals of the project changed or evolved since you have been working on it?
  • NetworKit’s code base has now a discrete size and several developers contributed to it. Are there any minimum quality requirements that new code needs to fulfill before it can be merged into NetworKit? How do you ensure that such requirements are met?
  • What are some of the active areas of research for networked data analysis?
  • How are you using NetworKit for your own work?
  • What are kind of background knowledge in graph analysis is necessary for users of NetworKit?
  • What are some of the underutilized or overlooked aspects of NetworKit that you think should be highlighted?
  • What are the most interesting, innovative, or unexpected ways that you have seen NetworKit used?
  • What are the most interesting, unexpected, or challenging lessons that you have learned while working on NetworKit?
  • When is NetworKit the wrong choice?
  • What do you have planned for the future of NetworKit?

Keep In Touch


Closing Announcements

  • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
  • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
  • If you’ve learned something or tried out a project from the show then tell us about it! Email with your story.
  • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
  • Join the community in the new Zulip chat workspace at


The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA