A Survey of Load Balancers in Modern Multi-Threading Systems - Kakulavarapu, Prasad; Amaral, José Nelson (Anais do International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), 1999)
Multithreaded architectures are a feasible approach to exploit parallelism in both regular and irregular applications. Today a large collection of multi-threading architectures with different threaded models, and implementation platforms are available. These architectures provide support for multithreading either at hardware level, with customized functional units, or at the software level, as emulators written in some high-level language. The later approach is usually prefered because of its favorable price tag, speed of development, and portability. In this article we review some of these architectures focusing in their capabilities to provide load balancing for irregular, data-parallel and recursive applications. The paper is anchored on a description of our own implementation of load balancers for EARTH - Efficient Architecture for Running Threads. Most of the multithreading architectures that we review are software emulations based on off-the-shelf hardware and compiler technologies.