如何使用并行处理全局优化工具箱
多核处理器
如果你有一个多核处理器,您可以通过使用并行处理提高处理速度。你可以建立一个并行的几个工人与并行计算工具箱™许可证。并行计算工具箱软件的描述,请参阅开始使用并行计算工具(并行计算工具箱)。
假设您有一个双核处理器,想用并行计算。在命令行输入这个代码。
parpool
MATLAB®开始一个池的工人使用多核处理器。如果你以前集群设置一个默认的配置文件,您可以执行多核(本地)计算通过输入这个代码。
parpool (“本地”)
请注意
根据您的喜好,MATLAB可以自动开始一个平行的池。要启用这个特性,选择平行>平行的偏好在环境集团在家选项卡,然后选择自动创建一个平行的池。
设置你的解算器使用并行处理。
解算器 | 命令行设置 |
---|---|
遗传算法 |
|
gamultiobj |
|
MultiStart |
或
|
paretosearch |
|
particleswarm |
|
patternsearch |
|
surrogateopt |
|
从R2019a开始,当你设置UseParallel
选项真正的
,patternsearch
内部覆盖UseCompletePoll
设置为真正的
这样的函数并行的民意调查。
当你运行一个适用的解决者选项
,适用于解决自动使用并行计算。
停止计算并行优化,集UseParallel
来假
。停止所有的并行计算,输入此代码。
删除(gcp)
请注意
文档建议不使用parfor
或parfeval
当调用仿真软件金宝app®;看到在parfor使用sim函数(金宝app模型)。因此,您可能会遇到问题,优化并行仿真软件模拟使用并行解算器的内置功能。金宝app
网络处理器
如果你有多个处理器在网络,使用并行计算工具箱函数和MATLAB并行服务器™软件建立并行计算。
确保你的系统是并行计算的正确配置。请与您的系统管理员或参考并行计算工具箱文档。
通过输入这个代码执行一个基本的检查,
教授
是你的集群配置文件。parpool(教授)
工人必须能够访问你的目标函数文件,如果适用的话,你的非线性约束函数文件。完成这些步骤,以确保访问:
文件分发给工人使用
parpool
(并行计算工具箱)AttachedFiles
论点。在这个例子中,objfun.m
是你的目标函数文件,constrfun.m
是你的非线性约束函数文件。parpool (“AttachedFiles”,{“objfun.m”,“constrfun.m”});
员工访问自己的文件的副本。
给你的目标网络文件路径或约束函数文件。
pctRunOnAll(“目录network_file_path”)
员工通过网络访问的函数文件。
检查是否一个文件是每个工人的道路上。
pctRunOnAll (',文件名”)
文件名没有找到。
设置你的解算器使用并行处理。
解算器 | 命令行设置 |
---|---|
遗传算法 |
|
gamultiobj |
|
MultiStart |
或
|
paretosearch |
|
particleswarm |
|
patternsearch |
|
surrogateopt |
|
从R2019a开始,当你设置UseParallel
选项真正的
,patternsearch
内部覆盖UseCompletePoll
设置为真正的
这样的函数并行的民意调查。
并行计算环境建立后,适用于解决自动使用并行计算当你打电话给他们选项
。
停止计算并行优化,集UseParallel
来假
。停止所有的并行计算,输入此代码。
删除(gcp)
请注意
文档建议不使用parfor
或parfeval
当调用仿真软件;金宝app看到在parfor使用sim函数(金宝app模型)。因此,您可能会遇到问题,优化并行仿真软件模拟使用并行解算器的内置功能。金宝app
并行搜索功能或混合功能
有一个patternsearch
搜索功能并行运行,或者混合函数遗传算法
或simulannealbnd
并行运行,请执行以下操作。
patternsearch搜索功能
patternsearch
在下列条件下使用并行搜索功能:
UseCompleteSearch
是真正的
。搜索方法不
@searchneldermead
或自定义
。如果搜索方法
patternsearch
调查方法或拉丁超立方体搜索,UseParallel
是真正的
。在命令行设置optimoptions
:选择= optimoptions (“patternsearch”,“UseParallel”,真的,…“UseCompleteSearch”,真的,“SearchFcn”,@GPSPositiveBasis2N);
如果搜索方法
遗传算法
,搜索方法选项UseParallel
设置为真正的
。在命令行设置optimoptions
:iterlim = 1;%迭代极限,指定# gagaopt = optimoptions (“遗传算法”,“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 (“遗传算法”,“UseParallel”,真正的);%的遗传算法选择= optimoptions (“遗传算法”选项,…“HybridFcn”,{@patternsearch, hybridopts});%,或者simulannealbnd:选择= optimoptions (@simulannealbnd,“HybridFcn”,{@patternsearch, hybridopts});
并行的更多信息
patternsearch
,请参阅模式搜索。如果你的混合函数
fmincon
:创建
fmincon
选项:hybridopts = optimoptions (@fmincon,“UseParallel”,真的,…“算法”,“内点”);除了trust-region-reflective %你可以使用任何算法
设置
遗传算法
或simulannealbnd
选择使用fmincon
作为一个混合的功能:选择= optimoptions (“遗传算法”,“UseParallel”,真正的);选择= optimoptions (“遗传算法”选项,“HybridFcn”,{@fmincon, hybridopts});%,或者simulannealbnd:选择= optimoptions (@simulannealbnd,“HybridFcn”,{@fmincon, hybridopts});
并行的更多信息
fmincon
,请参阅并行计算。
测试并行优化
按照以下步骤并行测试问题是否运行正确。
试一试你的问题没有并行计算,以确保它连续运行。确保这个测试是成功的(给正确的结果)之前将下一个测试。
集
UseParallel
来真正的
,并确保不存在平行池通过输入删除(gcp)
。确保MATLAB并不创建一个平行的池,选择平行>平行的偏好在环境集团在家选项卡,然后清除自动创建一个平行的池。你的问题是parfor
连续,循环迭代在相反的顺序为
循环。确保这个测试是成功的(给正确的结果)之前将下一个测试。集
UseParallel
来真正的
,并创建一个平行池使用parpool
。除非你有一个多核处理器或网络设置,这个测试并不会增加处理速度。这种测试是验证计算的正确性。
记得打电话给你的解算器使用选项
参数测试或使用并行功能。