主要内容

复合

创建复合对象

描述

例子

请注意

复合函数体返回值时,通常在客户机上创建变量spmd声明。因此,您很少需要创建复合直接对象。有关使用的更多信息复合数组,看到复合材料

C=复合()创建一个复合对象在客户机上使用并行池中的工作线程。

一个复合对象包含对存储在并行工作线程上的数组的引用,并且可以在每个工作线程上包含不同的值。一个复合对象对每个工作者有一个条目;最初,每个条目不包含数据。每个worker上的条目可以包含不同的值。可以使用单元格数组索引检索值。使用索引或spmd块来定义条目的值。有关工人的实际数据在工人上仍然可用,以供后续使用spmd执行,只要是复合在客户端上存在,并且并行池仍然存在。

类引用的工作人员的实际数量复合对象取决于池的大小和任何现有的复合对象。

构造一个复合对象,则必须在任何spmd语句。

C=组合(nlabs创建一个复合对象上匹配指定约束的并行池中的多个工作线程。nlabs一定是有长度的向量吗12,包含整数或。如果nlabs是长度的1,它指定要使用的工人的确切数量。如果nlabs是长度的2,它指定要使用的工人的最小和最大数量。实际使用的工人数量是与并行池大小兼容的工人的最大数量,以及与任何其他现有的工人的最大数量复合对象。MATLAB®如果无法满足对工作人员数量的限制,则产生错误。

例子

全部折叠

此示例展示了如何创建复合对象,然后使用属性赋值-在客户端循环。

P = parpool()“过程”4);c = Composite();池中每个工作线程一个元素W = 1:长度(c) c{W} = 0;%存储在每个工作上的值结束

这个例子展示了如何分配复合元素spmd块。

P = parpool()“过程”4);c = Composite();spmdC = 0;%存储在每个工作上的值结束

这个例子展示了如何给a的元素赋值复合使用每个worker的值。

P = parpool()“过程”4);c = Composite();spmdc = spmindex;结束c {:}
1 2 3 4

这个例子展示了如何使用分布式数组向量来设置a的值复合

P = parpool()“过程”4);D = distributed([3 1 4 2]);%每个工人一个整数spmdc = getLocalPart(d);%每个工作者的唯一值结束c {:}
3 1 4 2

输入参数

全部折叠

对工人数量的约束,指定为一个向量。nlabs必须是长度为1或2的向量,包含整数或。如果nlabs长度为1,它指定要使用的工作人员的确切数量。如果nlabs大小为2,它指定要使用的工人的最小和最大数量

输出参数

全部折叠

使用并行池中的工作线程在客户端上创建复合数组,作为复合对象。

提示

  • 一个复合对象在现有并行池的工作线程上创建。如果不存在池,则复合函数启动一个新的并行池,除非在并行首选项中禁用了自动启动池。如果没有并行池和复合不能开始一个,结果是1 × 1复合对象在客户端工作区中。

版本历史

在R2008a中引入

Baidu
map