Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python多处理最小跨度树-整个程序循环_Python_Loops_Multiprocessing - Fatal编程技术网

Python多处理最小跨度树-整个程序循环

Python多处理最小跨度树-整个程序循环,python,loops,multiprocessing,Python,Loops,Multiprocessing,我正在尝试使用Python中的多处理来加速针对大量数据的最小生成树算法。该树正在使用Prim的方法。简言之,我有一个程序,为每个类别创建一个加权矩阵,然后进入例程以生成最小跨度树,在这个例程中我有以下代码 if __name__=='__main__': m=Manager() q=Queue() #wt=partial(_lightest_edge_weight, graph=graph, visited=visited) p=

我正在尝试使用Python中的多处理来加速针对大量数据的最小生成树算法。该树正在使用Prim的方法。简言之,我有一个程序,为每个类别创建一个加权矩阵,然后进入例程以生成最小跨度树,在这个例程中我有以下代码

 if __name__=='__main__':
        m=Manager()
        q=Queue()
        #wt=partial(_lightest_edge_weight, graph=graph, visited=visited)
        p=Pool()
        #go to each visited edge
        for each in visited:
            q.put(each)
        q.put('DONE')
        #set up multiprocessing for edges in queue
        p.apply_async(target=_lightest_edge_weight, args=(graph,visited,q,))

但是,每当我这样做时(我也尝试过使用Process plus start和join),打开的新进程都会重新启动整个程序,而不仅仅是根据
\u light\u edge\u weight
运行队列中的项目。当整个程序循环而不仅仅是目标子程序时,有什么想法吗?谢谢。

如果您有任何代码在
之外运行,如果uuuu name uuuu=='\uuuu main uuu'
,那就是您的问题。如果没有,我需要比你提供的更多的代码。我同意@Veedrac。给自己做个做作的例子来证明这一点。旁注:我不记得apply_async有目标kwd。你确定这是一个有效的代码吗?不知道你的“大量数据”有多大,也要考虑优化算法。也许还值得尝试一种不同的算法。例如,我发现Kruskal算法的实现比Prim算法的实现快约15倍