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.