Publication Date

Spring 2013

Degree Type

Master's Project

Degree Name

Master of Science (MS)


Computer Science


In recent years, multicore processors have been so prevalent in many types of
systems and are now widely used even in commodities for a wide range of applications.
Although multicore processors are clearly a popular hardware solution to problems that
were not possible with traditional single-core processors, taking advantage of them are
inevitably met by software challenges. As Amdahl’s law puts it, the performance gain is
limited by the percentage of the software that cannot be run in parallel on multiple cores.
Even when an application is “embarrassingly” parallelized by a careful design of
algorithm and implementation, load balancing of tasks across different cores is a very
important and critical aspect in utilizing a multicore system as close to its fullest potential
as possible.
In this paper, we investigate how a solution to a cardinal payoff variant of the
secretary problem can be applied to a proactive, decentralized, dynamic load balancing
technique in user-space to assist single program, multiple data (SPMD) applications in
multiprogrammed environment so that all tasks can make roughly equal progress
distributed over all cores. We examine how this method compares with the default Linux
load balancer in terms of scalability and predictability. Our experiments show promising
results that show our technique outperforms the default Linux scheduler by an average 40%
speedup in multiprogrammed environment with less time variance among multiple