Execute function asynchronously on all workers in parallel pool


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


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.


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.


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.


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

Introduced in R2013b