良好的图形/复杂网络库
我期待为图分析库或框架提供很好的建议,更好地使用C ++或java。 我找到了一些图库,
https://stackoverflow.com/questions/3010805/scalable-parallel-large-graph-analysis-library
该网页提供了一些可能的解决方案:
•C ++ - 最可行的解决方案似乎是Boost Graph Library和Parallel Boost Graph Library。 我也在研究MTGL,尽管它倾向于像Cray XMT这样的大型多线程硬件架构。 最后,我已将LEMON添加到我的清单中供考虑。 •C-igraph和SNAP(小世界网络分析和分区); 后者在SMP系统上使用OpenMP进行并行处理。 Java - 我在这里还没有找到并行库,但JGraphT和JUNG可能是非平行空间的主要竞争者。 •Python - igraph和NetworkX看起来是最稳固的选项,但都不是平行的。 曾经有BGL的Python绑定,但现在不支持这些绑定; 2005年的最新版本现在看起来很陈旧。
但我不确定我应该根据自己的需要使用哪一个:
分析功能和可扩展性是我最关心的问题。 有没有人有建议。 任何建议都会有帮助。
我使用过networkx,它和Jung一样完美。 如果你的数据在内存中比这两项工作好,但是我遇到的问题是缺乏持久性(你可以将这两个文件保存为一个xml文件,并将其上传/下载到数据库,但是没有限制数据库内的分析图形大小以内存大小)。
最近我一直在玩neo4j(和各种附加组件),它可以解决这个问题。 它不能无限扩展,但如果您的数据少于320亿个节点,那么它作为存储引擎的速度非常快,您可以使用其他内核(或工作机器)并行分析图形。 有很多关于它们如何快速运行的性能文档,但我通常不会同意这些类型的测试,因为它不是我的测试用例,所以我建议您下载它(在neo4j.org上免费下载)并自行判断。
链接地址: http://www.djcxy.com/p/65283.html