使用图形工具

时间:2017-05-07 09:54:22

标签: performance graph graph-tool

我正在尝试计算1M节点3M边缘图上的中介中心性。 我正在使用图表工具以及以下代码行:

from graph_tool.all import *
g = load_graph("youtube.graphml")
scores = graph_tool.centrality.betweenness(g)

在其性能比较页面中,据报道,要计算(40k,300k)-directed_graph之间的插入度,图表工具需要 4分钟https://graph-tool.skewed.de/performance

由于图形工具使用具有O(VE)复杂度的Brandes算法,因此我期望得到近似的运行时间:

(1M/40k)*(3M/300k)*4m=25*10*4m=1000m~17h 

我发现此计算与以下stack帖子一致,其中对于(2M,5M)图,用户使用NetworkX给出了大约6个月的运行时间,比图形工具慢x180。因此:

6 months = 180 days(NetworkX) ~ 1 day(graph-tool)

关键是我的程序从2天开始在4核机器上运行,所以我开始怀疑我的推理是否有意义。

此外,图形工具基准测试是在有向图上执行的,Brandes算法的复杂度为O(VE+V(V+E)logV)。鉴于这一点,不应该比预先写的更小的预期运行时间?更重要的是使用图形工具和4核机器计算(1M,3M)网络的中介中心性是否可行?

我使用的是Intel(R)Core(TM)i7-6700HQ CPU @ 2.60GHz

0 个答案:

没有答案