parforOptions
选项设置parfor
描述
创建一组选项选择
= parforOptions (池
)parfor
使用连接池对象池
。
当你创建多个池,使用这种语法指定哪个池运行parfor
循环。
提示
当您运行一个parfor
循环,MATLAB®自动使用并行池运行循环,如果一个是可用的。
如果你只需要运行一个parfor
循环使用默认集群配置文件或一个可用平行池,考虑使用parfor loopVar = initVal: endval;语句;结束
语法而不是使用parforOptions
。
例子
运行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
范围分区
你可以控制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)));结束
运行parfor
在一个平行的池和控制选项
您可以使用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
工人
当您运行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
对象
集群中,指定为一个parallel.Cluster
对象。创建一个集群对象,使用parcluster
。
例子:parcluster(“本地”);
池
- - - - - -池
parallel.Pool
对象
池,指定为一个parallel.Pool
对象。
创建一个平行池,使用
parpool
。背景池,使用
backgroundPool
。
例子:parpool(“本地”);
例子:backgroundPool;
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:选择= parforOptions(集群、“AttachedFiles”“myFile.dat”);
RangePartitionMethod
- - - - - -方法迭代分割成子范围
“汽车”
(默认)|“固定”
|函数处理
迭代方法划分成子范围,指定为“汽车”
,“固定”
,或一个函数处理。子界是一个连续的块循环迭代parfor
运行工人作为一个整体。使用这个参数优化的性能parfor
循环通过指定的迭代是如何分布在工人。
如果
RangePartitionMethod
是“汽车”
或者如果你不指定一个值,parforOptions
把parfor
循环迭代子范围大小不一的寻求各种性能好parfor
循环。如果
RangePartitionMethod
是“固定”
,parforOptions
把parfor
循环迭代分成固定大小的子范围。当您使用此方法,您必须使用SubrangeSize
名称-值参数来指定子范围的大小。如果
RangePartitionMethod
是一个函数处理,parforOptions
使用这个函数处理分歧parfor
循环迭代分成固定大小的子范围。函数运行函数处理
大小= 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
循环,指定为一个特征向量,字符串标量,字符串数组或单元阵列特征向量。
默认值是一个空单元数组。
文件夹添加到搜索路径运行时的工人parfor
循环。当parfor
循环完成后,删除这些文件夹的搜索路径的工人。
如果客户机和工人有不同的路径相同的文件夹,使用路径指定文件夹的工人。例如,如果文件夹的路径/ /数据共享
在客户端,/组织/共享/数据
在工人,指定“/组织/共享/数据”
。
如果您指定相对路径等“. . / myFolder”
,相对于当前工作目录的路径解决工人。
指定AdditionalPaths
为了避免不必要的复制文件从客户端到工人。指定AdditionalPaths
只有当文件上可用的工人。如果文件不可用,使用AttachedFiles
将文件发送到工人。
例子:选择= parforOptions(集群、“AdditionalPaths”(“/其他/ path1”、“/其他/ path2”))
AttachedFiles
- - - - - -文件和文件夹发送给每个工人
特征向量|字符串标量|字符串数组|单元阵列
文件和文件夹发送给每个工人运行parfor
循环,指定为一个特征向量,字符串标量,字符串数组或单元阵列特征向量。
默认值是一个空单元数组。
文件和文件夹运行时发送给工人parfor
循环。当parfor
循环完成后,这些文件和文件夹是每个工人的从文件系统中删除。
如果您指定相对路径等“. . / myFolder”
,相对于当前工作目录的路径解决在客户端。
如果文件是可用的工人,指定AdditionalPaths
代替。当你指定AdditionalPaths
,您可以避免不必要的复制文件从客户端到工人。
AutoAddClientPath
- - - - - -国旗给发送端路径工人
真正的
(默认)|假
国旗工人,发送端路径指定为真正的
或假
。
如果您指定AutoAddClientPath
作为真正的
,用户添加条目被添加到每个工人当您运行的路径parfor
循环。当parfor
循环结束,这些条目从每个工人的道路。
AutoAttachFiles
- - - - - -国旗来自动将文件复制到工人
真正的
(默认)|假
国旗工人自动复制文件,指定为真正的
或假
。
当你卸载计算工人,计算所需的任何文件在客户端也必须上可用的工人。如果您指定AutoAttachFiles
作为真正的
,客户端试图自动检测和附加文件。如果您指定AutoAttachFiles
作为假
在客户端,你关掉自动检测。如果自动检测不能找到所有的文件,或者从客户机发送文件到职工缓慢,使用以下参数。
如果无法访问的文件在一个文件夹上的工人,指定使用的文件
AttachedFiles
论点。从客户机集群复制每个文件指定人员。如果文件在一个文件夹访问人员,您可以使用
AdditionalPaths
相反的论点。使用AdditionalPaths
参数路径添加到每个职工的MATLAB搜索路径,避免不必要的复制文件从客户端到工人。
自动检测文件被发送到工人当您运行parfor
循环。当parfor
循环完成后,这些文件和文件夹是每个工人的从文件系统中删除。
MaxNumWorkers
- - - - - -最大数量的工人
正整数标量
最大数量的工人,指定为一个正整数标量。
默认值是正
。
如果您指定
MaxNumWorkers
作为一个有限的正整数,你parfor
最大的循环运行MaxNumWorkers
工人。如果您指定
MaxNumWorkers
作为正
,你的parfor
循环将尽可能多的工人。
版本历史
介绍了R2019a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。