English

The best multicore-parallelization refactoring you've never heard of

Distributed, Parallel, and Cluster Computing 2023-07-21 v1 Programming Languages

Abstract

In this short paper, we explore a new way to refactor a simple but tricky-to-parallelize tree-traversal algorithm to harness multicore parallelism. Crucially, the refactoring draws from some classic techniques from programming-languages research, such as the continuation-passing-style transform and defunctionalization. The algorithm we consider faces a particularly acute granularity-control challenge, owing to the wide range of inputs it has to deal with. Our solution achieves efficiency from heartbeat scheduling, a recent approach to automatic granularity control. We present our solution in a series of individually simple refactoring steps, starting from a high-level, recursive specification of the algorithm. As such, our approach may prove useful as a teaching tool, and perhaps be used for one-off parallelizations, as the technique requires no special compiler support.

Keywords

Cite

@article{arxiv.2307.10556,
  title  = {The best multicore-parallelization refactoring you've never heard of},
  author = {Mike Rainey},
  journal= {arXiv preprint arXiv:2307.10556},
  year   = {2023}
}