Capturing and Composing Parallel Patterns With Intel CnC
The most accessible and successful parallel tools today are those that ask programmers to write only isolated serial kernels, hiding parallelism behind a library interface. Examples include Google's Map-Reduce, CUDA, and STAPL. This encapsulation approach applies to a wide range of structured, well-understood algorithms, which the authors call parallel patterns. Today's high-level systems tend to encapsulate only a single pattern. Thus they explore the use of Intel CnC as a single framework for capturing and composing multiple patterns.