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. parfevalOnAll evaluates fcn on each worker with input arguments in1,in2,..., and expects numout output arguments. 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 or spmd Statements.

Examples

Unload a mex file before deleting temporary folders for distributing simulations, using the clear function. Because clear has 0 output arguments, specify 0 in the numout input argument of parfevalOnAll.

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