parfevalOnAll

Execute function asynchronously on all workers in parallel pool

Syntax

F = parfevalOnAll(p,fcn,numout,in1,in2,...)
F = parfevalOnAll(fcn,numout,in1,in2,...)

Description

F = parfevalOnAll(p,fcn,numout,in1,in2,...) requests the asynchronous execution of the function fcn on all workers in the parallel pool p, expecting numout output arguments from each worker and supplying input arguments in1,in2,... to each worker. F is a parallel.FevalOnAllFuture object, from which you can obtain the results when all workers have completed executing fcn.

F = parfevalOnAll(fcn,numout,in1,in2,...) requests asynchronous execution on all workers in the current parallel pool. If no pool exists, it starts a new parallel pool, unless your parallel preferences disable automatic creation of pools.

Note

Use parfevalOnAll instead of parfor or spmd if you want to use clear. This preserves workspace transparency. See Ensure Transparency in parfor-Loops.

Examples

Unload a mex file before deleting temporary folders for distributing simulations:

parfevalOnAll(@clear, 0, 'mex');

Close all Simulink models on all workers:

p = gcp(); % Get the current parallel pool
f = parfevalOnAll(p,@bdclose,0,'all');
% No output arguments, but you might want to wait for completion
wait(f);

Introduced in R2013b

Was this topic helpful?