parfevalOnAll

Выполните функцию асинхронно на всех рабочих в параллельном пуле

Синтаксис

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

Описание

F = parfevalOnAll(p,fcn,numout,in1,in2,...) запрашивает асинхронное выполнение функционального fcn на всех рабочих в параллельном пуле p. parfevalOnAll оценивает fcn на каждом рабочем с входными параметрами in1, in2..., и ожидает numout выходные аргументы. F параллель. Объект FevalOnAllFuture, из которого можно получить результаты, когда все рабочие завершили выполняющийся fcn.

F = parfevalOnAll(fcn,numout,in1,in2,...) запрашивает асинхронное выполнение на всех рабочих в текущем параллельном пуле. Если никакой пул не существует, это запускает новый параллельный пул, если ваши параллельные настройки не отключают автоматическое создание пулов.

Примечание

Используйте parfevalOnAll вместо parfor или spmd если вы хотите использовать clear. Это сохраняет прозрачность рабочей области. Смотрите Гарантируют Прозрачность в циклах parfor или spmd Операторах.

Примеры

Разгрузите mex файл прежде, чем удалить временные папки для распределительных симуляций, с помощью clear функция. Поскольку clear имеет 0 выходные аргументы, задайте 0 в numout входной параметр parfevalOnAll.

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

Закройте все модели Simulink на всех рабочих:

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);

Введенный в R2013b