主要内容

parforOptions

选项设置parfor

描述

例子

选择= parforOptions (集群)创建一组选项parfor使用集群对象集群。指定的选项parfor循环,使用parfor (loopVar = initVal: endval,选择);语句;结束语法。

例子

选择= parforOptions ()创建一组选项parfor使用连接池对象

当你创建多个池,使用这种语法指定哪个池运行parfor循环。

提示

当您运行一个parfor循环,MATLAB®自动使用并行池运行循环,如果一个是可用的。

如果你只需要运行一个parfor循环使用默认集群配置文件或一个可用平行池,考虑使用parfor loopVar = initVal: endval;语句;结束语法而不是使用parforOptions

例子

选择= parforOptions (___,名称,值)创建一组选项parfor使用一个或多个名称参数。例如,使用parforOptions(池,“MaxNumWorkers”,米)运行一个parfor循环使用对象池,最高工人。毕竟其他输入参数指定名称参数。

例子

全部折叠

创建一个集群对象使用parcluster功能,并创建一个组parfor选项。默认情况下,parcluster使用默认集群配置文件。检查你的MATLAB®上默认的配置选项卡,在平行>选择并行环境

集群= parcluster;选择= parforOptions(集群);

运行parfor直接计算集群,通过parfor选择第二个输入参数parfor

当你使用这种方法,parfor可以使用集群中所有可用的工人,和工人尽快可用循环完成。这种方法也很有用,如果集群不支持并行池。万博1manbetx

值= [7 3 3 3 3 3 3];parfor(i = 1:元素个数(值),选择)了(我)=规范(pinv(兰德(值(i) * 1 e3)));结束

使用这种语法在大型集群上运行parfor没有消费工人超过必要的。

你可以控制parfor迭代分为子范围的工人parforOptions。控制的范围分区可以优化性能parfor循环。为获得最佳性能,尝试分成子范围是:

  • 足够大,计算时间很大的开销相比调度子范围

  • 足够小,有足够的子范围让所有工人忙碌

固定大小的迭代分割成子范围,创建一个组parfor选项,设置“RangePartitionMethod”“固定”,并指定一个附属的区域大小“SubrangeSize”

选择= parforOptions (parcluster,“RangePartitionMethod”,“固定”,“SubrangeSize”2);

通过parfor选择第二个输入参数parfor。在这种情况下,parfor迭代分为三组2迭代。

值= [3 3 3 3 3 3];parfor(i = 1:元素个数(值),选择)了(我)=规范(pinv(兰德(值(i) * 1 e3)));结束

迭代分割成不同大小的子范围,通过一个函数句柄“RangePartitionMethod”名称-值对。这个函数必须要返回一个向量的子范围的大小,数量和金额必须等于迭代。这个语法的更多信息,请参阅RangePartitionMethod

选择= parforOptions (parcluster,“RangePartitionMethod”@ (n, nw) [2 1 1 2]);

通过parfor选择第二个输入参数parfor。在这种情况下,parfor迭代分为四组2,1,1,2迭代。

值= [3 3 7 7 3 3];parfor(i = 1:元素个数(值),选择)了(我)=规范(pinv(兰德(值(i) * 1 e3)));结束

您可以使用parforOptions运行parfor一个平行的工人池。使用这种方法,当你想预订一个固定数量的工人parfor -循环。你也可以有更好的控制parfor分裂迭代的工人。

创建一个平行池使用parpool函数。默认情况下,parpool使用默认配置文件。检查你的默认的配置在MATLAB选项卡,在平行>选择并行环境。创建一组parfor选择与平行池对象,并指定选项。例如,指定固定大小的子范围2分区方法。

p = parpool;
开始平行池(parpool)使用过程的概要文件…连接到平行池(工人数量:6)。
选择= parforOptions (p,“RangePartitionMethod”,“固定”,“SubrangeSize”2);

通过parfor第二个输入参数的选择parfor函数。parfor运行的循环体平行池和分裂迭代选择

值= [3 3 3 3 3 3];parfor(i = 1:元素个数(值),选择)了(我)=规范(pinv(兰德(值(i) * 1 e3)));结束

当您运行parfor有或没有一个平行的池,默认情况下,MATLAB执行自动循环体依赖性分析。MATLAB转让所需的文件,工人们在运行语句之前。在某些情况下,您必须显式地将这些文件传输到工人。有关更多信息,请参见识别项目依赖关系

如果您使用的是parfor没有一个平行的池,使用parforOptions转让文件。创建一个集群对象使用parcluster选择。创建一组parfor选择与集群对象使用parforOptions函数。将文件转移到工人,使用“AttachedFiles”名称-值对。

集群= parcluster;选择= parforOptions(集群,“AttachedFiles”,{“myFile.dat”});

通过parfor第二个输入参数的选择parfor函数。工人们可以在循环体访问所需的文件。

parfor(选择i = 1:2) M = csvread (“myFile.dat”0 2 *(张)[0,2 *(张),1,1 + 2 *(张)]);(我)=规范(兰特(装天花板(规范(M)) * 1 e3));结束

输入参数

全部折叠

集群中,指定为一个parallel.Cluster对象。创建一个集群对象,使用parcluster

例子:parcluster(“本地”);

池,指定为一个parallel.Pool对象。

例子:parpool(“本地”);

例子:backgroundPool;

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:选择= parforOptions(集群、“AttachedFiles”“myFile.dat”);

所有对象类型

全部折叠

迭代方法划分成子范围,指定为“汽车”,“固定”,或一个函数处理。子界是一个连续的块循环迭代parfor运行工人作为一个整体。使用这个参数优化的性能parfor循环通过指定的迭代是如何分布在工人。

  • 如果RangePartitionMethod“汽车”或者如果你不指定一个值,parforOptionsparfor循环迭代子范围大小不一的寻求各种性能好parfor循环。

  • 如果RangePartitionMethod“固定”,parforOptionsparfor循环迭代分成固定大小的子范围。当您使用此方法,您必须使用SubrangeSize名称-值参数来指定子范围的大小。

  • 如果RangePartitionMethod是一个函数处理,parforOptions使用这个函数处理分歧parfor循环迭代分成固定大小的子范围。

    函数运行函数处理大小= customFcn (n、西北)

    • n的迭代次数吗parfor循环。

    • 西北是工人的数量可以循环运行。

      当你使用池运行循环,西北是工人的数量在并行池。当你使用一个集群运行循环池,西北NumWorkers集群的属性。

    • 大小是一个整数向量的子范围大小。对于任何的价值n西北向量的总和大小必须等于n

例子:parforOptions(集群,“RangePartitionMethod”、“汽车”)

例子:parforOptions(集群、“RangePartitionMethod”@ (n, nw) (1, n))

最大数量的迭代子范围,指定为一个正整数标量。子界是一个连续的块循环迭代parfor运行工人作为一个整体。

使用这个参数时,您必须指定RangePartitionMethod参数为“固定”

例子:parforOptions(集群、“RangePartitionMethod”“固定”,“SubrangeSize”, 5)

集群名称-值参数

全部折叠

文件夹添加到每个职工的MATLAB搜索路径运行parfor循环,指定为一个特征向量,字符串标量,字符串数组或单元阵列特征向量。

默认值是一个空单元数组。

文件夹添加到搜索路径运行时的工人parfor循环。当parfor循环完成后,删除这些文件夹的搜索路径的工人。

如果客户机和工人有不同的路径相同的文件夹,使用路径指定文件夹的工人。例如,如果文件夹的路径/ /数据共享在客户端,/组织/共享/数据在工人,指定“/组织/共享/数据”

如果您指定相对路径等“. . / myFolder”,相对于当前工作目录的路径解决工人。

指定AdditionalPaths为了避免不必要的复制文件从客户端到工人。指定AdditionalPaths只有当文件上可用的工人。如果文件不可用,使用AttachedFiles将文件发送到工人。

例子:选择= parforOptions(集群、“AdditionalPaths”(“/其他/ path1”、“/其他/ path2”))

文件和文件夹发送给每个工人运行parfor循环,指定为一个特征向量,字符串标量,字符串数组或单元阵列特征向量。

默认值是一个空单元数组。

文件和文件夹运行时发送给工人parfor循环。当parfor循环完成后,这些文件和文件夹是每个工人的从文件系统中删除。

如果您指定相对路径等“. . / myFolder”,相对于当前工作目录的路径解决在客户端。

如果文件是可用的工人,指定AdditionalPaths代替。当你指定AdditionalPaths,您可以避免不必要的复制文件从客户端到工人。

国旗工人,发送端路径指定为真正的

如果您指定AutoAddClientPath作为真正的,用户添加条目被添加到每个工人当您运行的路径parfor循环。当parfor循环结束,这些条目从每个工人的道路。

国旗工人自动复制文件,指定为真正的

当你卸载计算工人,计算所需的任何文件在客户端也必须上可用的工人。如果您指定AutoAttachFiles作为真正的,客户端试图自动检测和附加文件。如果您指定AutoAttachFiles作为在客户端,你关掉自动检测。如果自动检测不能找到所有的文件,或者从客户机发送文件到职工缓慢,使用以下参数。

  • 如果无法访问的文件在一个文件夹上的工人,指定使用的文件AttachedFiles论点。从客户机集群复制每个文件指定人员。

  • 如果文件在一个文件夹访问人员,您可以使用AdditionalPaths相反的论点。使用AdditionalPaths参数路径添加到每个职工的MATLAB搜索路径,避免不必要的复制文件从客户端到工人。

自动检测文件被发送到工人当您运行parfor循环。当parfor循环完成后,这些文件和文件夹是每个工人的从文件系统中删除。

池名称-值参数

全部折叠

最大数量的工人,指定为一个正整数标量。

默认值是

  • 如果您指定MaxNumWorkers作为一个有限的正整数,你parfor最大的循环运行MaxNumWorkers工人。

  • 如果您指定MaxNumWorkers作为,你的parfor循环将尽可能多的工人。

版本历史

介绍了R2019a