Operating System Support for Pipeline Parallelism on Multicore Architectures [abstract] (PDF)
John Giacomoni and Manish Vachharajani
2007 Workshop on Operating Systems Support for Heterogeneous Multicore Architectures (OSHMA), September 2007.

The industry wide shift to multicore architectures presents the software development community with an opportunity to revisit fundamental programming models and resource management strategies. Continuing to track the historical performance gains enabled by Moore's law with multicores may be difficult as many applications are fundamentally sequential and not amenable to data- or task-parallel organizations. Fortunately, an important subset of these applications stream data (e.g., video processing, network frame processing, and scientific computing) and can be decomposed into pipeline-parallel structures, delivering increases proportional to the pipeline depth (2x, 3x, etc.).

To realize the potential of pipeline-parallel software organizations requires reexamining some basic historical assumptions in OS design, including the purpose of time-sharing and the nature of applications. The key architectural change is that multicore architectures make it possible to fully dedicate resources as needed without compromising existing OS services. This paper describes the minimal OS extensions necessary to support efficient pipeline-parallel applications on multicore systems with supporting evidence from the domain of network frame processing.