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

07/20/2023
by   Mike Rainey, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/01/2021

Compiling Universal Probabilistic Programming Languages with Efficient Parallel Sequential Monte Carlo Inference

Probabilistic programming languages (PPLs) allow users to encode arbitra...
research
11/19/2021

Continuation-Passing Style, Defunctionalization, Accumulations, and Associativity

Context: Reynolds showed us how to use continuation-passing style and de...
research
09/20/2022

A Tool for Describing and Checking Natural Semantics Definitions of Programming Languages

Many universities have courses and projects revolving around compiler or...
research
12/13/2017

A High-Level Rule-based Language for Software Defined Network Programming based on OpenFlow

This paper proposes XML-Defined Network policies (XDNP), a new high-leve...
research
03/04/2021

Time granularity impact on propagation of disruptions in a system-of-systems simulation of infrastructure and business networks

System-of-systems (SoS) approach is often used for simulating disruption...
research
10/27/2020

Extended abstract: Type oriented programming for task based parallelism

Writing parallel codes is difficult and exhibits a fundamental trade-off...
research
02/08/2019

ARM2GC: Succinct Garbled Processor for Secure Computation

We present ARM2GC, a novel secure computation framework based on Yao's G...

Please sign up or login with your details

Forgot password? Click here to reset