我如何在不能使用“if __name__=='__main__'”的 Python 代码中实现并行计算

问题描述

我正在使用已编译到 Python 库中的 MATLAB 脚本,用于在 Python 的遗传算法中评估种群中的个体。我真的遇到了麻烦,因为遗传算法的设置并不适合使用 if __name__=="__main__":,而且适应度函数一个 MATLAB 运行时对象,无法进行腌制。

之所以说代码的结构不能使用if __name__=="__main__":,是因为格式看起来是这样的:

fits = []
# initialize population - needs to be parallized
for individual in population:
    fits.append(matlab_sim_function(individual))

new_fits = []
# New evaluation for loop nested in generational for loop
for generation in range(100):
    trace = []
    # evaluation for loop - this is what needs to be parallized 
    for individual in population:
        trace.append(matlab_sim_function(individual))
    new_fits.append(trace)

本质上,我需要并行化人口的初始化,然后我需要并行化嵌套在分代 for 循环中的 for 循环。我对如何在我所处的这个利基场景中实现 Python 并行计算的任何想法持开放态度,无论是腌制 MATLAB 运行时对象的可能方法还是如何为 if __name__=="__main__": 构建我的代码,或者即使有一个包不需要。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)