Parcae: A System for Flexible Parallel Execution [abstract] (PDF)
Arun Raman, Ayal Zaks, Jae W. Lee, and David I. August
Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), June 2012.
Workload, platform, and available resources constitute a parallel program's
execution environment. Most parallelization efforts statically target an
anticipated range of environments, but performance generally degrades outside
that range. Existing approaches address this problem with dynamic tuning but do
not optimize a multiprogrammed system holistically. Further, they either
require manual programming effort or are limited to array-based data-parallel
programs.
This paper presents Parcae, a generally applicable automatic system
for platform-wide dynamic tuning. Parcae includes (i) the Nona compiler, which
creates flexible parallel programs whose tasks can be efficiently reconfigured
during execution; (ii) the Decima monitor, which measures resource availability
and system performance to detect change in the environment; and (iii) the Morta
executor, which cuts short the life of executing tasks, replacing them with
other functionally equivalent tasks better suited to the current environment.
Parallel programs made flexible by Parcae outperform original parallel
implementations in many interesting scenarios.