Comments (3)
在进行多目标问题时,如问题规模变大需要则并行计算来提高运行效率。据我所知新版本的geatpy支持并行计算。可否添加一个附带并行计算代码的例子供大家参考学习?谢谢!
您好!如果要添加并行计算,需要在aimFunc()里面调用一些外部并行库(推荐gevent、multiprocessing等)来并行地计算各个个体的目标函数值。(如果可以矩阵化计算所有个体的目标函数值,那么建议使用矩阵化计算)。难度不大的,只需把种群所有个体拆分成若干份,然后利用外部并行库并行地计算各部分个体的目标函数值即可。具体如何调用并行库,可以网上搜索gevent、multiprocessing等的文档或教程,有很多经典易学的案例代码。
from geatpy.
在进行多目标问题时,如问题规模变大需要则并行计算来提高运行效率。据我所知新版本的geatpy支持并行计算。可否添加一个附带并行计算代码的例子供大家参考学习?谢谢!
您好!如果要添加并行计算,需要在aimFunc()里面调用一些外部并行库(推荐gevent、multiprocessing等)来并行地计算各个个体的目标函数值。(如果可以矩阵化计算所有个体的目标函数值,那么建议使用矩阵化计算)。难度不大的,只需把种群所有个体拆分成若干份,然后利用外部并行库并行地计算各部分个体的目标函数值即可。具体如何调用并行库,可以网上搜索gevent、multiprocessing等的文档或教程,有很多经典易学的案例代码。
谢谢回答。经过我的尝试与对比,发现对于种群规模很大,最大迭代次数不变的情况下,这种方式的多进程的确可以提高程序的运行效率,如种群数=4000。但是对于相对较小的种群数,如种群数=200,多进程的计算效率反而不如单进程的效果。 不知道这样的逻辑是否正确,还是可能我的多进程程序写的有问题? 谢谢!
from geatpy.
@xrzalreadytaken 这个是多进程的公有特性。多进程本身会比多线程要耗费更多的额外开销,因此一般当总的计算量很大时才考虑用多进程(不用多线程是因为python的GIL限制,如果能绕开GIL那就用多线程,额外开销比多进程小一些)。种群规模大会导致总的计算量大;还有另一种情况:如果种群规模较小,但单个个体计算目标函数值时计算量很大,那么也会导致总的计算量大(比如用进化算法优化神经网络超参的时候),这两种情况可以用多进程或者直接用CUDA进行GPU计算来加速。
from geatpy.
Related Issues (20)
- 请问一下Geatpy什么时候支持Python 3.11呀? HOT 9
- 变量强制修改问题 HOT 1
- 【重大bug】call_back中,Population.save()与直接写成数据,完全对不上!!! HOT 11
- SEGA回调函数self.outFunc有问题,之前NSGA中并没有存在该问题 HOT 3
- 每代的结果输出
- python 12去除了 gil geatpy什么时候跟进呢
- 希望提供GPU加速功能 HOT 3
- 明显有可行解,但优化失败。 HOT 1
- 想在循环中调用geatpy,但每一次循环的目标函数参数不同,我应该如何将目标函数设置为除了决策变量之外还能传入其他参数的形式? HOT 1
- 开发者您好,我正在做一个多目标优化求解的问题,希望使用多进程提高效率 HOT 1
- 面积覆盖优化可以解决吗 HOT 1
- 开发者您好,请问是否有办法执行问题并行的求解? HOT 1
- 帕累托前沿只给出了一个解怎么解决 HOT 2
- 进不去网站 HOT 4
- Geatpy Website has been moved to Github. HOT 4
- 有没有多目标,且又是混合染色体的案例 HOT 1
- 文档缺失 HOT 1
- 似乎无法基于先验解继续寻优 HOT 3
- 请问如何输出各个决策变量的值 并和两个函数值对应 HOT 1
- RuntimeError: error: ObjV is illegal.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from geatpy.