如何在Python中并行计算节点的交集?
我正在处理大型数据集,为了减少执行时间,我需要在python中使用并行处理来计算图形中两个节点的交集。我使用下面的代码计算数据集中所有N个节点的交集<代码>节点\u邻居是由多个节点组成的节点的相邻集如何在Python中并行计算节点的交集?,python,Python,我正在处理大型数据集,为了减少执行时间,我需要在python中使用并行处理来计算图形中两个节点的交集。我使用下面的代码计算数据集中所有N个节点的交集节点\u邻居是由多个节点组成的节点的相邻集 for i in range(N): CN_sum = 0 d = {} for neighbor in nodes_neighbors[i]: intersect = len(list(set(nodes_neighbors[i]) &
for i in range(N):
CN_sum = 0
d = {}
for neighbor in nodes_neighbors[i]:
intersect = len(list(set(nodes_neighbors[i]) & set(nodes_neighbors[neighbor])))
CN_sum = CN_sum + (intersect)
node_importance.append(([i, CN_sum]))
我想知道如何使它并行运行以节省时间。我尝试了一些方法,比如创建Pool()和多处理,但是因为我对python有点陌生,所以我没能做到 通过存储集合,而不是当前在
节点\u邻居中的任何集合,然后intersect=sum(1表示节点中的c\u邻居[i]如果节点中的c\u邻居[i])
,可以大大加快代码的速度。您当前正在每次迭代中构建2个集合和一个列表。不使用集合而使用已排序的列表,并使用合并排序类型方法计算交集可能会更快。通过存储集合而不是当前在节点\u邻居中的任何集合,您可以使代码更快,然后intersect=sum(1表示节点中的c\u neigbors[i]如果节点中的c\u neighbor[i])
。您当前正在每次迭代中构建2个集合和一个列表。不使用集合而使用排序列表,并使用合并排序类型方法计算交集可能会更快。