8

Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken Brown, Ravi Chugh, Margaret Martonosi, John Reppy and

Embed Size (px)

Citation preview

Page 1: Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken Brown, Ravi Chugh, Margaret Martonosi, John Reppy and
Page 2: Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken Brown, Ravi Chugh, Margaret Martonosi, John Reppy and

Quantum Programming Languages for Specification and Optimization

Quantum Programming Languages for Specification and Optimization

Fred Chong

UC Santa Barbara

Ken Brown, Ravi Chugh, Margaret Martonosi,

John Reppy and Wim van Dam

GaTech, Princeton, U Chicago, UCSB

Fred Chong

UC Santa Barbara

Ken Brown, Ravi Chugh, Margaret Martonosi,

John Reppy and Wim van Dam

GaTech, Princeton, U Chicago, UCSB

Page 3: Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken Brown, Ravi Chugh, Margaret Martonosi, John Reppy and

IARPA AlgorithmsIARPA Algorithms

3

Algorithm Lines of Code

Boolean Formula 479

Linear Systems 1741

Binary Welded Tree 608

Class Number 226

Triangle Finding 1231

Shortest Vector Problem 539

Ground State Estimation 554

Started with algorithms specified in English prose, some pseudocode

Page 4: Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken Brown, Ravi Chugh, Margaret Martonosi, John Reppy and

Correctness?Correctness?

• Need a specification language for algorithms

• Check implementation against the specification Simulation for small problem sizes (~30 qubits) Type systems Model checking Symbolic execution Certified compilation passes

• General quantum properties No-cloning, entanglement, uncomputation

• Programmer assertions

4

Page 5: Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken Brown, Ravi Chugh, Margaret Martonosi, John Reppy and

Programmer Assertion ExampleProgrammer Assertion Example

b_eig_U = Eigenvalue(b,U)

CascadeU(a,b,U)

if not(b_eig_U)

assert(Entangled(a,b))

5

Page 6: Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken Brown, Ravi Chugh, Margaret Martonosi, John Reppy and

Success Probabilities / Error BoundsSuccess Probabilities / Error Boundsmeasure(a)

assert(precision(a, 8)) /*precision of a is at least 10-8 */

assert(error(a, 0.5)) /*probability of error in a < 0.5 */

• Quantum operations are approximate (eg rotations) Need to track achieved precision

• Quantum programs often involve multiple trials Assume error probability is low enough for success in small

number of trials

• Type system that tracks probabilities Static analysis when possible Symbolic execution when necessary

6

Page 7: Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken Brown, Ravi Chugh, Margaret Martonosi, John Reppy and

Scalable CompilationScalable Compilation

• Need deep optimization given known inputs Constant propagation Function cloning Loop unrolling

• Need to optimize parallelism and communication Constraints such as SIMD control

• Need to optimize success probabilities and error correction

7

Page 8: Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken Brown, Ravi Chugh, Margaret Martonosi, John Reppy and

Language Design IdeasLanguage Design Ideas

• Embedded, high-level front-end language

• Lower-level backend language with industrial-strength, scalable analysis tools

• Type system for verifying quantum properties and calculating success probabilities / errors

• Longer term: Verification or direct code generation using Unitary Transforms

ORAQL/NQCS 8