Formal Methods in System Design

, Volume 50, Issue 1, pp 75–95 | Cite as

An empirical study of adaptive concretization for parallel program synthesis

  • Jinseong Jeon
  • Xiaokang Qiu
  • Armando Solar-Lezama
  • Jeffrey S. Foster
Article
  • 118 Downloads

Abstract

Adaptive concretization is a program synthesis technique that enables efficient parallelization of challenging synthesis problems. The key observation behind adaptive concretization is that in a challenging synthesis problem, there are some unknowns that are best suited for explicit search and some that are best suited for symbolic search through constraint solving. At a high level, the main idea behind adaptive concretization is to dynamically identify which unknowns are best suited to which kind of search, and to parallelize the explicit search on those unknowns for which that style of search is more suitable. We first introduced adaptive concretization in an earlier paper [Jeon et al. in Computer aided verification, Springer, Berlin 2015]. Our original algorithm involved a few arbitrary design decisions, leaving open the question of whether different choices could achieve better performance. In this paper, we systematically evaluate several dimensions of the design space to better understand the tradeoffs. We show that, in general, adaptive concretization is robust along those dimensions, and our initial choices were reasonable.

Keywords

Program synthesis Syntax-guided synthesis Adaptive concretization 

Notes

Acknowledgements

Supported in part by NSF CCF-1139021, CCF-1139056, CCF-1161775, and the partnership between UMIACS and the Laboratory for Telecommunication Sciences.

References

  1. 1.
    Alur R, Bodík R, Juniwal G, Martin MMK, Raghothaman M, Seshia SA, Singh R, Solar-Lezama A, Torlak E, Udupa A (2013) Syntax-guided synthesis. In: Formal methods in computer-aided design, FMCAD 2013, Portland, OR, USA, October 20–23, 2013, pp 1–17Google Scholar
  2. 2.
    Ansel J, Kamil S, Veeramachaneni K, Ragan-Kelley J, Bosboom J, O’Reilly U, Amarasinghe SP (2014) Opentuner: an extensible framework for program autotuning. In: International conference on parallel architectures and compilation, PACT ’14, Edmonton, AB, Canada, August 24–27, 2014, pp 303–316Google Scholar
  3. 3.
    Chaganty A, Nori AV, Rajamani SK (2013) Efficiently sampling probabilistic programs via program analysis. In: Proceedings of the sixteenth international conference on artificial intelligence and statistics, AISTATS 2013, Scottsdale, AZ, USA, April 29–May 1, 2013, pp 153–160Google Scholar
  4. 4.
    Chaudhuri S, Clochard M, Solar-Lezama, A (2014) Bridging boolean and quantitative synthesis using smoothed proof search. In: The 41st annual ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL ’14, San Diego, CA, USA, January 20–21, 2014, pp 207–220Google Scholar
  5. 5.
    Chaudhuri S, Solar-Lezama A (2010) Smooth interpretation. In: Proceedings of the 2010 ACM SIGPLAN conference on programming language design and implementation, PLDI 2010, Toronto, ON, Canada, June 5–10, 2010, pp 279–291Google Scholar
  6. 6.
    Cheung A, Solar-Lezama A, Madden S (2013) Optimizing database-backed applications with query synthesis. In: ACM SIGPLAN conference on programming language design and implementation, PLDI ’13, Seattle, WA, USA, June 16–19, 2013, pp 3–14Google Scholar
  7. 7.
    Efron B (1979) Bootstrap methods: another look at the jackknife. Ann Stat 7(1):1–26MathSciNetCrossRefMATHGoogle Scholar
  8. 8.
    Gaudin W, Mallinson A, Perks O, Herdman J, Beckingsale D, Levesque J, Jarvis S (2014) Optimising hydrodynamics applications for the cray xc30 with the application tool suite. The Cray User Group, pp 4–8Google Scholar
  9. 9.
    Gulwani S (2011) Automating string processing in spreadsheets using input-output examples. In: Proceedings of the 38th ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL 2011, Austin, TX, USA, January 26–28, 2011, pp 317–330Google Scholar
  10. 10.
    Hamadi Y, Jabbour S, Sais L (2009) Manysat: a parallel SAT solver. JSAT 6(4):245–262MATHGoogle Scholar
  11. 11.
    Harris WR, Gulwani S (2011) Spreadsheet table transformations from examples. In: Proceedings of the 32nd ACM SIGPLAN conference on programming language design and implementation, PLDI 2011, San Jose, CA, USA, June 4–8, 2011, pp 317–328Google Scholar
  12. 12.
    Jeon J, Qiu X, Fetter-Degges J, Foster JS, Solar-Lezama A synthesizing framework models for symbolic execution. (Under submission)Google Scholar
  13. 13.
    Jeon J, Qiu X, Solar-Lezama A, Foster JS (2015) Adaptive concretization for parallel program synthesis. In: Computer aided verification (CAV), volume 9207 of lecture notes in computer science, pp 377–394, San Francisco, CA, USA, July 2015. Springer International PublishingGoogle Scholar
  14. 14.
    Jha S, Gulwani S, Seshia SA, Tiwari A (2010) Oracle-guided component-based program synthesis. In: Proceedings of the 32nd ACM/IEEE international conference on software engineering - Vol 1, ICSE ’10, pp 215–224, New York, NY, USA, 2010. ACMGoogle Scholar
  15. 15.
    Mann HB, Whitney DR (1947) On a test of whether one of two random variables is stochastically larger than the other. Ann Math Stat 18(1):50–60MathSciNetCrossRefMATHGoogle Scholar
  16. 16.
    Qiu X, Solar-Lezama A synthesizing data-structure manipulations with natural proofs. (Under submission)Google Scholar
  17. 17.
    Schkufza E, Sharma R, Aiken A (2013) Stochastic superoptimization. In: Architectural support for programming languages and operating systems, ASPLOS ’13, Houston, TX, USA, March 16–20, 2013, pp 305–316Google Scholar
  18. 18.
    Schkufza E, Sharma R, Aiken A (2014) Stochastic optimization of floating-point programs with tunable precision. In: ACM SIGPLAN conference on programming language design and implementation, PLDI ’14, Edinburgh, UK, June 09–11, 2014, p 9Google Scholar
  19. 19.
    Sharma R, Aiken A (2014) From invariant checking to invariant inference using randomized search. In: Computer aided verification—26th international conference, CAV 2014, held as part of the Vienna summer of logic, VSL 2014, Vienna, Austria, July 18–22, 2014. Proceedings, pp 88–105Google Scholar
  20. 20.
    Singh R, Gulwani S (2012) Synthesizing number transformations from input-output examples. In: Computer aided verification—24th international conference, CAV 2012, Berkeley, CA, USA, July 7–13, 2012 Proceedings, pp 634–651Google Scholar
  21. 21.
    Singh R, Gulwani S, Solar-Lezama A (2013) Automated feedback generation for introductory programming assignments. In: ACM SIGPLAN conference on programming language design and implementation, PLDI ’13, Seattle, WA, USA, June 16–19, 2013, pp 15–26Google Scholar
  22. 22.
    Solar-Lezama A (2013) Program sketching. Int J Softw Tools Technol Transf 15(5–6):475–495CrossRefGoogle Scholar
  23. 23.
    Solar-Lezama A, Jones CG, Bodik R (2008) Sketching concurrent data structures. In: Proceedings of the 2008 ACM SIGPLAN conference on programming language design and implementation, PLDI ’08, pp 136–148Google Scholar
  24. 24.
    Torlak E, Bodík R (2014) A lightweight symbolic virtual machine for solver-aided host languages. In: ACM SIGPLAN conference on programming language design and implementation, PLDI ’14, Edinburgh, United Kingdom, June 09–11, 2014, p 54Google Scholar
  25. 25.
    Udupa A, Raghavan A, Deshmukh JV, Mador-Haim S, Martin MMK, Alur R (2013) TRANSIT: specifying protocols with concolic snippets. In: ACM SIGPLAN conference on programming language design and implementation, PLDI ’13, Seattle, WA, USA, June 16–19, 2013, pp 287–296Google Scholar
  26. 26.
    Vechev MT, Yahav E (2008) Deriving linearizable fine-grained concurrent objects. In: Proceedings of the ACM SIGPLAN 2008 conference on programming language design and implementation, Tucson, AZ, USA, June 7–13, 2008, pp 125–135Google Scholar
  27. 27.
    Wilcoxon F (1945) Individual comparisons by ranking methods. Biom Bullet 1(6):80–83CrossRefGoogle Scholar
  28. 28.
    Wintersteiger CM, Hamadi Y, de Moura LM (2009) A concurrent portfolio approach to SMT solving. In: Computer aided verification, 21st international conference, CAV 2009, Grenoble, France, June 26–July 2, 2009. Proceedings, pp 715–720Google Scholar
  29. 29.
    Zhang H, Hsiang Bonacina MP, Psato J (1996) A distributed propositional prover and its application to quasigroup problems. J Symb Comput 21(4–6):543–560MathSciNetCrossRefMATHGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2017

Authors and Affiliations

  • Jinseong Jeon
    • 1
  • Xiaokang Qiu
    • 2
  • Armando Solar-Lezama
    • 3
  • Jeffrey S. Foster
    • 1
  1. 1.University of Maryland, College ParkCollege ParkUSA
  2. 2.Purdue UniversityWest LafayetteUSA
  3. 3.Massachusetts Institute of TechnologyCambridgeUSA

Personalised recommendations