Index of this worker
id = labindex
id = labindex
returns the
index of the worker currently executing the function. labindex
is
assigned to each worker when a job begins execution, and applies only
for the duration of that job. The value of labindex
spans
from 1
to n
, where n
is
the number of workers running the current job, defined by numlabs
.
View labindex
in spmd
blocks
and parfor
-loops.
p = parpool('local',2); spmd labindex end
Lab 1: 1 Lab 2: 2
Using the same two-worker pool, p
:
parfor a=1:4 [a,labindex] end
ans = 3 1 ans = 2 1 ans = 1 1 ans =1 4 1
In an spmd
block, because you have access
to all workers individually and control what gets executed on them,
each worker has a unique labindex
.
However, inside a parfor
-loop, labindex
always
returns a value of 1 on all workers in all iterations.