parallel.pool.PollableDataQueue
クライアントとワーカーの間でのデータの送信とポーリング
説明
PollableDataQueue オブジェクトにより、計算中にクライアントと並列プール内のワーカー間でデータまたはメッセージの同期送信およびポーリングができます。たとえば、ワーカーから、中間値をクライアントまたは別のワーカーに送信して、その値を別の計算に使用できます。次のことも可能です。
クライアントまたは任意のワーカーからデータを送信する。
キューの作成元のクライアントまたはワーカーにのみデータの受信を許可する
PollableDataQueueオブジェクトを作成する。クライアントまたはプール内の任意のワーカーにデータの受信を許可する
PollableDataQueueオブジェクトを作成する。 (R2025a 以降)
その他すべてのハンドル オブジェクトとは異なり、PollableDataQueue オブジェクトと DataQueue オブジェクトは転送されても接続されたままになります。
作成
説明
は、クライアントとワーカー間でのデータの送信とポーリングに使用できる q = parallel.pool.PollableDataQueuePollableDataQueue オブジェクトを作成します。結果の PollableDataQueue オブジェクトは、その作成元のクライアントまたはワーカーによってのみポーリングできます。データを受信するワーカーまたはクライアント上で、PollableDataQueue を作成します。
は、q = parallel.pool.PollableDataQueue(Destination=destination)PollableDataQueue オブジェクトの送信先動作を設定します。 (R2025a 以降)
クライアントまたは任意のワーカーで PollableDataQueue オブジェクトをポーリングしてデータを受信できるようにする場合、Destination="any" を設定します。
入力引数
プロパティ
オブジェクト関数
例
ヒント
PollableDataQueueオブジェクトを使用して送信されたデータまたはメッセージは、手動でのデータ取得のみができます。クライアントでデータを受信した後に自動処理するには、代わりにparallel.pool.DataQueueオブジェクトを使用してデータを送信します。R2025a より前: 並列プールのワーカーからクライアントにデータを送り返すには、まずクライアントに
PollableDataQueueオブジェクトを作成します。このPollableDataQueueオブジェクトを、parforループ、またはparfevalなどの他の並列言語構成に渡します。ワーカーからsendを呼び出して、データをクライアントに送り返します。クライアントでpollを使用して、ワーカーから送信されたメッセージまたはデータの結果を取得します。R2025a より前: クライアントからワーカーにデータを送信するには、ワーカー上にキューを作成し、そのキューをクライアントに送り返します。このワークフローの例については、ワーカーでの通信の受信を参照してください。
R2023b より前: ワーカーから別のワーカーにデータを送信することはできません。ワーカー間でデータを転送するには、代わりに
spmd、spmdSendまたはspmdReceiveを使用してください。