Default work block scheduling policy
The ALF API supports multiple ways of assigning work blocks to task instances. By default, enqueued work blocks can be assigned to any of the task instances in any order. The ALF runtime tries to balance the load of the task instances to ensure that the task can complete in the shortest time. This means that task instances that start early or run faster may process more work blocks than those that start later or run slower.
Cyclic work block distribution policy
You can enable cyclic work block distribution by setting the attributes ALF_TASK_ATTR_WB_CYCLIC and ALF_TASK_ATTR_SCHED_FIXED when you create the task. These attributes enable the work blocks to be assigned in a round robin order to a fixed number of task instances.
Bundled work block distribution policy
The work blocks are assigned to the task instances in a group of bundle_size at a time in the order of the work blocks being enqueued through calling the function alf_wb_enqueue. All work blocks in a bundle are assigned to one task instance, and the order defined in alf_wb_enqueue is also preserved.