parallel.pool.PollableDataQueue

Отправьте и вручную получите данные

    Описание

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

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

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

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

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

    Создание

    Описание

    пример

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

    Свойства

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

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

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

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

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

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

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

    pollПолучите данные от PollableDataQueue
    sendОтправьте данные в DataQueue или PollableDataQueue

    Примеры

    свернуть все

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

    Создайте PollableDataQueue объект.

    q = parallel.pool.PollableDataQueue;

    Функция помощника 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
    
    

    Используйте poll функция, чтобы собрать данные от очереди.

    poll(q)
    ans = 45
    

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

    Задайте функцию помощника 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) | (Parallel Computing Toolbox)

    Введенный в R2017a