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
, 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.
Use parfevalOnAll
instead
of parfor
or spmd
if you
want to use clear
.
This preserves workspace transparency. See Ensure Transparency in parfor-Loops.
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);
cancel
| fetchNext
| fetchOutputs
| parallel.pool.Constant
| parfeval
| parpool
| wait