Synthesizing a synthesis tool
Author(s)
Singh, Rohit, Ph. D. Massachusetts Institute of Technology.
DownloadFull printable version (2.585Mb)
Other Contributors
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.
Advisor
Armando Solar-Lezama.
Terms of use
Metadata
Show full item recordAbstract
SMT/SAT solvers are used by many tools for program verification and analysis. Most of these tools have an optimization layer which applies transformations (or "rewrite rules") to simplify the internal representation of the problem. These hard coded rules can drastically affect the performance of the solver. They are usually hand-picked by experts and verified using trial and error. These rules are very domain-specific as well (the domain from which the tool receives its inputs) and leverage the recurring patterns in the domain. The goal of this thesis is to automatically synthesize this optimization layer by learning an optimal set of rules from a corpus of problems taken from a given domain. To achieve this goal, we will use two key technologies: Machine Learning and Program Synthesis (Sketch tool). Sketch is a state of the art tool for generating programs automatically from high level specifications. We propose a Machine Learning and Sketch based method to automatically generate "statistically significant" optimization rules (rules that can be applied at significant number of places in benchmarks from a particular domain) and then generate efficient code to apply the rules for that particular domain. In addition to using Sketch as a tool, we will also use it as a target for this technology. Sketch uses SAT/SMT solver in its back-end, and, like any other tool it has its own hand-built optimization layer. In particular, Sketch uses a set of pre- determined optimization rules to modify the internal representation of the formula in a way that results in faster SAT/SMT solving. Sketch is being used for synthesizing programs in various domains like Storyboard Programming[21], SQL queries for databases[5], MPI based Parallel Programming, Autograder for MOOCs[20]; The current optimizer has to work well for each one of these domains and one of our goals is to have a domain specific optimizer that can take advantage of specific features of each domain. Hence, Sketch is an ideal use-case for our analysis and all our experiments are conducted on the Sketch tool for various domains.
Description
Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2013. This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. Cataloged from student-submitted PDF version of thesis. Includes bibliographical references (pages 85-87).
Date issued
2013Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer SciencePublisher
Massachusetts Institute of Technology
Keywords
Electrical Engineering and Computer Science.