Modular Synthesis of Divide-and-Conquer Parallelism for Nested Loops (Extended Version)

by   Azadeh Farzan, et al.

We propose a methodology for automatic generation of divide-and-conquer parallel implementations of sequential nested loops. We focus on a class of loops that traverse read-only multidimensional collections (lists or arrays) and compute a function over these collections. Our approach is modular, in that, the inner loop nest is abstracted away to produce a simpler loop nest for parallelization. Then, the summarized version of the loop nest is parallelized. The main challenge addressed by this paper is that to perform the code transformations necessary in each step, the loop nest may have to be augmented (automatically) with extra computation to make possible the abstraction and/or the parallelization tasks. We present theoretical results to justify the correctness of our modular approach, and algorithmic solutions for automation. Experimental results demonstrate that our approach can parallelize highly non-trivial loop nests efficiently.


page 1

page 2

page 3

page 4


General Automation in Coq through Modular Transformations

Whereas proof assistants based on Higher-Order Logic benefit from extern...

Scalable Querying of Nested Data

While large-scale distributed data processing platforms have become an a...

Automatic task-based parallelization of C++ applications by source-to-source transformations

Currently, multi/many-core CPUs are considered standard in most types of...

Loop Programming Practices that Simplify Quicksort Implementations

Quicksort algorithm with Hoare's partition scheme is traditionally imple...

OpenMP Parallelization of Dynamic Programming and Greedy Algorithms

Multicore has emerged as a typical architecture model since its advent a...

A Novel Loop Fission Technique Inspired by Implicit Computational Complexity

This work explores an unexpected application of Implicit Computational C...

READ-EVAL-PRINT in Parallel and Asynchronous Proof-checking

The LCF tradition of interactive theorem proving, which was started by M...