Skip to main navigation Skip to search Skip to main content

Deriving divide-and-conquer dynamic programming algorithms using solver-aided transformations

  • Shachar Itzhaky
  • , Rohit Singh
  • , Armando Solar-Lezama
  • , Kuat Yessenov
  • , Yongquan Lu
  • , Charles Leiserson
  • , Rezaul Chowdhury
  • Massachusetts Institute of Technology

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

14 Scopus citations

Abstract

We introduce a framework allowing domain experts to manipulate computational terms in the interest of deriving better, more efficient implementations. It employs deductive reasoning to generate provably correct efficient implementations from a very high-level specification of an algorithm, and inductive constraint-based synthesis to improve automation. Semantic information is encoded into program terms through the use of refinement types. In this paper, we develop the technique in the context of a system called Bellmania that uses solver-aided tactics to derive parallel divide-and-conquer implementations of dynamic programming algorithms that have better locality and are significantly more efficient than traditional loop-based implementations. Bellmania includes a high-level language for specifying dynamic programming algorithms and a calculus that facilitates gradual transformation of these specifications into efficient implementations. These transformations formalize the divide-and-conquer technique; a visualization interface helps users to interactively guide the process, while an SMT-based back-end verifies each step and takes care of low-level reasoning required for parallelism. We have used the system to generate provably correct implementations of several algorithms, including some important algorithms from computational biology, and show that the performance is comparable to that of the best manually optimized code.

Original languageEnglish
Title of host publicationOOPSLA 2016 - Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
EditorsEelco Visser, Yannis Smaragdakis
PublisherAssociation for Computing Machinery
Pages145-164
Number of pages20
ISBN (Electronic)9781450344449
DOIs
StatePublished - Oct 19 2016
Event2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2016 - Amsterdam, Netherlands
Duration: Oct 31 2016Nov 1 2016

Publication series

NameProceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA
Volume02-04-November-2016

Conference

Conference2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2016
Country/TerritoryNetherlands
CityAmsterdam
Period10/31/1611/1/16

Keywords

  • Divide-and-conquer
  • Dynamic programming
  • Program synthesis
  • Refinement types
  • SMT
  • Verification

Fingerprint

Dive into the research topics of 'Deriving divide-and-conquer dynamic programming algorithms using solver-aided transformations'. Together they form a unique fingerprint.

Cite this