主要内容

复合

创建复合对象

语法

C =复合()
C =复合(nlabs)

描述

C =复合()使用并行池中的工作者在客户机上创建Composite对象。这个Composite对象引用的工作者的实际数量取决于池的大小和任何现有Composite对象。通常,您应该在任何spmd声明。

C =复合(nlabs)在匹配指定约束的并行池集中创建Composite对象。nlabs必须是长度为1或2的向量,包含整数或.如果nlabs长度为1,它指定要使用的工人的确切数量。如果nlabs大小为2时,它指定要使用的最小和最大工人数。实际使用的工人数量是与并行池的大小以及与其他现有Composite对象兼容的工人的最大数量。如果不能满足工人数量的限制,将抛出一个错误。

Composite对象对于每个实验室都有一个条目;最初每个条目不包含数据。使用索引或spmd块来定义条目的值。

例子

下面的例子都使用了一个由4个worker组成的本地并行池,用语句打开:

p = parpool (“本地”4);

这个例子展示了如何创建一个没有定义元素的Composite对象,然后使用-loop在客户端。

c =复合();%池中每个worker有一个元素W = 1:length(c) c{W} = 0;%存储在每个工人上的值结束

控件中分配复合元素的方法spmd块。

c =复合();spmdc = 0;%存储在每个工人上的值结束

这个例子展示了如何用来自每个worker的值为Composite的元素分配值。

c =复合();spmdc = labindex;结束c {:}
1 2 3 4

此示例展示如何使用分布式数组向量设置Composite的值。

D =分布的([3 1 4 2]);%每个工人一个整数spmdc = getLocalPart (d);%每个工人的独特价值结束c {:}
3 1 4 2

提示

  • Composite是在现有并行池的工作者上创建的。如果没有池,复合启动一个新的并行池,除非在并行首选项中禁用了自动启动池。如果没有平行池和复合如果不能启动,则结果是客户端工作区中的1 × 1 Composite。