主要内容

nondistreibuned与分布式阵列

介绍

MATLAB支持许多内置数据类型和数据结构金宝app®MATLAB并行计算环境也支持软件。金宝app这包括包含数字,字符,逻辑值,单元格或结构的任意数量的尺寸阵列。除了这些基本构建块外,MATLAB并行计算环境还提供不同的类型阵列。

将数组

创建一个非启动数组时,Matlab在每个工作空间中使用相同的变量名称在所有工人上构造一个单独的数组。在该变量上执行的任何操作会影响分配给它的所有单个数组。如果从工人1显示分配给此变量的值,则所有工人通过显示驻留在其工作区中的该名称的数组来响应。

非启动数组的状态取决于每个工人的工作空间中该数组的值:

复制阵列

一种复制数组驻留在所有工人的工作空间中,其大小和内容在所有工人也相同。创建数组时,MATLAB将其分配给所有工人的相同变量。如果在SPMD中显示分配给此变量的值,则所有工人通过显示相同的数组来响应。

spmd, A =魔法(3),职工1职工2工人3工人4 | | | 8 1 6 | 8 1 6 | 8 1 6 | 8 1 6 3 5 7 | 3 5 7 | 3 5 7 | 3 5 7 4 9 2 | 4 9 2 | 4 9 2 | 4 9 2

变体数组

一种变体阵列还居住在所有工人的工作空间中,但其内容对一个或多个工人不同。创建阵列时,MATLAB在所有工人上为同一变量分配不同的值。如果显示分配给此变量的值,则所有工人通过显示其数组的版本来响应。

SPMD,A =魔术(3)+ LabIndex  -  1,最终工作人员1工人2工人3工人4 |||8 1 6 |9 2 7 |10 3 8 |11 4 9 3 5 7 |4 6 9 |5 7 9 |6 8 10 4 9 2 | 5 10 3 | 6 11 4 | 7 12 5

当其值在每个工作人员上变为唯一时,复制数组可以成为变体数组。

spmd B = magic(3);%replicated on all workers B = B + labindex;%现在是一个变量数组,在每个工作端不同

私人阵列

一种私人阵列在一个或多个中定义,但不是所有工人。您可以使用此阵列Labindex.在条件声明中,如下所示:

SPMD如果labindex> = 3,a =魔术(3)+ labindex  -  1,结束终端工作者1工人2工人3工人4 |||a是|a是|10 3 8 |11 4 9未定义|未定义|5 7 9 |6 8 10 | 6 11 4 | 7 12 5

编号阵列

通过复制和变体阵列,阵列的完整内容存储在每个工作者的工作空间中。编号阵列,则被划分为段,每个段驻留在不同工作人员的工作空间中。每个worker都有自己的数组段。减少每个工作人员必须存储和处理的数组的大小意味着更有效地使用内存和更快地处理,特别是对于大型数据集。

此示例分发了一个3×10复制的数组一种在四名工人。结果阵列D的大小也是3×10,但只有完整阵列的段驻留在每个工人上。

SPMD A = [11:20;21:30;31:40];d =编码(a);GetLocalpart(D)最终工作人员1工人2工人3工人4 |||11 12 13 |14 15 16 |17 18 | 19 20 21 22 23 | 24 25 26 | 27 28 | 29 30 31 32 33 | 34 35 36 | 37 38 | 39 40

有关使用编码阵列的更多详细信息,请参阅使用编码阵列