Borrar filtros
Borrar filtros

Communicating tasks access from client (PCT)

1 visualización (últimos 30 días)
Olivier Parodi
Olivier Parodi el 19 de Nov. de 2020
I would like to create a task capable of communicating with other tasks on the one hand and with which I can exchange data from matlab command (client) on the other hand.
Typically:
1) Tasks A,B send data periodically to task H. --> labsend / labreceive
2) task C is a "slave" task of task H (H send some computation requests, C do the job without blocking H, H verifies periodically if C is finished, then retrieve data) --> labprobe / labsend / labreceive
3) Client cas send and receive data to/from H asynchronously (non blocking). send / poll / PollableDataQueue
I tried different solutions without achieving full success:
  • SPMD: I can do everything except the last requirement: Client cas send and receive data to/from H asynchronously (non blocking). Indeed I can use a DataQueue (and it works) but it's a blocking solution. Instead I would like to use a PollableDataQueue but as this solution is blocking, I can't use the poll function when needed.
  • parfeval: it is not possible to use labsend / labreceive functions to exchange data with the other tasks. On the other hand, it is possible to create a PollableDataQueue.
  • CommunicatingJob: it is not possible to attach a Queue created from the client.
  • independant jobs: it is not possible to exchange data with the other jobs
The most approaching solution is the first one (SPMD).
Does anyone have any idea on the right way to go about this?

Respuestas (0)

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by