Question: Why is the "overhead" of static work assignment typically lower than that incurred by a program that employs dynamic work assignment?
lament
The simplest part of the answer (probably not the whole answer you are looking for) is that static work assignments are
generally easy to compute
require less work-load monitoring at run time
require less (if any) work-load re-assignment than dynamic assignment.
likely require the threads to synchronize less often
3 is probably the cause with the most impact, in that it occurs most often and leads to more overhead than 1 or 2. In a static assignment, a thread is just handed its work and chugs along; it doesn't have to wait to be handed more work, and it will not interrupted then shifted onto another task.
landuo
The overhead of static work assignment is lower than that of dynamic work assignment is that the processor has little computation to do at run time to determine work assignment because it is pre-defined.
sanchuah
Because the scheduler of static work assignment does not need computation to decide how to assign a work to which core, but the one of dynamic work assignment scheduler needs to calculate the best fit core of a work on the fly.
Question: Why is the "overhead" of static work assignment typically lower than that incurred by a program that employs dynamic work assignment?
The simplest part of the answer (probably not the whole answer you are looking for) is that static work assignments are
The overhead of static work assignment is lower than that of dynamic work assignment is that the processor has little computation to do at run time to determine work assignment because it is pre-defined.
Because the scheduler of static work assignment does not need computation to decide how to assign a work to which core, but the one of dynamic work assignment scheduler needs to calculate the best fit core of a work on the fly.