PytLab / gaft

A Genetic Algorithm Framework in Python (not for production level)
http://gaft.readthedocs.io/
GNU General Public License v3.0
739 stars 218 forks source link

关于多进程运行的问题 #20

Closed littletomatodonkey closed 6 years ago

littletomatodonkey commented 6 years ago

您好,我在使用mpiexec -np 4 ex01.py的时候(windows上是mpiexec),发现速度比单个进程运行的速度慢了很多,我以为是进程数据广播和回收的耗时较长,就在fitness函数里面又手动添加了大量无效计算,增加单个个体的计算时间,但是还是出现并行计算时间明显大于单进程计算的时间,我想问一下这可能是什么原因哦?我的openmpi多进程编程测试没有出现问题,安装应该是没有问题的。我修改ex01.py中的fitness代码如下(只是添加了耗时计算):

# Define fitness function.
@engine.fitness_register
def fitness(indv):
    x, = indv.solution
    for ii in range(10000):
        x + 10*sin(5*x) + 7*cos(4*x)
    return x + 10*sin(5*x) + 7*cos(4*x)

希望得到您的回复,谢谢!

PytLab commented 6 years ago

你的种群大小是多少?你可以增加一下大小来测试一下并行效果

littletomatodonkey commented 6 years ago

size我设置的是100,感觉应该挺大了,可是还是没有单个进程的运行速度快2333。。 123

PytLab commented 6 years ago
  1. 你要看一下你机器的核心是多少,如果是两个的话,多于两个其实并不会有很多提升
  2. 你可以测试一下增大种群大小,也可以测试下example里面的例子