Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken...

Preview:

Citation preview

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

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

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

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

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

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

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

Recommended