Abstract
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.
- Rajeev Alur, Pavol Cern´y, and Arjun Radhakrishna. Synthesis through unification. In CAV, volume 9207 of LNCS, pages 163–179. Springer, 2015.Google Scholar
- Daniel W. Barowy, Sumit Gulwani, Ted Hart, and Benjamin G. Zorn. Flashrelate: extracting relational data from semi-structured spreadsheets using examples. In PLDI, pages 218–228. ACM, 2015. Google Scholar
Digital Library
- Yu-Fang Chen, Lei Song, and Zhilin Wu. The commutativity problem of the MapReduce framework: A transducerbased approach. In CAV, volume 9780, pages 91–111, Part II. Springer, 2016.Google Scholar
- Przemyslaw Daca, Thomas A. Henzinger, and Andrey Kupriyanov. Array folds logic. In CAV, volume 9780, pages 230–248, Part II. Springer, 2016.Google Scholar
- Jeffrey Dean and Sanjay Ghemawat. Mapreduce: Simplified data processing on large clusters. In OSDI, pages 137–150. USENIX Association, 2004. Google Scholar
Digital Library
- Azadeh Farzan and Victor Nicolet. Automated synthesis of divide and conquer parallelism. In PLDI. ACM, 2017. to appear.Google Scholar
- Grigory Fedyukovich and Rastislav Bod´ık. Approaching symbolic parallelization by synthesis of recurrence decompositions. In SYNT, volume 229 of EPTCS, pages 55–66, 2016.Google Scholar
- Grigory Fedyukovich, Ondrej Sery, and Natasha Sharygina. eVolCheck: Incremental Upgrade Checker for C. In TACAS, volume 7795 of LNCS, pages 292–307. Springer, 2013. Google Scholar
Digital Library
- Grigory Fedyukovich, Arie Gurfinkel, and Natasha Sharygina. Property directed equivalence via abstract simulation. In CAV, volume 9780, Part II, pages 433–453. Springer, 2016.Google Scholar
- John K. Feser, Swarat Chaudhuri, and Isil Dillig. Synthesizing data structure transformations from input-output examples. In PLDI, pages 229–239. ACM, 2015. Google Scholar
Digital Library
- Sumit Gulwani, William R. Harris, and Rishabh Singh. Spreadsheet data manipulation using examples. Commun. ACM, 55(8):97–105, 2012. Google Scholar
Digital Library
- Youssef Hamadi, Sa¨ıd Jabbour, and Lakhdar Sais. Manysat: a parallel SAT solver. JSAT, 6(4):245–262, 2009.Google Scholar
- Krystof Hoder and Nikolaj Bjørner. Generalized property directed reachability. In SAT, volume 7317, pages 157–171. Springer, 2012. Google Scholar
Digital Library
- Michael Isard, Mihai Budiu, Yuan Yu, Andrew Birrell, and Dennis Fetterly. Dryad: distributed data-parallel programs from sequential building blocks. In EuroSys, pages 59–72. ACM, 2007. Google Scholar
Digital Library
- Shmuel Tomi Klein and Yair Wiseman. Parallel huffman decoding with applications to JPEG files. Comput. J., 46(5): 487–497, 2003.Google Scholar
Cross Ref
- Peter M. Kogge. Parallel solution of recurrence problems. IBM Journal of Research and Development, 18(2):138–148, 1974. Google Scholar
Digital Library
- Anvesh Komuravelli, Arie Gurfinkel, and Sagar Chaki. SMTBased Model Checking for Recursive Programs. In CAV, volume 8559 of LNCS, pages 17–34, 2014. Google Scholar
Digital Library
- A. Kuehlmann and F. Krohm. Equivalence checking using cuts and heaps. In DAC, pages 263–268. IEEE, 1997. Google Scholar
Digital Library
- Shuvendu K. Lahiri, Kenneth L. McMillan, Rahul Sharma, and Chris Hawblitzel. Differential assertion checking. In FSE, pages 345–355. ACM, 2013. Google Scholar
Digital Library
- Daniel Luchaup, Randy Smith, Cristian Estan, and Somesh Jha. Speculative parallel pattern matching. IEEE Trans. Information Forensics and Security, 6(2):438–451, 2011. Google Scholar
Digital Library
- Dmitry Mordvinov and Grigory Fedyukovich. Synchronizing Constrained Horn Clauses. In LPAR, volume 46 of EPiC Series in Computing, pages 338–355. EasyChair, 2017.Google Scholar
- Todd Mytkowicz, Madanlal Musuvathi, and Wolfram Schulte. Data-parallel finite-state machines. In ASPLOS, pages 529– 542. ACM, 2014. Google Scholar
Digital Library
- Prakash Prabhu, Ganesan Ramalingam, and Kapil Vaswani. Safe programmable speculative parallelism. In PLDI, pages 50–61. ACM, 2010. Google Scholar
Digital Library
- Cosmin RaGoogle Scholar
- Veselin Raychev, Madanlal Musuvathi, and Todd Mytkowicz. Parallelizing user-defined aggregations using symbolic execution. In SOSP, pages 153–167. ACM, 2015. Google Scholar
Digital Library
- Rahul Sharma, Eric Schkufza, Berkeley R. Churchill, and Alex Aiken. Data-driven equivalence checking. In OOPSLA, pages 391–406. ACM, 2013. Google Scholar
Digital Library
- Calvin Smith and Aws Albarghouthi. MapReduce program synthesis. In PLDI, pages 326–340. ACM, 2016. Google Scholar
Digital Library
- Armando Solar-Lezama, Liviu Tancau, Rastislav Bod´ık, Sanjit A. Seshia, and Vijay A. Saraswat. Combinatorial sketching for finite programs. In ASPLOS, pages 404–415. ACM, 2006. Google Scholar
Digital Library
- Peter Sutton. Partial character decoding for improved regular expression matching in fpgas. In FPT, pages 25–32. IEEE, 2004.Google Scholar
- Emina Torlak and Rastislav Bod´ık. Growing solver-aided languages with Rosette. In Onward!, pages 135–152. ACM, 2013. Google Scholar
Digital Library
- Emina Torlak and Rastislav Bod´ık. A lightweight symbolic virtual machine for solver-aided host languages. In PLDI, pages 530–541. ACM, 2014. Google Scholar
Digital Library
- Giorgos Vasiliadis, Michalis Polychronakis, Spyros Antonatos, Evangelos P. Markatos, and Sotiris Ioannidis. Regular expression matching on graphics hardware for intrusion detection. In RAID, volume 5758 of LNCS, pages 265–283. Springer, 2009. Google Scholar
Digital Library
- Tom White. Hadoop - The Definitive Guide: MapReduce for the Cloud. O’Reilly, 2009. Google Scholar
Digital Library
- Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauly, Michael J. Franklin, Scott Shenker, and Ion Stoica. Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing. In NSDI, pages 15–28. USENIX Association, 2012. Google Scholar
Digital Library
Index Terms
Gradual synthesis for static parallelization of single-pass array-processing programs
Recommendations
Gradual synthesis for static parallelization of single-pass array-processing programs
PLDI 2017: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and ImplementationParallelizing 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 ...
A comparison of automatic parallelization tools/compilers on the SGI origin 2000
SC '98: Proceedings of the 1998 ACM/IEEE conference on SupercomputingPorting applications to new high performance parallel and distributed computing platforms is a challenging task. Since writing parallel code by hand is time consuming and costly, porting codes would ideally be automated by using some parallelization ...
(R) Array Operation Synthesis to optimize HPF Programs
ICPP '96: Proceedings of the Proceedings of the 1996 International Conference on Parallel Processing - Volume 3Abstract: The synthesis of consecutive array operations or array expressions into a composite access function of the source arrays at compile time can reduce the redundant data movement, temporary storage usage and loop synchronization overhead on flat ...






Comments