Skip to main content
Log in

An empirical study of adaptive concretization for parallel program synthesis

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Notes

  1. Our testing infrastructure, benchmarks, and raw experimental data are open-sourced and explained at: http://plum-umd.github.io/adaptive-concretization/.

  2. \(\text {ite}(a,b,c)\) corresponds to if (a) b else c, as in SMT-LIB.

References

  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–17

  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–316

  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–160

  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–220

  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–291

  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–14

  7. Efron B (1979) Bootstrap methods: another look at the jackknife. Ann Stat 7(1):1–26

    Article  MathSciNet  MATH  Google Scholar 

  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–8

  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–330

  10. Hamadi Y, Jabbour S, Sais L (2009) Manysat: a parallel SAT solver. JSAT 6(4):245–262

    MATH  Google Scholar 

  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–328

  12. Jeon J, Qiu X, Fetter-Degges J, Foster JS, Solar-Lezama A synthesizing framework models for symbolic execution. (Under submission)

  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 Publishing

  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. ACM

  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–60

    Article  MathSciNet  MATH  Google Scholar 

  16. Qiu X, Solar-Lezama A synthesizing data-structure manipulations with natural proofs. (Under submission)

  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–316

  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 9

  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–105

  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–651

  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–26

  22. Solar-Lezama A (2013) Program sketching. Int J Softw Tools Technol Transf 15(5–6):475–495

    Article  Google Scholar 

  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–148

  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 54

  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–296

  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–135

  27. Wilcoxon F (1945) Individual comparisons by ranking methods. Biom Bullet 1(6):80–83

    Article  Google Scholar 

  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–720

  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–560

    Article  MathSciNet  MATH  Google Scholar 

Download references

Acknowledgements

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

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jinseong Jeon.

Additional information

X. Qiu: This work was partially done when the author was at MIT as a postdoc.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Jeon, J., Qiu, X., Solar-Lezama, A. et al. An empirical study of adaptive concretization for parallel program synthesis. Form Methods Syst Des 50, 75–95 (2017). https://doi.org/10.1007/s10703-017-0269-8

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-017-0269-8

Keywords

Navigation