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
.
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);
cancel
| fetchNext
| fetchOutputs
| parallel.pool.Constant
| parfeval
| parpool
| wait