Main Content

labindex

(非推奨) spmd ブロックにおける現在のワーカーのインデックス

labindex は推奨されません。代わりに spmdIndex を使用してください。詳細については、バージョン履歴を参照してください。

説明

id = labindex は、spmd ブロック内で関数を現在実行しているワーカーのインデックスを返します。ワーカーが spmd ブロックを実行するか通信ジョブが実行を開始すると、各ワーカーに一意のインデックスが割り当てられます。labindex の値は 1numlabs の整数です。

ワーカーには、指定された並列プールの利用期間にわたり、各 spmd ブロック内で同じ id が与えられます。

すべて折りたたむ

spmd ブロック内および parfor ループ内で labindex を表示します。

p = parpool('local',2);
spmd
    labindex
end
Worker 1: 
         1
  
Worker 2: 
        2

2 つのワーカーがある同一のプール p を使用します。

parfor a=1:4
    [a,labindex]
end
ans =
     3     1
ans =
     2     1
ans =
     1     1
ans =
     4     1

ヒント

spmd ブロックでは、ユーザーはすべてのワーカーに個別にアクセスしてワーカーでの実行対象の制御を行うことができるため、各ワーカーには一意の labindex があります。

ただし、parfor ループ内では labindex は、すべての反復のすべてのワーカーに必ず値 1 を返します。

バージョン履歴

R2006a より前に導入

すべて折りたたむ

R2022b: 関数 labindex は非推奨

spmd ブロック内で使用するものであることがわかるように、labindex の名前が spmdIndex に変更されました。labindex は引き続き使用できますが、非推奨になっています。コードを更新するには、labindex のすべてのインスタンスを spmdIndex に置き換えてください。labindex を削除する予定はありません。

参考