skip to main content
article

Gradual synthesis for static parallelization of single-pass array-processing programs

Published:14 June 2017Publication History
Skip Abstract Section

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.

References

  1. Rajeev Alur, Pavol Cern´y, and Arjun Radhakrishna. Synthesis through unification. In CAV, volume 9207 of LNCS, pages 163–179. Springer, 2015.Google ScholarGoogle Scholar
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle Scholar
  4. Przemyslaw Daca, Thomas A. Henzinger, and Andrey Kupriyanov. Array folds logic. In CAV, volume 9780, pages 230–248, Part II. Springer, 2016.Google ScholarGoogle Scholar
  5. Jeffrey Dean and Sanjay Ghemawat. Mapreduce: Simplified data processing on large clusters. In OSDI, pages 137–150. USENIX Association, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Azadeh Farzan and Victor Nicolet. Automated synthesis of divide and conquer parallelism. In PLDI. ACM, 2017. to appear.Google ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle Scholar
  10. John K. Feser, Swarat Chaudhuri, and Isil Dillig. Synthesizing data structure transformations from input-output examples. In PLDI, pages 229–239. ACM, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Sumit Gulwani, William R. Harris, and Rishabh Singh. Spreadsheet data manipulation using examples. Commun. ACM, 55(8):97–105, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Youssef Hamadi, Sa¨ıd Jabbour, and Lakhdar Sais. Manysat: a parallel SAT solver. JSAT, 6(4):245–262, 2009.Google ScholarGoogle Scholar
  13. Krystof Hoder and Nikolaj Bjørner. Generalized property directed reachability. In SAT, volume 7317, pages 157–171. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. Shmuel Tomi Klein and Yair Wiseman. Parallel huffman decoding with applications to JPEG files. Comput. J., 46(5): 487–497, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  16. Peter M. Kogge. Parallel solution of recurrence problems. IBM Journal of Research and Development, 18(2):138–148, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Anvesh Komuravelli, Arie Gurfinkel, and Sagar Chaki. SMTBased Model Checking for Recursive Programs. In CAV, volume 8559 of LNCS, pages 17–34, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Kuehlmann and F. Krohm. Equivalence checking using cuts and heaps. In DAC, pages 263–268. IEEE, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Shuvendu K. Lahiri, Kenneth L. McMillan, Rahul Sharma, and Chris Hawblitzel. Differential assertion checking. In FSE, pages 345–355. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. Dmitry Mordvinov and Grigory Fedyukovich. Synchronizing Constrained Horn Clauses. In LPAR, volume 46 of EPiC Series in Computing, pages 338–355. EasyChair, 2017.Google ScholarGoogle Scholar
  22. Todd Mytkowicz, Madanlal Musuvathi, and Wolfram Schulte. Data-parallel finite-state machines. In ASPLOS, pages 529– 542. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Prakash Prabhu, Ganesan Ramalingam, and Kapil Vaswani. Safe programmable speculative parallelism. In PLDI, pages 50–61. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Cosmin RaGoogle ScholarGoogle Scholar
  25. Veselin Raychev, Madanlal Musuvathi, and Todd Mytkowicz. Parallelizing user-defined aggregations using symbolic execution. In SOSP, pages 153–167. ACM, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Rahul Sharma, Eric Schkufza, Berkeley R. Churchill, and Alex Aiken. Data-driven equivalence checking. In OOPSLA, pages 391–406. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Calvin Smith and Aws Albarghouthi. MapReduce program synthesis. In PLDI, pages 326–340. ACM, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. Peter Sutton. Partial character decoding for improved regular expression matching in fpgas. In FPT, pages 25–32. IEEE, 2004.Google ScholarGoogle Scholar
  30. Emina Torlak and Rastislav Bod´ık. Growing solver-aided languages with Rosette. In Onward!, pages 135–152. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Emina Torlak and Rastislav Bod´ık. A lightweight symbolic virtual machine for solver-aided host languages. In PLDI, pages 530–541. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. Tom White. Hadoop - The Definitive Guide: MapReduce for the Cloud. O’Reilly, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Gradual synthesis for static parallelization of single-pass array-processing programs

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!