@@ -49,7 +49,7 @@ It is not commutative and not parallelizable.
Reading two books for homework is commutative but not parallelizable.
Any producer-consumer scenario with bounded buffer is not serializable at all, therefore not commutative.
Any producer-consumer scenario with a bounded buffer is not serializable at all, therefore not commutative.
The producer task and the consumer task must be executed in parallel.
\begin{table}
...
...
@@ -62,3 +62,11 @@ The producer task and the consumer task must be executed in parallel.
\caption{For every combination of parallelizable and commutative there are tasks that have these properties, which demonstrates that the two notions are independent.}
\label{table:commutativeParallelizable}
\end{table}
In the C2 domain, commutativity alone is not the property we are looking for.
Ideally, we would want all four combinations to be expressible.
In \cref{sec:scheduling} we will see how each of them can be expressed in the model we develop for the scheduler.
For the planner, we are for now content with a more modest goal.
An order constraint between two tasks should express that the tasks are not commutative and not parallelizable.
Unconstrained tasks should be commutative and parallelizable.
The planner can not identify tasks related by the remaining two combinations.