Other Impediments to Scalability
Load imbalance:
-
- the time to complete a parallel execution of a code segment is determined by the longest running thread
-
- unequal work load distribution leads to some processors being idle, while others work too much
with coarse grain parallelization, more opportunities for load
imbalance exist
-
Too many synchronization points
- compiler will put synchronization points at the start and exit of each parallel region
- if too many small loops have been made parallel, synchronization overhead will compromise scalability.