主要内容

如何使用并行处理全局优化工具箱

多核处理器

如果你有一个多核处理器,您可以通过使用并行处理提高处理速度。你可以建立一个并行的几个工人与并行计算工具箱™许可证。并行计算工具箱软件的描述,请参阅开始使用并行计算工具(并行计算工具箱)

假设您有一个双核处理器,想用并行计算。在命令行输入这个代码。

parpool

MATLAB®开始一个池的工人使用多核处理器。如果你以前集群设置一个默认的配置文件,您可以执行多核(本地)计算通过输入这个代码。

parpool (“本地”)

请注意

根据您的喜好,MATLAB可以自动开始一个平行的池。要启用这个特性,选择平行>平行的偏好环境集团在选项卡,然后选择自动创建一个平行的池

设置你的解算器使用并行处理。

解算器 命令行设置
遗传算法

选择= optimoptions(“遗传算法”,“UseParallel”,的确,UseVectorized,假);

gamultiobj

选择= optimoptions (‘gamultiobj’,‘UseParallel’,真的,UseVectorized,假);

MultiStart

= MultiStart女士(“UseParallel”,真正的);

ms.UseParallel = true

paretosearch

选择= optimoptions (‘paretosearch’,‘UseParallel’,真的);

particleswarm

选择= optimoptions (‘particleswarm’,‘UseParallel’,真的,UseVectorized,假);

patternsearch

选择= optimoptions (“patternsearch”、“UseParallel”,的确,“UseCompletePoll”,的确,UseVectorized,假);

surrogateopt

选择= optimoptions (‘surrogateopt’,‘UseParallel’,真的);

从R2019a开始,当你设置UseParallel选项真正的,patternsearch内部覆盖UseCompletePoll设置为真正的这样的函数并行的民意调查。

当你运行一个适用的解决者选项,适用于解决自动使用并行计算。

停止计算并行优化,集UseParallel。停止所有的并行计算,输入此代码。

删除(gcp)

请注意

文档建议不使用parforparfeval当调用仿真软件金宝app®;看到在parfor使用sim函数(金宝app模型)。因此,您可能会遇到问题,优化并行仿真软件模拟使用并行解算器的内置功能。金宝app

网络处理器

如果你有多个处理器在网络,使用并行计算工具箱函数和MATLAB并行服务器™软件建立并行计算。

确保你的系统是并行计算的正确配置。请与您的系统管理员或参考并行计算工具箱文档。

  1. 通过输入这个代码执行一个基本的检查,教授是你的集群配置文件。

    parpool(教授)
  2. 工人必须能够访问你的目标函数文件,如果适用的话,你的非线性约束函数文件。完成这些步骤,以确保访问:

    • 文件分发给工人使用parpool(并行计算工具箱)AttachedFiles论点。在这个例子中,objfun.m是你的目标函数文件,constrfun.m是你的非线性约束函数文件。

      parpool (“AttachedFiles”,{“objfun.m”,“constrfun.m”});

      员工访问自己的文件的副本。

    • 给你的目标网络文件路径或约束函数文件。

      pctRunOnAll(“目录network_file_path”)

      员工通过网络访问的函数文件。

  3. 检查是否一个文件是每个工人的道路上。

    pctRunOnAll (',文件名”)
    如果工人没有文件路径,它报告
    文件名没有找到。

设置你的解算器使用并行处理。

解算器 命令行设置
遗传算法

选择= optimoptions(“遗传算法”,“UseParallel”,的确,UseVectorized,假);

gamultiobj

选择= optimoptions (‘gamultiobj’,‘UseParallel’,真的,UseVectorized,假);

MultiStart

= MultiStart女士(“UseParallel”,真正的);

ms.UseParallel = true

paretosearch

选择= optimoptions (‘paretosearch’,‘UseParallel’,真的);

particleswarm

选择= optimoptions (‘particleswarm’,‘UseParallel’,真的,UseVectorized,假);

patternsearch

选择= optimoptions (“patternsearch”、“UseParallel”,的确,“UseCompletePoll”,的确,UseVectorized,假);

surrogateopt

选择= optimoptions (‘surrogateopt’,‘UseParallel’,真的);

从R2019a开始,当你设置UseParallel选项真正的,patternsearch内部覆盖UseCompletePoll设置为真正的这样的函数并行的民意调查。

并行计算环境建立后,适用于解决自动使用并行计算当你打电话给他们选项

停止计算并行优化,集UseParallel。停止所有的并行计算,输入此代码。

删除(gcp)

请注意

文档建议不使用parforparfeval当调用仿真软件;金宝app看到在parfor使用sim函数(金宝app模型)。因此,您可能会遇到问题,优化并行仿真软件模拟使用并行解算器的内置功能。金宝app

并行搜索功能或混合功能

有一个patternsearch搜索功能并行运行,或者混合函数遗传算法simulannealbnd并行运行,请执行以下操作。

  1. 建立并行处理中描述多核处理器网络处理器

  2. 确保您的搜索功能或混合函数这些部分中概述的条件:

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。这两个patternsearchfmincon可以混合功能。这样你可以设置选项patternsearch并行运行,或fmincon估计并行梯度。

设置选项中描述的混合函数混合功能选项遗传算法,混合函数particleswarm,或混合功能选项simulannealbnd。总结:

  • 如果你的混合函数patternsearch

    1. 创建patternsearch选项:

      hybridopts = optimoptions (“patternsearch”,“UseParallel”,真的,“UseCompletePoll”,真正的);
    2. 设置遗传算法simulannealbnd选择使用patternsearch作为一个混合的功能:

      选择= optimoptions (“遗传算法”,“UseParallel”,真正的);%的遗传算法选择= optimoptions (“遗传算法”选项,“HybridFcn”,{@patternsearch, hybridopts});%,或者simulannealbnd:选择= optimoptions (@simulannealbnd,“HybridFcn”,{@patternsearch, hybridopts});

    并行的更多信息patternsearch,请参阅模式搜索

  • 如果你的混合函数fmincon:

    1. 创建fmincon选项:

      hybridopts = optimoptions (@fmincon,“UseParallel”,真的,“算法”,“内点”);除了trust-region-reflective %你可以使用任何算法
    2. 设置遗传算法simulannealbnd选择使用fmincon作为一个混合的功能:

      选择= optimoptions (“遗传算法”,“UseParallel”,真正的);选择= optimoptions (“遗传算法”选项,“HybridFcn”,{@fmincon, hybridopts});%,或者simulannealbnd:选择= optimoptions (@simulannealbnd,“HybridFcn”,{@fmincon, hybridopts});

    并行的更多信息fmincon,请参阅并行计算

测试并行优化

按照以下步骤并行测试问题是否运行正确。

  1. 试一试你的问题没有并行计算,以确保它连续运行。确保这个测试是成功的(给正确的结果)之前将下一个测试。

  2. UseParallel真正的,并确保不存在平行池通过输入删除(gcp)。确保MATLAB并不创建一个平行的池,选择平行>平行的偏好环境集团在选项卡,然后清除自动创建一个平行的池。你的问题是parfor连续,循环迭代在相反的顺序循环。确保这个测试是成功的(给正确的结果)之前将下一个测试。

  3. UseParallel真正的,并创建一个平行池使用parpool。除非你有一个多核处理器或网络设置,这个测试并不会增加处理速度。这种测试是验证计算的正确性。

记得打电话给你的解算器使用选项参数测试或使用并行功能。

相关的话题