Publication | Closed Access
Gradual synthesis for static parallelization of single-pass array-processing programs
12
Citations
18
References
2017
Year
Cluster ComputingEngineeringComputer ArchitectureParallel ImplementationSoftware EngineeringGrassp SolutionsSoftware AnalysisArray ComputingParallel SoftwareNew SegmentationArbitrary SegmentationParallel ComputingGradual SynthesisParallelizing CompilerComputer EngineeringComputer ScienceProgram AnalysisParallel ProgrammingParallel Programming ModelData-level Parallelism
Parallelizing of software improves its effectiveness and productivity. To guarantee correctness, the parallel and serial versions of the same code must be formally verified to be equivalent. We present a novel approach, called GRASSP, that automatically synthesizes parallel single-pass array-processing programs by treating the given serial versions as specifications. Given arbitrary segmentation of the input array, GRASSP synthesizes a code to determine a new segmentation of the array that allows computing partial results for each segment and merging them. In contrast to other parallelizers, GRASSP gradually considers several parallelization scenarios and certifies the results using constrained Horn solving. For several classes of programs, we show that such parallelization can be performed efficiently. The C++ translations of the GRASSP solutions sped performance by up to 5X relative to serial code on an 8-thread machine and Hadoop translations by up to 10X on a 10-node Amazon EMR cluster.
| Year | Citations | |
|---|---|---|
Page 1
Page 1