On the pokec dataset it takes just 0.2s to run the page rank algorithm (graph-tool: 1.7s, igraph: 59.6s, snap: 19.5s). For the k-core decomposition it is also 10 times faster than all other competitors or 2000 times networkx.
NX is certainly capable of handling graphs that large, however, performance will largely be a function of your hardware setup. Aric will likely give a better answer, but NX loads graphs into memory at once, so in the ranges your are describing you will need a substantial amount of free memory for it to work.
You should add graph-tool to the python list. It is very complete, and it is implemented in C++, with the Boost Graph Library, making it orders of magnitude faster than python-only alternatives, such as NetworkX.
Disclaimer: I'm the author of graph-tool. :-)
For Clojure, there is loom. Its WIP but looks good.
The Stanford Network Analysis Project (SNAP) was written in C++ and designed with performance in mind to analyze large data sets. The project has been extended with a Python library, and it has comprehensive documentation.
Note also that the project is a good resource for empirical data sets from a variety of domains.
In Java, prefuse is by far the best graph drawing package. It has a very fast force-directed layout algorithm, and since you can tweak the parameters in real time and drag nodes around to get the graph looking the way you want, you’ll be able to explore and arrange much larger graphs than with any non-interactive system.
Try out this demo applet and you’ll fall in love with it too...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With