Matlab学习笔记:并行计算函数和GA()函数

您所在的位置:网站首页 ga函数中options设置 Matlab学习笔记:并行计算函数和GA()函数

Matlab学习笔记:并行计算函数和GA()函数

#Matlab学习笔记:并行计算函数和GA()函数| 来源: 网络整理| 查看: 265

考古了一篇14年文章的代码,看人家的代码,又学到了一些新技能,记录一下。 1,mkdir函数 mkdir folderName 创建文件夹 folderName。如果 folderName 存在,则 MATLAB® 发出警告。如果操作失败,则 mkdir 会向命令行窗口发出错误。

2,system函数 执行操作系统命令并返回输出。

3,几个matlab常见变量 date,记录日期的变量 clock,获取系统当前时间的函数,是一个行向量 cd,显示当前目录

4,遗传函数ga() ga是matlab自带的遗传算法函数。 x = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon,options) fun:函数句柄; nvars:变量个数; A:不等式约束系数矩阵; b:不等式约束常量向量; [ ]:等式约束系数矩阵; [ ]:等式约束常量向量; lb:变量上限; ub:变量下限; nonlcon:非线性约束; IntCon:整数约束; options:用options中的值替换默认优化参数,通过optimoptions()获取; 注意: options,前期matlab版本是用gaoptimest函数,后续版本用optimoptions。

5,并行计算matlabpool和parpool 并行计算是指多核并行计算,包括cpu和gpu,这里说的是cpu。 matlabpool在matlab2012以前的版本可以使用。parpool是后续新版本使用的函数。 启动语句是

matlabpool local 2

运行testParallel函数,已经开辟了2个labs,为了进行多核并行运算,testParallel中,要用parfor代替原来的for循环。 在运行这个时,观察windows任务管理器,可以发现一共有3个MATLAB.exe进程。其中一个占内存较多的,应该是主控的,他基本不干活,只负责分配,进行计算时他的cpu占用率只有1~2%,剩下两个进程专门用来计算的,跑起来各占cpu 49%左右。看上去还是每个matlab进程单核运算,但是一下开2个进程,所以能把cpu用满。当运行完testParallel后,三个进程的cpu都立刻降为1%左右了。 在并行计算中,要用parfor代替原来的for循环。

parfor i = 1:10 x(i)=x(i-1)+x(i+1); end

并行计算注意事项: 1,Matlab启动并行环境是比较慢的,不过不用每次都重新启动环境,启动一次以后能一直使用; 2,parfor循环中的临时变量不能在循环外使用且每次parfor迭代后临时变量都会自动清除; 3,parfor循环不是按照顺序来的,所以不能有以下操作: 4,parfor使用时机:每次循环相互独立,且数据量较大; 5,尽量避免parfor循环内的程序和外界的交互,如调用exe等。

参考: 1,https://blog.csdn.net/qq_38290475/article/details/82223148 2,https://zhidao.baidu.com/question/1241848471227586859.html 3,https://blog.csdn.net/weixin_38121168/article/details/92619095



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3