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.