Cove: A Practical Quantum Computer Programming Framework Summer 2008 Status Matt Purkeypile
Brief Introduction to Quantum Information • The quantum unit of information is the quantum bit, or qubit. • Unlike a classical bit, a qubit can be 1 and 0 at the same time. This is known as superposition. • Measurement “collapses” a qubit in superposition to 1 or 0 based on probabilities. • A collection of qubits is called a quantum register. • Existing computers are called classical. • Quantum computers were first thought of in the 1980s. • While quantum computers exist in the lab, there are no commercial ones yet- best guess is around 2021 +- 5 years.
Comparison of Classical and Quantum Information Based on P. Kaye, R. Laflamme, and M. Mosca, An Introduction to Quantum Computing. New York City, New York: Oxford University Press, 2007.
What Can Quantum Computers Do That Classical Ones Cannot? • Solve certain types of problems faster than classical computers • Factoring, exponential improvement. • Means encryption systems such as ones used to protect Internet communication can be broken. • Unsorted search, quadratic improvement. • Perhaps not surprisingly, simulation of quantum systems. • Classical computers experience an exponential slow down when simulating quantum systems and quantum computers. (Exponential improvement)
Limitations of quantum computers • No-cloning: arbitrary qubits cannot be copied. • Teleportation transfers the state of one qubit to another, but the source is destroyed in the process- so no-cloning is not violated. • Probabilistic output. • No observation during computation. • Computation must be reversible. • It has been shown any computation can be made reversible.
Existing programming techniques • A majority of the existing programming techniques face significant hurdles to use in mainstream commercial software development. This includes (but is not limited to): • Not scalable. • Unfamiliar techniques such as functional programming. • General lack of readability.
Tafliovich’s approach • Typical of many of the nonprocedural or non-object oriented approaches.
Omer’s QCL • Procedural approach based on C, hard to extend. • One of the most complete programming proposals. • One of the closest works to Cove.
What is Cove? • A framework for programming quantum computers that focuses on ease of use for commercial programmers. • As a framework it is expandable and flexible. • Key idea: “programming to interfaces”. • Built on existing classical languages, so the focus of Cove is on quantum computation and not providing classical features. • Try to shield the user from lower level issues such as error correction.
Cove Example • Operators applied to registers, not vice versa as in other techniques. • Expandable • Base library specifies what must be provided, implementations specify how. • Implementations can be swapped out. • Utilizes an “Expanded QRAM” model which is a refinement on the QRAM model, which takes into account that the quantum resource may be remote.
Current Status • Proposal accepted in February. • Key Cove components: • Base library: initial version complete • Classical utilities: current area of focus • Much of the work is linear algebra. • Local simulation: little work done, this will allow working code to be written. • Will expand to use big floats for more accurate simulations. • Documentation: created in the code as it is developed. • Unit tests to help show correctness and reduce bugs. • Can also be used to help verify implementations are interchangeable. • Refinement is anticipated.
Taking a “Science 2.0” Approach • All documents, source code, tickets (to do’s), help, and so on will be available on the web. • Access to certain items restricted until closer to completion. • Detailing thoughts, progress, and stumbling blocks through a blog. • Will also be useful in detailing the design rationale in the dissertation. • Site is at: https://cove.purkeypile.com • https for cypherpunks.