Topics and schedule:


31    Course introduction
        Knights landing
        Bit Twiddling Hacks
        Hackers Delight


5      Autotuning: ATLAS and BLAS generation (Pingali)
        Link to ATLAS
        Is Search Really Necessary to Generate High-Performance BLAS?

7      Capri: Proactive Control of Approximate Programs (Pingali)

Program synthesis from algorithmic specifications

12    FFTW (link to the site):  The Design and Implementation of FFTW3 (Yongkee Kwon)

14    Spiral (link to the site):  SPIRAL: Code Generation for DSP Transforms (Michael He)

19    Prefix-scan on GPUs (Michael He)

21    Tensor contraction engine (link to the site): Synthesis of High-Performance Parallel Programs for a Class of Ab Initio Quantum Chemistry Models (Ian Hendrickson)

26    Stencil compilers: Pochoir The Pochoir Stencil Compiler (Sepideh Maleki)

28    Operator formulation of algorithms: The Tao of Parallelism in Algorithms (Pingali)


3      Elixir:
        Elixir: A System for Synthesizing Concurrent Graph Programs
        Synthesizing Parallel Graph Programs via Automated Planning
        The dissertation: Elixir: Synthesis of Parallel Irregular Algorithms (Ian Hendrickson)

Program synthesis from incomplete programs

5      SAT and SMT solvers: Lecture 3 and 4 from (Esha Chokse)

10    Super-optimizer: Denali
        The first superoptimizer paper: Superoptimizer -- A Look at the Smallest Program
        Preliminary report: Denali: A Goal-directed Superoptimizer   
        Denali-2 superoptimizer: Denali: A Practical Algorithm for Generating Optimal Code (Sepideh Maleki)

12    Sketching for finite programs: Combinatorial Sketching for Finite Programs (Ahmet Celik)

17    Sketching for stencils: Sketching Stencils (Joshua Landgraf)

19    Sketching concurrent data structures: Sketching Concurrent Data Structures (Ahmet Celik)

24    Optimizing synthesis with metasketches: Optimizing Synthesis with Metasketches (Shikhar Singh)

Programming by example

26    Automating string processing in spreadsheets using input-output examples (Pengyu Nie)

31    Spreadsheet table transformations from examples (Pengyu Nie)


2      Flashextract: a framework for data extraction by examples (Shikhar Singh)

7      Synthesizing data structure transformations from input-output examples (Yan Pei)

9      Synthesizing transformations on hierarchically structured data (Yan Pei)

Informal specifications to programs

14    SQLizer: query synthesis from natural language (Joshua Landgraf)

16    Program synthesis using natural language (Yongkee Kwon)


23    Thanksgiving