(Python图形工具)使用OpenMP进行图形工具搜索?可以使查找源顶点与目标顶点之间的所有路径平行吗?

时间:2019-02-07 00:06:41

标签: python search openmp graph-theory graph-tool

我目前正在使用graph_tool.topology.all_paths来查找特定长度的两个顶点之间的所有路径,但是documentation并未明确说明所使用的算法。我认为它是广度优先搜索(BFS)还是Dijkstra的算法,例如shortest_pathall_shortest_paths

我的图是未加权和有向的,因此,有没有办法使我使用all_paths进行并行搜索并使用更多核?我知道我已经使用openmp_enabled()打开了OpenMP,并且它设置为使用我拥有的所有8个内核。

我已经看到有些algorithms such as the DFS不能被并行化,但是我不明白为什么为什么不使用多个核来遍历我的图以查找到一定长度的所有路径呢? {3}}具有使用多核的最短路径的基准。

使用基本功能运行graph_tool.topology.all_paths(g, source, target, cutoff=4)

def find_paths_of_length(graph, path_length, start_vertex, end_vertex):
savedpath=[]
for path in graph_tool.topology.all_paths(graph, start_vertex, end_vertex, cutoff=path_length):
    savedpath.append(path)

仅使用1个核心。有什么办法可以并行完成吗?我的网络包含约5000万个顶点和2亿条边,根据文档,算法为O(V!)。

预先感谢

0 个答案:

没有答案