The load balancing protocol can be invoked by a busy processor (referred to as busy-initiated), or by an idle processor (referred to as idle-initiated).
Busy-initiated protocols are more efficient when tasks are about to be generated, that is, when there are many more idle processors than busy processors. Idle-initiated protocols are more efficient when the tasks are about to be exhausted, that is, when there are many more busy processors than idle processors. Busy-initiated protocols have the disadvantage of penalizing busy processors, because these processors observe the protocol overhead.