Chapter 8

Load balancing

Abstract

Program execution on a multicore platform, even a homogeneous one, does not guarantee performance gains. The key is in letting each of the cores contribute to the overall computation for the maximum amount of time. For anything but trivial problem settings, and especially for heterogeneous platforms like ones made of CPU and GPU cores, this calls for some form of load balancing, i.e., explicit or implicit workload shifts between the cores, so that idle times are eliminated to the maximum degree possible.

In this chapter we examine the two generic categories of load balancing algorithms: static which can be considered pro-active, meaning that they pre-calculate load assignments without expensive communications ...

Get Multicore and GPU Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.