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