good graph/complex networks libraries

I am looking for good recommendation for graph analysis libraries or framework,better in C++ or java. I have found some graph libraries,

https://stackoverflow.com/questions/3010805/scalable-parallel-large-graph-analysis-library

This webpage gives some possible solutions:

• C++ -- The most viable solutions appear to be the Boost Graph Library and Parallel Boost Graph Library. I am also looking at MTGL, although it is slanted more toward massively multithreaded hardware architectures like the Cray XMT. Lastly, I've added LEMON to my list for consideration. • C - igraph and SNAP (Small-world Network Analysis and Partitioning); latter uses OpenMP for parallelism on SMP systems. • Java - I have found no parallel libraries here yet, but JGraphT and perhaps JUNG are leading contenders in the non-parallel space. • Python - igraph and NetworkX look like the most solid options, though neither is parallel. There used to be Python bindings for BGL, but these are now unsupported; last release in 2005 looks stale now.

but I am not sure which one I should use based on my own need:

  • good data structure and algorithm. It can analysis properties of complex networks.
  • Scalable: I can modify and implement my algorithm on it
  • can analysis of graphs/networks with million nodes and edges
  • complex networks can be produced by itself will be better, to save my time to look for the true complex networks.
  • Analysis capabilities and scalability are my primary concern. Does anyone have recommendations. Any suggestion will be helpful.


    I have used networkx and it works perfectly as well as Jung. If your data is in memory than these two work great but the problem I have with both of them is the lack of persistence(you can save both to a xml file and upload/download it to a database but no in-database analytics which limits the size of the graph to the size of memory).

    Lately i have been playing around with neo4j(and various add ons), which gets around this. It doesn't scale unlimited but if your data is less then 32 billion nodes then its really fast as a storage engine and you can use other cores(or worker machines) to analysis the graph in parallel. There's alot of performance docs on how they are really fast but I don't usually agree with those type of tests because its not my test case, so I suggest you download it(free on neo4j.org) and judge it for yourself.

    链接地址: http://www.djcxy.com/p/65284.html

    上一篇: 有向图的正方形

    下一篇: 良好的图形/复杂网络库