parfeval

Запустите функцию в фоне

    Описание

    пример

    F = parfeval(backgroundPool,fcn,n,X1,...,Xm) планирует функциональный fcn запускаться в фоновом режиме. Можно запустить другой код в то время как MATLAB® запускает функциональный fcn.

    Чтобы запустить функцию на параллельном пуле, смотрите parfeval (Parallel Computing Toolbox).

    parfeval запускает функциональный fcn на второстепенном рабочем. Для получения дополнительной информации о рабочих и фоне, смотрите Второстепенных Рабочих.

    MATLAB выполняет функциональный fcn асинхронно как [Y1,...,Yn] = fcn(X1,...,Xm), с m входные параметры и n выходные параметры .

    MATLAB возвращает Future объект F перед функциональным fcn выполнение концов. Можно использовать fetchOutputs получать результаты [Y1,...,Yn] от будущего. Прекратить запускать функциональный fcn, используйте cancel функция. Для получения дополнительной информации о фьючерсах, смотрите Future.

    F = parfeval(fcn,n,X1,...,Xm) планирует функциональный fcn быть запущенным.

    MATLAB возвращает Future объект F перед функциональным fcn выполнение концов.

    Используйте этот синтаксис, чтобы запустить код, спроектированный для использования с Parallel Computing Toolbox™.

    • Если у вас нет Parallel Computing Toolbox, вы не используете параллельных ресурсов. Функция запускается в сериале.

    • Если у вас есть Parallel Computing Toolbox, parfeval автоматически использование параллельно ресурсам.

    Примеры

    свернуть все

    В этом примере показано, как запустить функцию в фоновом режиме с помощью parfeval и backgroundPool. Когда вы запускаете функцию в фоновом режиме, можно запустить другой код MATLAB одновременно.

    Используйте parfeval запускать функциональный magic(3) и получите тот выход. Задайте backgroundPool в качестве первого аргумента, который запустит функцию в фоновом режиме. Когда вы используете parfeval, вы создаете Future объект.

    f = parfeval(backgroundPool,@magic,1,3);

    Чтобы получить выход из фона, используйте fetchOutputs. MATLAB возвращает выходной параметр однажды выполнение magic завершено.

    fetchOutputs(f)
    ans = 3×3
    
         8     1     6
         3     5     7
         4     9     2
    
    

    В этом примере показано, как остановить функцию MATLAB, которую вы запускаете в фоновом режиме. Когда вы используете parfeval чтобы запустить функцию в фоновом режиме, MATLAB сразу возвращает Future объект. Продолжительные функции могут блокировать другие функции от выполнения в фоновом режиме. Чтобы мешать функции запуститься, необходимо использовать cancel функция вместо того, чтобы выбор Live Editor> Run> Stop.

    Используйте parfeval запускать pause(Inf) не получая выходных параметров. Задайте backgroundPool в качестве первого аргумента, который запустит функцию в фоновом режиме. Когда вы используете parfeval, вы создаете Future объект.

    f = parfeval(backgroundPool,@pause,0,Inf);

    Проверяйте состояние Future объект.

    f.State
    ans = 
    'running'
    

    Когда вы запускаете parfeval, вы планируете функцию, чтобы запуститься в фоновом режиме. Когда фоновый пул имеет недостаточные ресурсы, чтобы запустить функцию, Future находится в 'queued' состояние. Когда функция запущена фоновым пулом, Future находится в 'running' состояние.

    Чтобы мешать функции запуститься в фоновом режиме, отмените Future объект.

    cancel(f)
    f.State
    ans = 
    'finished'
    

    Функция находится теперь в 'finished' состояние.

    Входные параметры

    свернуть все

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

    Пример: fcn = @magic

    Количество выходных аргументов в виде неотрицательного целочисленного скаляра.

    n количество выходных аргументов, ожидаемых от выполнения fcn(X1,...,Xm).

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

    Входные параметры в виде списка, разделенного запятыми переменных или выражений.

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

    свернуть все

    Выведите Future, возвращенный как parallel.Future объект.

    • Использование fetchOutputs или fetchNext получать результаты F.

    • Использование afterEach или afterAll запускать функцию когда F завершается.

    Расширенные возможности

    Смотрите также

    (Parallel Computing Toolbox) | | | | | | |