top of page
James Burke

Load Balancing With OpenMP

This is a continuation to this post!

Load imbalance is the time that some processors in the system are idle due to insufficient parallelism and/or unequal size tasks. As the diagram illustrates, the performance of the overall algorithm is determined by the slowest task.


Looking at this image, you can identify that there are sections of the pictures which would take longer to process than others, such as the black background compared to the balls which have rayraced reflections on their surfaces. There is an imbalance where, in the context of this image, threads often complete execution in different times.

Ideally, we would balance the load between threads, in hopes of achieving a better processing time. Compare left (unbalanced) with right (balanced).






(Each result for time taken is based on an average of three values)

I tested each scheduling method with 4 and 8 threads respectively. Results show that,

with this particular parallelised section, dynamic load balancing showed to have the best effect on performance, as shown in the results from both thread counts. Static and guided load balancing also showed to be beneficial, but to a lesser extent. Overall, each load balancing method showed to improve performance over no use of load balancing technique.

Recent Posts

See All

Comments


bottom of page