Gengbin Zheng, Orion Sky Lawlor 1, Laxmikant V. Kalé
Department of Computer Science
University of Illinois at Urbana-Champaign
Many important parallel applications require multiple flows of
control to run on a single processor.
In this paper, we present a study of four flow-of-control mechanisms:
processes, kernel threads, user-level threads and event-driven objects.
Through experiments, we demonstrate the practical performance and
limitations of these techniques on a variety of platforms.
We also examine migration of these flows-of-control with focus on
thread migration, which is critical for application-independent dynamic
load balancing in parallel computing applications.
Thread migration, however, is challenging due to the complexity
of both user and system state involved.
In this paper, we present several techniques to support migratable
threads and compare the performance of these techniques.