parforOptions

对于选项parfor如划分迭代

描述

例子

选择= parforOptions (集群)创建一组选项parfor这指示parfor在workers上执行语句集群无需创建并行池。相反,parfor向集群提交独立的任务以执行循环体。parfor根据分区和重复分配给工人NumWorkers财产,职工可用数量,集群

例子

选择= parforOptions ()创建一组选项parfor这指示parfor在并行池中的workers上执行语句

例子

选择= parforOptions (___'RangePartitionMethod',方法)使用方法定义如何划分parfor-loop迭代为子。的子区域是循环迭代的连续块的是parfor作为一个组在一个worker上执行。

例子

选择= parforOptions (___“RangePartitionMethod”,“固定”,“SubrangeSize”,n)parfor-loop迭代成大小的子范围不大于n

例子

选择= parforOptions (集群,___,名称,值)指定用于集群对象的其他选项集群

例子

全部折叠

属性创建集群对象parcluster功能,打造一个集parfor选项。默认情况下,parcluster使用默认的群集配置文件。检查的MATLAB®您的默认配置文件首页选项卡,在平行>选择默认集群

集群= parcluster;OPTS = parforOptions(簇);

运行parfor直接在集群中进行计算,传递parfor选项作为第二输入参数parfor

当你使用这种方法时,parfor可以使用所有可用的工人在集群中,与工人变得可用,一旦循环完成。这种方法也是有用的,如果您的群集不支持并行池。金宝app

值= [3 3 3 7 3 3 3 3];parfor(I = 1:numel(值),OPTS)从(ⅰ)=范数(PINV(兰特(值(I)* 1E3)));结束

使用此语法可以在大型集群上运行parfor,而不会花费不必要的时间使用workers。

你可以控制parfor分迭代成子的工人parforOptions。控制范围划分可以优化a的性能parfor-循环。为了获得最佳性能,尽量拆分成是子范围:

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

  • 小到有足够的子程序让所有的工人都忙个不停

若要将迭代划分为固定大小的子例程,请创建一组parfor选项,设置'RangePartitionMethod'“固定”,并指定子程序的大小'SubrangeSize'

OPTS = parforOptions(parcluster,'RangePartitionMethod',“固定”,'SubrangeSize'2);

通过parfor选项作为第二输入参数parfor。在这种情况下,parfor划分迭代分成三组的2迭代。

值= [3 3 3 3 3 3];parfor(I = 1:numel(值),OPTS)从(ⅰ)=范数(PINV(兰特(值(I)* 1E3)));结束

到分区迭代成不同尺寸的子范围,传递一个函数句柄'RangePartitionMethod'名称 - 值对。此函数必须返回子范围大小的矢量,它们的总和必须等于迭代的次数。有关此语法的更多信息,请参阅方法

OPTS = parforOptions(parcluster,'RangePartitionMethod', @(n,nw) [2 11 1 2]);

通过parfor选项作为第二输入参数parfor。在这种情况下,parfor划分迭代分成四组的2,1,1,2迭代。

values = [3 3 7 7 3 3];parfor(I = 1:numel(值),OPTS)从(ⅰ)=范数(PINV(兰特(值(I)* 1E3)));结束

您可以使用parforOptions跑步parfor并行池的工作程序。当您希望为。保留固定数量的工作者时,请使用此方法parfor -循环。您也可以就如何更好地控制parfor为工作人员划分迭代。

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

P = parpool;
使用“本地”配置文件启动并行池(parpool)…连接到并行池(worker数量:6)。
OPTS = parforOptions(P,'RangePartitionMethod',“固定”,'SubrangeSize'2);

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

值= [3 3 3 3 3 3];parfor(I = 1:numel(值),OPTS)从(ⅰ)=范数(PINV(兰特(值(I)* 1E3)));结束

当您运行parfor具有或不具有平行池,默认情况下,MATLAB执行对循环体的自动依赖性分析。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));结束

输入参数

全部折叠

集群,指定为parallel.Cluster对象,在其上parfor运行。属性创建集群对象parcluster函数。

例:选择= parforOptions (parcluster(当地的));

数据类型:parallel.Cluster

子范围大小固定划分方法,指定为一个正整数。必须设置名称 - 值对'RangePartitionMethod'“固定”

例:选择= parforOptions(集群、“RangePartitionMethod”“固定”,“SubrangeSize”, 5);

数据类型:||int8|INT16|INT32|Int64的|UINT8|UINT16|UINT32|UINT64

并行库,指定为parallel.Pool对象,在其上parfor运行。要创建并行池,请使用parpool函数。

例:OPTS = parforOptions(parpool( '本地'));

数据类型:parallel.Pool

范围划分方法,指定为以下方法之一:

  • “汽车”-这个方法把循环分成不同大小的子程序。它试图达到良好的性能为多种parfor循环。

  • “固定”- 分区的parfor-loop成固定尺寸的子范围。你必须通过设置指定每个子范围的大小'SubrangeSize'名称 - 值对。

  • 函数句柄——使用函数句柄将循环迭代划分为子例程。功能必须是形式大小= customFcn (n、西北),其中n在迭代次数parfor-loop和西北可执行循环的worker数量。当循环在并行池上运行时,西北是工人在并行池的数量。当循环使用群集中运行,西北NumWorkers集群的属性。customFcn返回一个向量大小的子范围大小。这个载体必须满足总和(尺寸)==Ñ。有关函数处理的更多信息,请参阅创建功能处理(MATLAB)。

例:OPTS = parforOptions(群集, 'RangePartitionMethod', '固定', 'SubrangeSize',10);

例:opts = parforOptions(cluster,'RangePartitionMethod',@(n,nw) [2,4,4,n-10]);

数据类型:烧焦|function_handle

名称-值对的观点

的可选逗号分隔对名称,值参数。名称参数名和价值为对应值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:OPTS = parforOptions(群集, 'AttachedFiles',{ 'MYFILE.DAT'});

标志来指定,如果客户端的路径添加到工人路径,指定为逗号分隔的一对组成的AutoAddClientPath真正的

数据类型:逻辑

属性启用依赖项分析parfor循环体和传输所需的文件到工人,指定为逗号分隔的对组成AutoAttachFiles真正的

数据类型:逻辑

要传输的文件的工人,指定为逗号分隔的一对组成的AttachedFiles以及字符向量、字符串、字符串数组或字符向量的单元数组。

例:{“myFun.m”、“myFun2.m”}

数据类型:烧焦||细胞

路径添加到MATLAB®工人的路径之前parfor执行时,指定为逗号分隔的一对组成的AdditionalPaths以及字符向量、字符串、字符串数组或字符向量的单元数组。

例:{ '一些/路径/', '另一/路径'}

数据类型:烧焦||细胞

输出参数

全部折叠

parfor选项,返回为parforOptions对象。指定选项parfor循环,传递一组的parfor的第二个输入参数的选项parfor

例:parfor (i = 1:10, parforOptions (parcluster));(我)=我;结束

介绍了R2019a