parforOptions
选项设置parfor
描述
的一组选项选择
= parforOptions (池
)parfor
使用池对象池
.
创建多个池时,使用此语法指定要运行的池parfor
循环。
提示
当你运行parfor
循环,MATLAB®如果有可用的并行池,则自动使用并行池运行循环。
如果你只需要运行一个parfor
-循环使用默认的集群配置文件或可用的并行池,考虑使用parfor loopVar = initVal: endval;语句;结束
而不是使用parforOptions
.
例子
运行parfor
在没有并行池的集群上
方法创建集群对象parcluster
功能,并创建一套parfor
选项。默认情况下,parcluster
使用默认的集群配置文件。在MATLAB®上检查您的默认配置文件首页选项卡,在平行>选择并行环境.
集群= parcluster;选择= parforOptions(集群);
运行parfor
直接在集群中进行计算时,传递parfor
选项作为第二个输入参数parfor
.
当你使用这种方法时,parfor
可以使用集群中所有可用的worker,并且一旦循环完成,worker就变为可用的。如果您的集群不支持并行池,这种方法也很有用。
值= [3 3 3 7 3 3 3];parfor(i = 1:元素个数(值),选择)了(我)=规范(pinv(兰德(值(i) * 1 e3)));结束
使用此语法可以在大型集群上运行parfor,而不会花费不必要的工作时间。
控制parfor
范围分区
你可以控制parfor
为工作人员将迭代划分为子范围parforOptions
.控制范围分区可以优化算法的性能parfor
循环。为了获得最佳的性能,尝试将其分割为以下子范围:
足够大,与调度子范围的开销相比,计算时间是大的
足够小,有足够的子范围,让所有的工人忙
要将迭代划分为固定大小的子范围,请创建一组parfor
选项,设置“RangePartitionMethod”
来“固定”,
并指定子范围的大小“SubrangeSize”
.
选择= parforOptions (parcluster,“RangePartitionMethod”,“固定”,“SubrangeSize”2);
通过parfor
选项作为第二个输入参数parfor
.在这种情况下,parfor
将迭代分为三组2
迭代。
值= [3 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)));结束
运行parfor
并行池和控制选项
您可以使用parforOptions
运行parfor
平行水池的工作人员。类保留固定数量的工作人员时使用此方法parfor -
循环。您还可以更好地控制如何parfor
为工作者划分迭代。
方法创建并行池parpool
函数。默认情况下,parpool
使用默认配置文件。在MATLAB上检查默认配置文件首页选项卡,在平行>选择并行环境.创建一组parfor
选项,并指定选项。例如,指定固定大小的子范围2
作为划分方法。
p = parpool;
使用“Processes”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:6)。
选择= parforOptions (p,“RangePartitionMethod”,“固定”,“SubrangeSize”2);
通过parfor
选项的第二个输入参数parfor
函数。parfor
在并行池上运行循环体,并根据来划分迭代选择
.
值= [3 3 3 3 3 3 3];parfor(i = 1:元素个数(值),选择)了(我)=规范(pinv(兰德(值(i) * 1 e3)));结束
传输文件parfor
工人
当您运行parfor
默认情况下,无论是否有并行池,MATLAB都会自动对循环体进行依赖分析。在运行语句之前,MATLAB将所需的文件传输到工作者。在某些情况下,您必须显式地将这些文件传输给工作者。有关更多信息,请参见识别项目依赖关系.
如果你正在使用parfor
没有平行池,使用parforOptions
转让文件。方法创建集群对象parcluster
选择。创建一组parfor
选项与集群对象一起使用parforOptions
函数。要将文件传输到工作者,请使用“AttachedFiles”
名称-值对。
集群= parcluster;选择= parforOptions(集群,“AttachedFiles”,{“myFile.dat”});
通过parfor
选项的第二个输入参数parfor
函数。工作者可以访问循环体中所需的文件。
parfor(i=1:2,opts) M = csvread(“myFile.dat”0 2 *(张)[0,2 *(张),1,1 + 2 *(张)]);(我)=规范(兰特(装天花板(规范(M)) * 1 e3));结束
输入参数
集群
- - - - - -集群
平行的。集群
对象
集群,指定为平行的。集群
对象。要创建集群对象,请使用parcluster
.
例子:parcluster(“本地”);
池
- - - - - -池
平行的。池
对象
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:选择= parforOptions(集群、“AttachedFiles”“myFile.dat”);
RangePartitionMethod
- - - - - -将迭代划分为子范围的方法
“汽车”
(默认)|“固定”
|函数处理
将迭代划分为子范围的方法,指定为“汽车”
,“固定”
,或函数句柄。子范围是一个连续的循环迭代块parfor
以小组的形式跑在一个工人身上。使用这个参数来优化的性能parfor
-循环通过指定迭代如何分布在各个worker。
如果
RangePartitionMethod
是“汽车”
或者如果不指定值,parforOptions
把parfor
-循环迭代成不同大小的子范围,以寻求良好的性能为各种parfor
循环。如果
RangePartitionMethod
是“固定”
,parforOptions
把parfor
-循环迭代到固定大小的子范围。使用此方法时,还必须使用SubrangeSize
参数指定子范围的大小。如果
RangePartitionMethod
是函数句柄,parforOptions
使用函数句柄来除法parfor
-循环迭代到固定大小的子范围。函数运行函数句柄as
大小= customFcn (n、西北)
.n
迭代的次数是parfor
循环。西北
可用于运行循环的工作者的数量。当您使用池运行循环时,
西北
是并行池中的工作线程数。当您使用集群运行没有池的循环时,西北
是NumWorkers
集群属性。大小
是子范围大小的整数向量。对于任意值n
而且西北
向量的和大小
必须等于n
.
例子:parforOptions(集群,“RangePartitionMethod”、“汽车”)
例子:parforOptions(集群、“RangePartitionMethod”@ (n, nw) (1, n))
SubrangeSize
- - - - - -子范围内的最大迭代次数
正整数标量
子范围中的最大迭代次数,指定为正整数标量。子范围是一个连续的循环迭代块parfor
以小组的形式跑在一个工人身上。
使用此参数时,必须指定RangePartitionMethod
参数为“固定”
.
例子:parforOptions(集群、“RangePartitionMethod”“固定”,“SubrangeSize”,5)
AdditionalPaths
- - - - - -文件夹添加到MATLAB中每个工作者的搜索路径
特征向量|字符串标量|字符串数组|单元阵列
文件夹添加到MATLAB搜索路径的每个工作者运行parfor
-loop,指定为字符向量、字符串标量、字符串数组或字符向量的单元格数组。
默认值是一个空单元格数组。
命令时,文件夹将添加到工作程序的搜索路径中parfor
循环。当parfor
-循环结束时,这些文件夹将从worker的搜索路径中删除。
如果客户端和工作者对同一文件夹有不同的路径,则使用工作者上的路径指定文件夹。例如,如果文件夹的路径为/ /数据共享
在客户端和/组织/共享/数据
在工作者上指定“/组织/共享/数据”
.
如果指定相对路径,例如“. . / myFolder”
,路径相对于工作者上的当前工作目录进行解析。
指定AdditionalPaths
避免将不必要的文件从客户端复制到工作者。指定AdditionalPaths
只有当工作人员的文件可用时。如果文件不可用,则使用AttachedFiles
把文件发给工人。
例子:选择= parforOptions(集群、“AdditionalPaths”(“/其他/ path1”、“/其他/ path2”))
AttachedFiles
- - - - - -文件和文件夹发送给每个员工
特征向量|字符串标量|字符串数组|单元阵列
文件和文件夹发送给每个工作人员运行parfor
-loop,指定为字符向量、字符串标量、字符串数组或字符向量的单元格数组。
默认值是一个空单元格数组。
文件和文件夹在运行时发送给工作人员parfor
循环。当parfor
-循环结束后,这些文件和文件夹将从每个worker的文件系统中删除。
如果指定相对路径,例如“. . / myFolder”
,路径相对于客户端上的当前工作目录进行解析。
如果工作者上的文件可用,则指定AdditionalPaths
代替。当你指定AdditionalPaths
,可以避免将不必要的文件从客户机复制到工作者。
AutoAddClientPath
- - - - - -将客户端路径发送给工作者的标志
真正的
(默认)|假
标志将客户端路径发送给工作者,指定为真正的
或假
.
如果您指定AutoAddClientPath
作为真正的
时,用户添加的条目将添加到每个worker的路径中parfor
循环。当parfor
-循环结束时,这些项将从每个worker的路径中删除。
AutoAttachFiles
- - - - - -标志自动将文件复制到工作者
真正的
(默认)|假
标志将文件自动复制到工作者,指定为真正的
或假
.
当您将计算卸载给工作者时,客户机上计算所需的任何文件也必须在工作者上可用。如果您指定AutoAttachFiles
作为真正的
,客户端尝试自动检测并附加这些文件。如果您指定AutoAttachFiles
作为假
,关闭客户端自动检测。如果自动检测无法找到所有文件,或者从客户机向工作者发送文件很慢,请使用以下参数。
如果文件位于工作者无法访问的文件夹中,则使用
AttachedFiles
论点。集群将您指定的每个文件从客户机复制到工作者。如果文件位于可在工作程序上访问的文件夹中,则可以使用
AdditionalPaths
相反的论点。使用AdditionalPaths
参数为每个worker的MATLAB搜索路径添加路径,避免将不必要的文件从客户机复制到worker。
命令时,自动检测到的文件将被发送给工作者parfor
循环。当parfor
-循环结束后,这些文件和文件夹将从每个worker的文件系统中删除。
MaxNumWorkers
- - - - - -最大工人人数
正整数标量
工人的最大数量,指定为正整数标量。
默认值为正
.
如果您指定
MaxNumWorkers
作为一个有限正整数,你的parfor
-loop将以最大的MaxNumWorkers
工人。如果您指定
MaxNumWorkers
作为正
,你的parfor
-loop将在可用的worker中运行。
版本历史
介绍了R2019a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。