Класс, который позволяет отправить и прислушаться к данным между клиентом и рабочими
Очередь данных позволяет отправить данные или сообщения от рабочих назад клиенту в параллельном пуле, в то время как вычисление выполняется. Например, можно получить промежуточные значения и индикацию относительно прогресса вычисления.
Чтобы отправить данные от параллельного рабочего пула назад клиенту, сначала создайте DataQueue
в клиенте. Передайте этот DataQueue
в parfor
- цикл или другое построение языка параллельного программирования, такое как spmd
. От рабочих вызовите send
, чтобы передать данные обратно клиенту. В клиенте зарегистрируйте функцию, которая будет названа каждый раз, когда данные получены при помощи afterEach
.
Можно вызвать send
от процесса, который вызывает конструктора при необходимости.
Можно создать очередь на рабочих и передать ее обратно клиенту, чтобы включить коммуникацию в обратном направлении. Однако вы не можете отправить очередь от одного рабочего другому. Используйте spmd
, labSend
или labReceive
вместо этого.
В отличие от всех других объектов указателя, экземпляры DataQueue
действительно остаются связанными, когда они отправляются рабочим.
q =
parallel.pool.DataQueue
не берет аргументов и возвращает объект, который может использоваться, чтобы отправить или прислушаться к сообщениям (или данные) от различных рабочих. Вы вызываете конструктора только в процессе, где вы хотите получить данные. В обычном рабочем процессе рабочие не должны вызывать конструктора, но должны быть вручены существующий экземпляр q
=
parallel.pool.DataQueueDataQueue
вместо этого.
Объект parallel.pool.DataQueue
имеет следующие методы.
afterEach | Задайте функцию, чтобы вызвать, когда новые данные будут получены на DataQueue |
отправка | Отправьте данные от рабочего клиенту, использующему очередь данных |
afterEach
| gcp
| labReceive
| labSend
| parallel.pool.PollableDataQueue
| parfor
| poll
| send
| spmd