parallel.pool.PollableDataQueue
Class that enables sending and polling for data between client and workers
Description
parallel.pool.PollableDataQueue
enables sending and polling for data or messages between workers and client in a parallel pool while a computation is being carried out. You can get intermediate values and progress of the computation.
To send data from a parallel pool worker back to the client, first construct aPollableDataQueue
in the client. Pass thisPollableDataQueue
into aparfor
-loop or other parallel language construct, such asparfeval
. From the workers, callsend
to send data back to the client. At the client, usepoll
to retrieve the result of a message or data sent from a worker.
You can call
send
from the process that calls the constructor, if required.You can construct the queue on the workers and send it back to the client to enable communication in the reverse direction. However, you cannot send a queue from one worker to another. Use
spmd
,labSend
, orlabReceive
instead.Unlike all other handle objects,
PollableDataQueue
instances do remain connected when they are sent to workers.
Construction
p
= parallel.pool.PollableDataQueue
The constructor for aPollableDataQueue
takes no arguments and returns an object that can be used to send and poll for messages (or data) from different workers. You call the constructor only in the process where you want to receive the data. In the usual workflow, the workers should not be calling the constructor, but should be handed an existingPollableDataQueue
instance instead.
Properties
Methods
A parallel.pool.PollableDataQueue object has the following methods.
poll | Retrieve data sent from a worker |
send | Send data from worker to client using a data queue |
Copy Semantics
Handle. To learn how handle classes affect copy operations, seeCopying Objects(MATLAB).
Examples
发送消息in aparfor
-loop, and Poll for the Result
Construct aPollableDataQueue
.
p = parallel.pool.PollableDataQueue;
Start aparfor
-loop, and send a message, such as data with the value 1.
parfori = 1 send(p, i);end
poll(p)
1
For more details on polling for data using aPollableDataQueue
, seepoll
.
See Also
gcp
|labReceive
|labSend
|parallel.pool.DataQueue
|parfeval
|parfevalOnAll
|parfor
|poll
|send
Topics
- Class Attributes(MATLAB)
- Property Attributes(MATLAB)