Task Management

Task management overview.

Task management will be handled by TBB. There will be tasks to represent a source read-event operation, a schedule iteration and an end-path operation.
  • Source read-events are serial with respect to each other but in parallel with schedule iterations and end-path operations.
  • Schedule iterations may occur in parallel with each other and with read-event and end-path operations. Only one module at a time may operate on a given event.
  • End-path operations are serial with respect to each other but in parallel with read-event operations and schedule iterations. End-path modules will operate simultaneously on the same event.

Service interactions.

In parallel mode:
  • Sources may interact only with global services while reading an event.
  • Trigger-path modules may interact with per-schedule or global services while processing an event. It shall be possible to get a ServiceHandle to the correct per-schedule service without a module (or algorithm code called therefrom) needing to provide schedule-specific information.
  • End-path modules may interact with global services only while processing or writing an event.

On-demand module execution.

In the first version of parallel art, on-demand operation shall be disabled for multi-schedule configurations. According to Chris Jones and Vincenzo Innocente, the possibility of deadlock with parallel module execution with on-demand if tasks "wait" for a resource or other module execution requires that the dependency tree be known in advance and tasks scheduled accordingly. In other words, if we are going to have on-demand operation we need to know in advance which modules depend upon which other modules.