如果您有一个多核处理器,您可以通过使用并行处理来提高处理速度。您可以使用parallel Computing Toolbox™许可证建立多个工作人员的并行池。有关并行计算工具箱软件的说明,请参见开始使用并行计算工具箱(并行计算工具箱).
假设您有双核处理器,并希望使用并行计算。在命令行输入此代码。
parpool
MATLAB®使用Multicore Processor开始一池工人。如果之前设置了非默认群集配置文件,则可以通过输入此代码来强制执行多核(本地)计算。
Parpool(“本地”)
请注意
根据您的偏好,MATLAB可以自动启动并行池。要启用此功能,请选择Parallel >平行首选项在里面环境小组在首页选项卡,然后选择自动创建并行池.
将求解器设置为使用并行处理。
求解器 | 命令行设置 |
---|---|
遗传算法 |
|
gamultiobj. |
|
MultiStart |
或者
|
paretosearch |
|
particleswarm |
|
PatternSearch. |
|
surrogateopt |
|
从R2019A开始,当你设置的时候使用指α.
选择真的
,PatternSearch.
内部覆盖了UseCompletePoll
设置为真的
它是平行轮询的。
使用适用的求解器时选项
,适用求解器自动使用并行计算。
停止并行计算优化,设置使用指α.
来假
.要停止所有并行计算,请输入此代码。
删除(gcp)
请注意
文档建议不要使用parfor
或者parfeval
调用simulink时金宝app®;看在Parcol中使用SIM功能(金宝app模型).因此,在使用求解器的内置并行功能并行优化Simulink模拟时,可能会遇到问题。金宝app
如果网络上有多个处理器,请使用并行计算工具箱功能和MATLAB并行服务器™软件建立并行计算。
确保您的系统被正确地配置为并行计算。请与系统管理员联系,或参阅并行计算工具箱文档。
通过输入以下代码执行基本检查,其中教授
是您的集群配置文件。
parpool(教授)
工作人员必须能够访问你的目标函数文件,如果适用,你的非线性约束函数文件。完成其中一个步骤,以确保访问:
使用该文件将文件分发给工人parpool
(并行计算工具箱)附加的文件
论点。在这个例子中,objfun.m
是您的客观函数文件,还有混乱
是非线性约束函数文件。
Parpool(“AttachedFiles”,{“objfun.m”,'constrfun.m'});
工作人员访问他们自己的文件副本。
为您的目标或约束函数文件提供网络文件路径。
pctRunOnAll(“目录network_file_path.”)
工作人员通过网络访问功能文件。
检查文件是否位于每个工人的路径上。
pctRunOnAll (',文件名”)
文件名没有找到。
将求解器设置为使用并行处理。
求解器 | 命令行设置 |
---|---|
遗传算法 |
|
gamultiobj. |
|
MultiStart |
或者
|
paretosearch |
|
particleswarm |
|
PatternSearch. |
|
surrogateopt |
|
从R2019A开始,当你设置的时候使用指α.
选择真的
,PatternSearch.
内部覆盖了UseCompletePoll
设置为真的
它是平行轮询的。
建立并行计算环境后,可在您称之为时,适用的求解器自动使用并行计算选项
.
停止并行计算优化,设置使用指α.
来假
.要停止所有并行计算,请输入此代码。
删除(gcp)
请注意
文档建议不要使用parfor
或者parfeval
调用Simulink时;金宝app看在Parcol中使用SIM功能(金宝app模型).因此,在使用求解器的内置并行功能并行优化Simulink模拟时,可能会遇到问题。金宝app
有一个PatternSearch.
搜索函数并行运行,或为混合函数遗传算法
或者Simulannealbnd.
并行运行,执行以下操作。
PatternSearch.
在下列条件下使用并行搜索功能:
UseCompleteSearch
是真的
.
而搜索方法则不然@searchneldermead.
或者自定义
.
如果搜索方法是一个PatternSearch.
投票法或拉丁超立方体搜索法,使用指α.
是真的
.在命令行中用optimoptions
:
选择= optimoptions ('patternsearch',“UseParallel”,真的,...“UseCompleteSearch”,真的,“SearchFcn”, @GPSPositiveBasis2N);
如果搜索方法是遗传算法
,搜索方法选项具有使用指α.
设置为真的
.在命令行中用optimoptions
:
iterlim = 1;%迭代限制,指定# ga运行gaopt = Optimoptions('Ga',“UseParallel”,真正的);选择= optimoptions ('patternsearch',“SearchFcn”,...{@searchga, iterlim, gaopt});
遗传算法
,particleswarm
, 和Simulannealbnd.
可以在其迭代之后运行或穿插其他求解器。这些其他的解算器称为混合函数。以获取关于使用混合函数的信息gamultiobj.
,请参阅与Gamultiobj并行计算.这两个PatternSearch.
和fmincon
可以是混合功能。你可以设置选项PatternSearch.
并行运行,或fmincon
估计并行梯度。
设置混合功能的选项,请参见混合函数选项为遗传算法
,混合函数为particleswarm
,或混合函数选项为Simulannealbnd.
.总结:
如果混合函数是PatternSearch.
创建PatternSearch.
选项:
hybridopts = optimoptions ('patternsearch',“UseParallel”,真的,...'USECOMPLETEPOLL',真正的);
设置遗传算法
或者Simulannealbnd.
使用选项PatternSearch.
作为一个混合函数:
选择= optimoptions ('Ga',“UseParallel”,真正的);GA的百分比选择= optimoptions ('Ga'选项,...'hybridfcn',{@ patternsearch,hybridopts});%或者,对于Simulannealbnd:选择= optimoptions (@simulannealbnd,'hybridfcn',{@ patternsearch,hybridopts});
有关并行的更多信息PatternSearch.
,请参阅模式搜索.
如果混合函数是fmincon
:
创建fmincon
选项:
hybridopts = optimoptions (@fmincon,“UseParallel”,真的,...'算法','内点');%您可以使用除信任区域反光之外的任何算法
设置遗传算法
或者Simulannealbnd.
使用选项fmincon
作为一个混合函数:
选择= optimoptions ('Ga',“UseParallel”,真正的);选择= optimoptions ('Ga'选项,'hybridfcn',{@ fmincon,杂交});%或者,对于Simulannealbnd:选择= optimoptions (@simulannealbnd,'hybridfcn',{@ fmincon,杂交});
有关并行的更多信息fmincon
,请参阅并行计算.
按照以下步骤测试您的问题是否正常运行。
尝试在没有并行计算的情况下解决问题,以确保它串行运行。在进行下一个测试之前,确保这个测试是成功的(给出正确的结果)。
集使用指α.
来真的
,并确保通过输入不存在并行池删除(gcp)
.要确保MATLAB不会创建并行池,请选择Parallel >平行首选项在里面环境小组在首页标签,然后清除自动创建并行池.你的问题是parfor
连续地,循环迭代的顺序与a为
循环。在进行下一个测试之前,确保这个测试是成功的(给出正确的结果)。
集使用指α.
来真的
,并使用parpool
.除非您有多核处理器或网络设置,否则此测试不会提高处理速度。此测试只是验证计算的正确性。
请记得使用拨打您的求解器选项
参数来测试或使用并行功能。