parallel.pool.DataQueue

Отправьте и автоматически обработайте данные

    Описание

    Используйте DataQueue возразите, чтобы автоматически обработать данные, отправленные от функции, которую вы запускаете в фоновом режиме на параллельном пуле, или в вашем текущем MATLAB® сеанс.

    Можно автоматически обработать данные, отправленные от функции, что вы работаете на параллельном пуле, если у вас есть Parallel Computing Toolbox™.

    Когда вы создаете DataQueue объект, вы создаете связь с текущим сеансом работы с MATLAB, который можно использовать, чтобы отправить и получить сообщения.

    • Чтобы отправить данные в текущий сеанс работы с MATLAB, использовать send.

    • Чтобы автоматически обработать данные, когда это будет получено в текущем сеансе работы с MATLAB, использовать afterEach.

    Создание

    Синтаксис

    Описание

    пример

    q = parallel.pool.DataQueue создает объект, который может использоваться, чтобы отправить и автоматически обработать сообщения.

    Свойства

    развернуть все

    Это свойство доступно только для чтения.

    Количество элементов данных, ожидающих, чтобы быть удаленным из очереди в виде нулевого или положительного целого числа.

    • Значение является нулевым или положительным целым числом в сеансе работы с MATLAB, который создает DataQueue объект.

    • Везде еще, значением является 0.

    Например, если вы создаете DataQueue объект в текущем сеансе работы с MATLAB, можно запустить функцию в фоновом режиме с тем DataQueue возразите как входной параметр. QueueLength свойство того DataQueue объектом всегда будет 0 в фоновом режиме.

    Функции объекта

    afterEachЗапустите функцию после того, как данные будут получены на DataQueue
    sendОтправьте данные в DataQueue или PollableDataQueue

    Примеры

    свернуть все

    В этом примере показано, как автоматически обработать данные в вашем текущем сеансе работы с MATLAB, который вы отправляете от фона.

    Создайте DataQueue объект. После того, как каждый элемент данных получен на DataQueue в вашем текущем сеансе работы с MATLAB автоматически отобразите тот элемент с помощью disp функция.

    q = parallel.pool.DataQueue;
    afterEach(q,@disp);

    Функция помощника magicWithSend заданный в конце этого примера отправляет сумму магического квадрата к DataQueue или PollableDataQueue объект, затем возвращает тот магический квадрат.

    Используйте parfeval и backgroundPool запускать функциональный magicWithSend в фоновом режиме.

    f = parfeval(backgroundPool,@magicWithSend,1,q,3);

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

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

    Задайте функцию помощника

    Задайте функцию помощника magicWithSend. Функция создает магический квадрат, затем отправляет сумму магического квадрата к DataQueue или PollableDataQueue объект. После того, как сумма отправляется, функция возвращает магический квадрат.

    function X = magicWithSend(q,n)
        X = magic(n);
        s = sum(X,'all');
        send(q,s);
    end

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

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

    Введенный в R2017a