A Survey of Modern Multi-Threading Systems

Prasad Kakulavarapu, José Nelson Amaral

Multi-threaded architectures are a feasible approach to exploit both regular and irregular parallelism. Today a large collection of multi-threading architectures with different threading models, and implementation platforms are available. These architectures provide support for multi-threading 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 preferred because of its favorable price tag, speed of development, and portability. In this article we review some of these architectures focusing on 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 multi-threading architectures that we review are software emulations based on off-the-shelf hardware and compiler technologies. In a related paper we detail the implementation of the EARTH runtime system.

Return to José Nelson Amaral's Publications

Send comments to: amaral AT cs DOT ualberta DOC ca

Return to Amaral's home page