我有一个代码,在一个循环中执行很多独立的任务,我想把它转换成多处理来加速它。我设法用这种方式在代码的其他地方加速了另一个循环任务,这一个看起来非常相似。但是,它无法给出以下错误:
File "Z:\Blade Test KTP\BladeTestOptimisationSoftware\python\source\SteadyStateMP.py", line 2196, in <module>
x0,FitnessTracker=GAMainFunc(GAPopulation,GAGeneration,Crossover,Mutation,FitnessScaling,SwapVariables,Bounds,Args+(False,))
File "Z:\Blade Test KTP\BladeTestOptimisationSoftware\python\source\SteadyStateMP.py", line 1480, in GAMainFunc
result = pool.map(func,PopulationList)
File "C:\Python27\lib\multiprocessing\pool.py", line 251, in map
return self.map_async(func, iterable, chunksize).get()
File "C:\Python27\lib\multiprocessing\pool.py", line 558, in get
raise self._value
NameError: global name 'NodesList' is not defined
不幸的是,一个可运行的例子是不可行的,因为代码的数量,输入文件的大小,事实上,我会在把它放到公共领域的麻烦。。。我也没有设法在更小的范围内复制这个问题(正如我上面提到的,我在别处成功地实现了多处理,并且我使代码非常相似)。我的代码结构如下所示:
^{pr2}$这种方法的非并行实现很好地工作(字面意思是替换池.map()与itertools.map()或循环)。在我的数组中成功地使用了一个数组和一个成功的数组之间的差异。我避免使用像瘟疫这样的全局变量,所以python会建议我使用它们,这让我感到很侮辱!最奇怪的是,我可以在OptimFunc内部打印NodesList,然后再将其用于愤怒。如果有任何帮助,我们将不胜感激!在
目前没有回答
相关问题 更多 >
编程相关推荐