主要内容

globalIndices

协分布数组局部部分的全局索引

语法

K = globalIndices (C,昏暗的)
K = globalIndices (C、昏暗的实验室)
(E, F) = globalIndices (C,昏暗的)
(E, F) = globalIndices (C、昏暗的实验室)
K = globalIndices (codist、昏暗的实验室)
(E, F) = globalIndices (codist、昏暗的实验室)

描述

globalIndices告诉您在协分布数组的给定维度上,局部部分的索引与相应索引范围之间的关系。的globalIndices方法允许您在不实际创建数组的情况下获得此关系。

K = globalIndices (C,昏暗的)K = globalIndices (C、昏暗的实验室)返回一个向量KgetLocalPart (C) = C(…,K,…)在指定尺寸内昏暗的codistributed数组C在指定的worker上。如果实验室参数时,默认为labindex

(E, F) = globalIndices (C,昏暗的)(E, F) = globalIndices (C、昏暗的实验室)返回两个整数EFgetLocalPart (C) = C(…,E, F,…)codistributed数组C在指定尺寸内昏暗的在指定的worker上。如果实验室参数时,默认为labindex

K = globalIndices (codist、昏暗的实验室)是一样的K = globalIndices (C、昏暗的实验室),在那里codist是否使用共分配器C,或codist = getCodistributor (C).这允许您获得一个协分布数组的全局索引,而不必创建数组本身。

(E, F) = globalIndices (codist、昏暗的实验室)是一样的(E, F) = globalIndices (C、昏暗的实验室),在那里codist是否使用共分配器C,或codist = getCodistributor (C).这允许您获得一个协分布数组的全局索引,而不必创建数组本身。

例子

在四个工作人员之间创建一个2乘22的协分布数组,并查看每个实验室的全局索引:

spmdC = 0 (2,22,codistributor1d(2,[6 6 5 5]));如果labindex == 1 K = globalIndices(C,2)%返回K = 1:6。elseiflabindex == 2 [E,F] = globalIndices(C,2)%返回E = 7, F = 12。结束K = globalIndices (C、2、3)%返回K = 13:17。(E, F) = globalIndices (C、2、4)E = 18, F = 22。结束

使用globalIndices从文件加载数据并构造沿其列分布的协分布数组,即维度2。注意globalIndices使代码不特定于工作人员的数量,并减少计算偏移量或分区。

spmdsiz =(1000、1000);codistr = codistributor1d (2 [] siz);%使用globalIndices来找出哪些列%每个工人应该加载。[firstCol, lastCol] = globalIndices (codistr 2);%调用用户定义函数readRectangleFromFile%加载所有应该进入的值这个工人的本地部分。labLocalPart = readRectangleFromFile(文件名,...1, siz(1)、firstCol lastCol);%与本地部分和共分配器,%构造相应的协分布数组。C = codistributed.build (labLocalPart codistr);结束

另请参阅

|

介绍了R2008a