在用pmode來說明這幾個矩陣類型的差別
Replicated Arrays
在pmode中輸入 x=1:4 可以看出在4個labs中均出現了
x=1 2
3 4的字樣,說明x在4個labs中均存在,而且值是一樣的,像這種情況下的x就稱為Replicated
Arrays。
Distributed Arrays(分布式矩陣)
按着上一次的輸入,再在pmode中輸入
x1=distributed(x,'convert')
,可以看到在各個lab中顯示的是 localPart(x1) =...
,這說明了x1并不是一個在各個lab中均存在的矩陣,其實各個lab中存有的隻是x的一部分,整個矩陣x1是由4個lab中的值所組成的。此時雖然x1的分布于4個lab中,但是不能也不必用gcat來擷取x全部的值,因為x本身就是一個完整1:4的矩陣。在用gcat時很容易将Distributed
Arrays和Variant Arrays搞混,下面我們來看一下Variant
Arrays。若要得到一個分布式矩陣的完整形式,可以用gather函數來得到,而不用轉換。
Variant Arrays
上面各個lab中存在的隻是矩陣x1的一部分,在各個lab中并不是一個變量,如何将lab中x1的值變成lab本身的變量呢?這就要用到函數localPart了,在pmode中輸入
x2=localPart(x1),此時可以在各個lab中顯示x2=...
,此時x2分布于各個lab中,但是值卻不一樣,這樣的矩陣我們就稱為Variant
Arrays。此時在pmode中輸入 x3=gcat(x2) 可以得到x3=1 2 3
4,這樣就将各個lab中的值彙集到一起了。
Private Arrays
Private Arrays和Variant Arrays差不多,隻是Private
Arrays在有此lab中不存在同名的變量
From: