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.