Skip to Main Content
The shift to multicore processors demands efficient parallel programming on a diversity of architectures, including homogeneous and heterogeneous chip multiprocessors (CMPs). Task parallel programming is one approach that maps well to CMPs. In this model, the programmer focuses on identifying parallel tasks within an application, while a runtime system takes care of managing, scheduling, and balancing the tasks among a number of processors or cores. Heterogeneous CMPs, such as the Cell Broadband Engine, present new challenges to task parallel programming and corresponding runtime systems. In this paper, we present a library based on task pools for dynamic task scheduling and load balancing on Cell processors. In contrast to other approaches, our task pools include support for creating tasks using the Synergistic Processing Elements (SPEs), which enables the implementation of a wide range of task parallel applications. Our experiments show that task pools provide flexible and efficient support for task parallel programming on Cell processors. In addition, we show that offloading the process of task creation from the PPE to the SPEs provides much potential for exploiting fine-grained parallelism.