Self-adjusting task granularity for Global load balancer library on clusters of many-core processors
Patrick C. Finnerty, Tomio Kamada, Chikara Ohta · 2020
Achieving load balance is a challenge for irregular applications. Balancing runtimes and libraries aim at relieving the programmer from this difficult task by proposing a layer of abstraction between the computation at hand and the hardware used to actually perform it. With the rise of many-core architectures, load balancers for distributed computation are now expected to handle unbalance both between and within compute nodes. We bear a particular interest in backtrack search algorithms where branches of the exploration tree can be processed in parallel. Profile-based load balancers cannot be applied to them as the computation need only be performed once. It is therefore vital to promptly detect and address load unbalances from the start.