Leveraging Parallel Data Processing Frameworks with Verified Lifting

Maaz Bin Safeer Ahmad
Alvin Cheung

Many parallel data frameworks have been proposed in recent years that let sequential programs access parallel processing. To capitalize on the benefits of such frameworks, existing code must often be rewritten to the domain-specific languages that each framework supports. This rewriting–tedious and error-prone–also requires developers to choose the framework that best optimizes performance given a specific workload.

This paper describes Casper, a novel compiler that automatically retargets sequential Java code for execution on Hadoop, a parallel data processing framework that implements the MapReduce paradigm. Given a sequential code fragment, Casper uses verified lifting to infer a high-level summary expressed in our program specification language that is then compiled for execution on Hadoop. We demonstrate that Casper automatically translates Java benchmarks into Hadoop. The translated results execute on average 3.3x faster than the sequential implementations and scale better, as well, to larger datasets.

In Ruzica Piskac and Rayna Dimitrova: Proceedings Fifth Workshop on Synthesis (SYNT 2016), Toronto, Canada, July 17-18, 2016, Electronic Proceedings in Theoretical Computer Science 229, pp. 67–83.
Published: 22nd November 2016.

ArXived at: https://dx.doi.org/10.4204/EPTCS.229.7 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org