Collaborative Parallelization Framework [abstract]
Ziyang Xu, Greg Chan, Sotiris Apostolakis, and David I. August
The First Young Architect Workshop (YArch), February 2019.

Automatic parallelization frees programmers from the error-prone and time-consuming process of making applications run efficiently on multi-core systems. Each existing parallelizing compiler is the best option for a different set of benchmarks; none is universally performant. While new multicore-optimized parallelization transformations, stronger analyses, and more efficient speculation techniques are powerful enough to extract parallelism reliably from even irregular and complex applications, they often fail to do so because they lack proper coordination and information. This work introduces the Collaborative Parallelization Framework (CPF), a means to address these deficiencies. To address the lack of coordination, CPF orchestrates collaborations among parallelization techniques and enabling transformations. In cases where this is insufficient, CPF seeks additional information from the programmer. Orchestration of all these components allows for a modular design that facilitates extensibility.