User`s guide
11 Functions — Alphabetical List
11-286
spmd
Execute code in parallel on workers of parallel pool
Syntax
spmd, statements, end
spmd(n), statements, end
spmd(m,n), statements, end
Description
The general form of an spmd (single program, multiple data) statement is:
spmd
statements
end
spmd, statements, end defines an spmd statement on a single line. MATLAB
executes the spmd body denoted by statements on several MATLAB workers
simultaneously. The spmd statement can be used only if you have Parallel Computing
Toolbox. To execute the statements in parallel, you must first open a pool of MATLAB
workers using parpool or have your parallel prefences allow the automatic start of a
pool.
Inside the body of the spmd statement, each MATLAB worker has a unique value of
labindex, while numlabs denotes the total number of workers executing the block
in parallel. Within the body of the spmd statement, communication functions for
communicating jobs (such as labSend and labReceive) can transfer data between the
workers.
Values returning from the body of an spmd statement are converted to Composite
objects on the MATLAB client. A Composite object contains references to the values
stored on the remote MATLAB workers, and those values can be retrieved using cell-
array indexing. The actual data on the workers remains available on the workers for
subsequent spmd execution, so long as the Composite exists on the client and the parallel
pool remains open.