exponenta event banner

parfevalOnAll

Асинхронное выполнение функции для всех работников в параллельном пуле

Описание

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

пример

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

Примечание

Использовать parfevalOnAll вместо parfor или spmd если вы хотите использовать clear. Это сохраняет прозрачность рабочей области. См. раздел Обеспечение прозрачности в пакетных циклах или инструкциях 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);

Входные аргументы

свернуть все

Параллельный пул работников, указанный как parallel.Pool объект. Можно создать параллельный пул с помощью parpool функция.

Типы данных: parallel.Pool

Функция для выполнения на рабочих, заданная как дескриптор функции.

Пример: fcn = @sum

Типы данных: function_handle

Число выходных аргументов, которые ожидаются от fcn.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Аргументы функции для передачи fcn, указанный как список переменных или выражений, разделенных запятыми.

Выходные аргументы

свернуть все

Будущий объект, возвращенный как parallel.FevalOnAllFuture, что представляет собой исполнение fcn на параллельных рабочих и держит их результаты. Использовать fetchOutputs для сбора результатов.

Представлен в R2013b