SlideShare a Scribd company logo
Cove: A Practical Quantum
 Computer Programming
       Framework

         Matt Purkeypile
  Doctorate of Computer Science
      Dissertation Defense
          June 26, 2009
Outline
• This presentation will cover the following:
  – A brief introduction to quantum computing.
  – Walking through a simple factoring example.
  – Programming quantum computers.
  – Cove: A new solution for programming
    quantum computers.
  – Questions
Quantum Computing
• Existing computers (classical) operate on bits,
  which can hold the value of 0 or 1.
• Quantum computers operate on qubits, which
  can hold the value of 0, 1, or a combination of
  the two.
  – Utilizes probability amplitudes, which means they can
    reinforce or cancel out.
• What known problems can quantum computers
  do better?
  – Factor numbers, which means RSA can be cracked.
     • A simple example will be shown.
  – Simulate quantum systems.
  – Unsorted searches.
Classical and quantum comparison




• The bit is just the poles of a qubit.
• The probabilistic bit is just a line through the
  poles of a qubit.
Mathematically
• General state of an arbitrary qubit:
                                α 0 
           ψ = α 0 0 + α1 1 =  
                                α 1 
                         2      2
                 α 0 + α1 = 1
• α1 and α2 are complex numbers and represent
  probability amplitudes.
   – Hence the total of 1.
   – cos(θ ) 0 + eiϕ sin(θ ) 1 in polar form, not commonly used.
        2            2
• n qubits are described by 2n complex numbers.
• Operations on n qubits are described by a 2n x
  2n matrix of complex numbers.
Limitations of quantum computers
• There are several limitations of quantum
  computers.
  – Although qubits can hold many possible
    values, only one classical result can be
    obtained from every run.
     • Hence the output is probabilistic.
     • Repeated runs may be necessary to obtain the
       desired result.
  – The computation must be reversible.
  – It is impossible to copy qubits (no-cloning
    theorem)
Practical Example: Factoring
• Shor’s algorithm for factoring (1994) is perhaps
  the most famous practical quantum computing
  example.
  – It is exponentially faster than the classical solution.
  – A quantum computer is utilized for only part of the
    algorithm.
     • This means you still have to do classical computation.
• Factoring means you can break codes such as
  RSA.
  – RSA is frequently utilized.
  – If N=pq, it is easy to calculate N when given p and q,
    but very hard to determine p and q when only given
    N.
     • Also known as a one-way function.
High Level View of Factoring




• Except for step 2, the algorithm is carried out classically.
• A probabilistic algorithm: may have to repeat runs until
  the answer is achieved.
Trivial Example
• Goal: Factor 15.
   ●
       Result is 3 and 5.
   ●
       This has been done on quantum computers in the lab.
   ●
       Can be worked out by hand.
• Step 1, let:
   ●
       N = 15 (the number we are factoring)
   ●
       n = number of (qu)bits needed to express N, in this
       case 4.
   ●
       m = 8 (a randomly selected number between 1 and N)
Step 2
• Calculate: f ( x) = m x mod N
   ●
       Need to calculate with enough x’s to find the period.
   ●   x = 0,1, 2,...
   ●
       In general, go to at least N2 values.
        ●
            It seems like guessing would be faster, but isn’t.
   ●
       For this example we’ll just do 0 – 15.
• Given this we can find the period (P).
   ●
       Essentially where f ( x) repeats.
   ●
       In other words f ( x + P ) = f ( x) for every x.
• Performing all these calculations where we need
  only one answer (P) is how we can exploit a
  quantum computer.
Result
f (0) = 80 mod15 = 1
f (1) = 81 mod15 = 8
f (2) = 82 mod15 = 4
f (3) = 83 mod15 = 2
f (4) = 84 mod15 = 1
f (5) = 85 mod15 = 8
f (6) = 86 mod15 = 4
f (7) = 87 mod15 = 2
f (8) = 88 mod15 = 1
f (9) = 89 mod15 = 8
f (10) = 810 mod15 = 4
f (11) = 811 mod15 = 2
f (12) = 812 mod15 = 1
f (13) = 813 mod 15 = 8
f (14) = 814 mod15 = 4
f (15) = 815 mod15 = 2
Can easily see the period
      graphically
Using the period (P)
• The period is 4
  ●
      It repeats 1, 8, 4, 2,…
  ●
      This concludes step 2
• Step 3: is P even?
  ●
      If not we start over using a different randomly
      selected m, however in this case it is even.
• Step 4: Utilize P:
    8 + 1 = 8 + 1 = 65
     4/2      2


    8 − 1 = 8 − 1 = 63
     4/2       2
Check the result
• gcd(65, 15) = 5 and gcd(63, 15) = 3
    ●
        Can be done efficiently on classical computers [1].
• Step 5: we have found the factors 5 and 3.
    ●
        May only obtain one of the factors.
    ●
        Simple to obtain the second factor if not found.
         ●
             Basic algebra: pq=N, we know N and either p or q.
    ●
        Start over with a different m if the gcd of the results
        are 1.

[1] M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Information, 1
    ed. Cambridge, UK: Cambridge University Press, 2000.
How does a quantum computer
            help?
• A quantum computer speeds things up by doing step 2
  (finding the period) efficiently.
   ●   Qubits are put in a superposition to represent all possible x’s at
       once (in the first register).
   ●   In the case of factoring 15 we need 12 qubits (2(4) + 4, as we
       need two registers) [2]
• Next f ( x) is performed on the qubits in superposition.
   ●   One calculation on a quantum computer, many more classically.
   ●   The result is put in the second register.
• Measure Register 2- collapses the superpositions.
• The period is then obtained via the Quantum Fourier
  Transform (QFT) followed by a measurement.
• The rest of the algorithm is done classically.
  [2]   N. S. Yanofsky and M. A. Mannucci, Quantum Computing for Computer
  Scientists, 1 ed. New York, NY: Cambridge University Press, 2008.
What is really happening after first
          measurement?

                   f(x) for m=8, N=15 after measurement of 4

       5
       4
       3
f(x)




       2
       1

       0
           1   2     3   4   5   6   7    8   9   10   11   12   13   14   15
                                         x
How about QFT and the second
       measurement?
Scaling
• 15 is a trivial example, how about a 128 bit number?
• We need at least 384 qubits (128 * 3) to do the quantum
  part of the algorithm. (scratch qubits not accounted for)
   ●   The quantum operations that are performed are done once, just
       on more qubits.
   ●   Similar to adding two integers: same technique, more bits.
• If we do it classically we have to calculate f(x) many
  times.
   ●   It isn’t how easy it is to calculate f(x), it is how many times.
   ●   Need to go from 0 to N2 , this is a huge number of calculations
       for a 128 bit number! This could be 2(2*128) or ~1.16 x 1077
   ●   The results have to be stored somewhere (taking up memory)
       and then we still have find the period!
   ●   Or we can just use 384 qubits and run through a set of quantum
       operations once per attempt, so the quantum computer scales
       quite well.
• Likewise, Quantum Fourier Transform also finds the
  period in one operation.
What do you need to program
       quantum computer?
• Fundamentally, there are only three things
  needed to perform quantum computation:
  – Initialization of a register (collection of multiple qubits)
    to a classical value.
  – Manipulation of the register via (reversible)
    operations.
  – Measurement, which “collapses” the system to a
    classical result.
• Hence input and outputs are classical values.
• Like programming classical computers, this is
  harder than it sounds.
Programming Quantum
                    Computers?
• Quantum computers hold immense power, but how do
  you program them?
     – The operate fundamentally different from classical computers, so
       classical techniques don’t work.
• With the exception of one technique [3], all existing
  proposals are new languages.
     – New languages may be able to perform quantum computation,
       but lack power for classical computation.
     – Quantum computing is typically only part of the solution, as in
       factoring.
     – Often geared more towards mathematicians and physicists more
       than programmers.

[3] S. Bettelli, "Towards an architecture for quantum programming," in Mathematics. vol.
    Ph.D. Trento, Italy: University of Trento, 2002, p. 115.
Grover’s algorithm in Bettelli’s:
Deutsch’s algorithm in Tafliovich’s:
A new solution: Cove
• Cove is a framework for programming quantum
  computers.
  – This means classical computation is handled by the
    language it is built on (C#)
  – It designed to be extended by users.
  – Key concept: programming against interfaces, not
    implementations.
• The current work includes a simulated quantum
  computer to execute code.
  – All simulations of quantum computers experience an
    exponential slow down.
Why is Cove a new contribution?
• Provides extensibility not present in Bettelli’s
  solution.
   – Like Bettelli, classical computation is handled by the
     existing language.
• Provides an object oriented approach for
  quantum computing.
• Documentation is as important as the
  framework.
   – Available online, within code, intellisense, and a help
     file.
• Attempts to avoid numerous usability flaws that
  are present in all existing proposals to various
  degrees.
Example: Entanglement
• Measurement of one qubit impacts the state of
  another.
  – This doesn’t happen in a classical computer, bits are
    manipulated independently- no impact on other bits.
Example: Implementation of Sum




     (documentation of method excluded)
Reflections
• Unit testing led to a much more solid design and
  implementation.
   – Forced code to be written that utilized Cove.
   – Takes hours to run tests with just a handful of qubits.
• Implementation of the local simulation was much harder
  than anticipated.
   – Many problems with implementation aren’t documented well:
       • Reordering operations.
       • Expanding operations to match register size.
   – Memory and time constraints limit what can be done.
       • Ran into memory constraints early on.
       • Applying an operation to a 20 qubit register requires 220 + (220)2
         =1,099,512,676,352 complex numbers!
       • Makes debugging difficult.
Areas for future work
• Make the prototype implementation more robust
  and complete.
  – Utilize remote resources?
• Investigation into the expanded QRAM model.
  – Essentially how classical and quantum computers
    interact.
• Provide solutions for other algorithms such as
  Grover’s (unsorted search).
• The number of quantum algorithms is small, so
  that is an area for work as well.
Conclusion
• Quantum computers can carry out tasks
  that can never be done on classical
  computers, no matter how fast or powerful
  they become.
• Existing quantum programming
  techniques suffer from numerous flaws.
• Cove is a new method of programming
  quantum computers that tries to avoid
  flaws of existing techniques.
Questions?

       https://cove.purkeypile.com/

(Source code, documentation, dissertation,
         presentations and more)


           Matt Purkeypile
         mpurkeypile@acm.org

More Related Content

PPT
Time andspacecomplexity
PPT
2010 3-24 cryptography stamatiou
PDF
Fractal Dimension of Space-time Diagrams and the Runtime Complexity of Small ...
PDF
Fractal dimension versus Computational Complexity
PPT
Complexity of Algorithm
PDF
Towards a stable definition of Algorithmic Randomness
PPTX
Computational Complexity
PPT
how to calclute time complexity of algortihm
Time andspacecomplexity
2010 3-24 cryptography stamatiou
Fractal Dimension of Space-time Diagrams and the Runtime Complexity of Small ...
Fractal dimension versus Computational Complexity
Complexity of Algorithm
Towards a stable definition of Algorithmic Randomness
Computational Complexity
how to calclute time complexity of algortihm

What's hot (20)

PPT
CS8461 - Design and Analysis of Algorithms
PPT
CS8451 - Design and Analysis of Algorithms
PDF
Digital Signal Processing[ECEG-3171]-Ch1_L03
PDF
Digital Signal Processing[ECEG-3171]-Ch1_L02
PPT
Algorithm And analysis Lecture 03& 04-time complexity.
PPT
CS8451 - Design and Analysis of Algorithms
PDF
Data Structure: Algorithm and analysis
PPT
Introducción al Análisis y diseño de algoritmos
PPT
PDF
Algorithm Analyzing
ODP
Intro to Sorting + Insertion Sort
PDF
Cryptanalysis with a Quantum Computer - An Exposition on Shor's Factoring Alg...
PDF
Algorithm chapter 2
PPTX
Shor’s algorithm the ppt
PPTX
Asymptotic Notation
PDF
Introduction to Algorithms Complexity Analysis
PDF
Graph Spectra through Network Complexity Measures: Information Content of Eig...
PPTX
Np completeness
PPT
Chap10 slides
CS8461 - Design and Analysis of Algorithms
CS8451 - Design and Analysis of Algorithms
Digital Signal Processing[ECEG-3171]-Ch1_L03
Digital Signal Processing[ECEG-3171]-Ch1_L02
Algorithm And analysis Lecture 03& 04-time complexity.
CS8451 - Design and Analysis of Algorithms
Data Structure: Algorithm and analysis
Introducción al Análisis y diseño de algoritmos
Algorithm Analyzing
Intro to Sorting + Insertion Sort
Cryptanalysis with a Quantum Computer - An Exposition on Shor's Factoring Alg...
Algorithm chapter 2
Shor’s algorithm the ppt
Asymptotic Notation
Introduction to Algorithms Complexity Analysis
Graph Spectra through Network Complexity Measures: Information Content of Eig...
Np completeness
Chap10 slides
Ad

Similar to Matt Purkeypile's Doctoral Dissertation Defense Slides (20)

PPTX
Quantum Computing
PDF
Quantum computation a review
PDF
Quantum computing meghaditya
PDF
Computer Science Final Project
PDF
An Introduction to Quantum Programming Languages
PPT
2017 10 17_quantum_program_v2
PPTX
Quantum Computation For AI
PPT
Fundamentals of Quantum Computing
PDF
A basic overview to the Shor's algorithm
PPT
quantum-computing.ppt
PPT
A brief introduction of Quantum-computing
PPTX
Shors'algorithm simplified.pptx
PPT
Paul_presentationMcGuirk_quantumcomputation.ppt
PPTX
Introduction to Quantum Computing
PDF
Quantum Computing 101, Part 1 - Hello Quantum World
PPT
quantum computing (department of computer science WMU).ppt
PDF
HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23
PPT
osama-quantum-computingoftge quantum.ppt
PPT
osama-quantum-computing and its uses and applications
PPT
osama-quantum-computing.ppt
Quantum Computing
Quantum computation a review
Quantum computing meghaditya
Computer Science Final Project
An Introduction to Quantum Programming Languages
2017 10 17_quantum_program_v2
Quantum Computation For AI
Fundamentals of Quantum Computing
A basic overview to the Shor's algorithm
quantum-computing.ppt
A brief introduction of Quantum-computing
Shors'algorithm simplified.pptx
Paul_presentationMcGuirk_quantumcomputation.ppt
Introduction to Quantum Computing
Quantum Computing 101, Part 1 - Hello Quantum World
quantum computing (department of computer science WMU).ppt
HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23
osama-quantum-computingoftge quantum.ppt
osama-quantum-computing and its uses and applications
osama-quantum-computing.ppt
Ad

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Approach and Philosophy of On baking technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPT
Teaching material agriculture food technology
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
cuic standard and advanced reporting.pdf
Encapsulation theory and applications.pdf
Empathic Computing: Creating Shared Understanding
MIND Revenue Release Quarter 2 2025 Press Release
Approach and Philosophy of On baking technology
Reach Out and Touch Someone: Haptics and Empathic Computing
Dropbox Q2 2025 Financial Results & Investor Presentation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Teaching material agriculture food technology
NewMind AI Weekly Chronicles - August'25 Week I
sap open course for s4hana steps from ECC to s4
Spectral efficient network and resource selection model in 5G networks
The Rise and Fall of 3GPP – Time for a Sabbatical?
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Building Integrated photovoltaic BIPV_UPV.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
cuic standard and advanced reporting.pdf

Matt Purkeypile's Doctoral Dissertation Defense Slides

  • 1. Cove: A Practical Quantum Computer Programming Framework Matt Purkeypile Doctorate of Computer Science Dissertation Defense June 26, 2009
  • 2. Outline • This presentation will cover the following: – A brief introduction to quantum computing. – Walking through a simple factoring example. – Programming quantum computers. – Cove: A new solution for programming quantum computers. – Questions
  • 3. Quantum Computing • Existing computers (classical) operate on bits, which can hold the value of 0 or 1. • Quantum computers operate on qubits, which can hold the value of 0, 1, or a combination of the two. – Utilizes probability amplitudes, which means they can reinforce or cancel out. • What known problems can quantum computers do better? – Factor numbers, which means RSA can be cracked. • A simple example will be shown. – Simulate quantum systems. – Unsorted searches.
  • 4. Classical and quantum comparison • The bit is just the poles of a qubit. • The probabilistic bit is just a line through the poles of a qubit.
  • 5. Mathematically • General state of an arbitrary qubit: α 0  ψ = α 0 0 + α1 1 =   α 1  2 2 α 0 + α1 = 1 • α1 and α2 are complex numbers and represent probability amplitudes. – Hence the total of 1. – cos(θ ) 0 + eiϕ sin(θ ) 1 in polar form, not commonly used. 2 2 • n qubits are described by 2n complex numbers. • Operations on n qubits are described by a 2n x 2n matrix of complex numbers.
  • 6. Limitations of quantum computers • There are several limitations of quantum computers. – Although qubits can hold many possible values, only one classical result can be obtained from every run. • Hence the output is probabilistic. • Repeated runs may be necessary to obtain the desired result. – The computation must be reversible. – It is impossible to copy qubits (no-cloning theorem)
  • 7. Practical Example: Factoring • Shor’s algorithm for factoring (1994) is perhaps the most famous practical quantum computing example. – It is exponentially faster than the classical solution. – A quantum computer is utilized for only part of the algorithm. • This means you still have to do classical computation. • Factoring means you can break codes such as RSA. – RSA is frequently utilized. – If N=pq, it is easy to calculate N when given p and q, but very hard to determine p and q when only given N. • Also known as a one-way function.
  • 8. High Level View of Factoring • Except for step 2, the algorithm is carried out classically. • A probabilistic algorithm: may have to repeat runs until the answer is achieved.
  • 9. Trivial Example • Goal: Factor 15. ● Result is 3 and 5. ● This has been done on quantum computers in the lab. ● Can be worked out by hand. • Step 1, let: ● N = 15 (the number we are factoring) ● n = number of (qu)bits needed to express N, in this case 4. ● m = 8 (a randomly selected number between 1 and N)
  • 10. Step 2 • Calculate: f ( x) = m x mod N ● Need to calculate with enough x’s to find the period. ● x = 0,1, 2,... ● In general, go to at least N2 values. ● It seems like guessing would be faster, but isn’t. ● For this example we’ll just do 0 – 15. • Given this we can find the period (P). ● Essentially where f ( x) repeats. ● In other words f ( x + P ) = f ( x) for every x. • Performing all these calculations where we need only one answer (P) is how we can exploit a quantum computer.
  • 11. Result f (0) = 80 mod15 = 1 f (1) = 81 mod15 = 8 f (2) = 82 mod15 = 4 f (3) = 83 mod15 = 2 f (4) = 84 mod15 = 1 f (5) = 85 mod15 = 8 f (6) = 86 mod15 = 4 f (7) = 87 mod15 = 2 f (8) = 88 mod15 = 1 f (9) = 89 mod15 = 8 f (10) = 810 mod15 = 4 f (11) = 811 mod15 = 2 f (12) = 812 mod15 = 1 f (13) = 813 mod 15 = 8 f (14) = 814 mod15 = 4 f (15) = 815 mod15 = 2
  • 12. Can easily see the period graphically
  • 13. Using the period (P) • The period is 4 ● It repeats 1, 8, 4, 2,… ● This concludes step 2 • Step 3: is P even? ● If not we start over using a different randomly selected m, however in this case it is even. • Step 4: Utilize P: 8 + 1 = 8 + 1 = 65 4/2 2 8 − 1 = 8 − 1 = 63 4/2 2
  • 14. Check the result • gcd(65, 15) = 5 and gcd(63, 15) = 3 ● Can be done efficiently on classical computers [1]. • Step 5: we have found the factors 5 and 3. ● May only obtain one of the factors. ● Simple to obtain the second factor if not found. ● Basic algebra: pq=N, we know N and either p or q. ● Start over with a different m if the gcd of the results are 1. [1] M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Information, 1 ed. Cambridge, UK: Cambridge University Press, 2000.
  • 15. How does a quantum computer help? • A quantum computer speeds things up by doing step 2 (finding the period) efficiently. ● Qubits are put in a superposition to represent all possible x’s at once (in the first register). ● In the case of factoring 15 we need 12 qubits (2(4) + 4, as we need two registers) [2] • Next f ( x) is performed on the qubits in superposition. ● One calculation on a quantum computer, many more classically. ● The result is put in the second register. • Measure Register 2- collapses the superpositions. • The period is then obtained via the Quantum Fourier Transform (QFT) followed by a measurement. • The rest of the algorithm is done classically. [2] N. S. Yanofsky and M. A. Mannucci, Quantum Computing for Computer Scientists, 1 ed. New York, NY: Cambridge University Press, 2008.
  • 16. What is really happening after first measurement? f(x) for m=8, N=15 after measurement of 4 5 4 3 f(x) 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 x
  • 17. How about QFT and the second measurement?
  • 18. Scaling • 15 is a trivial example, how about a 128 bit number? • We need at least 384 qubits (128 * 3) to do the quantum part of the algorithm. (scratch qubits not accounted for) ● The quantum operations that are performed are done once, just on more qubits. ● Similar to adding two integers: same technique, more bits. • If we do it classically we have to calculate f(x) many times. ● It isn’t how easy it is to calculate f(x), it is how many times. ● Need to go from 0 to N2 , this is a huge number of calculations for a 128 bit number! This could be 2(2*128) or ~1.16 x 1077 ● The results have to be stored somewhere (taking up memory) and then we still have find the period! ● Or we can just use 384 qubits and run through a set of quantum operations once per attempt, so the quantum computer scales quite well. • Likewise, Quantum Fourier Transform also finds the period in one operation.
  • 19. What do you need to program quantum computer? • Fundamentally, there are only three things needed to perform quantum computation: – Initialization of a register (collection of multiple qubits) to a classical value. – Manipulation of the register via (reversible) operations. – Measurement, which “collapses” the system to a classical result. • Hence input and outputs are classical values. • Like programming classical computers, this is harder than it sounds.
  • 20. Programming Quantum Computers? • Quantum computers hold immense power, but how do you program them? – The operate fundamentally different from classical computers, so classical techniques don’t work. • With the exception of one technique [3], all existing proposals are new languages. – New languages may be able to perform quantum computation, but lack power for classical computation. – Quantum computing is typically only part of the solution, as in factoring. – Often geared more towards mathematicians and physicists more than programmers. [3] S. Bettelli, "Towards an architecture for quantum programming," in Mathematics. vol. Ph.D. Trento, Italy: University of Trento, 2002, p. 115.
  • 21. Grover’s algorithm in Bettelli’s:
  • 22. Deutsch’s algorithm in Tafliovich’s:
  • 23. A new solution: Cove • Cove is a framework for programming quantum computers. – This means classical computation is handled by the language it is built on (C#) – It designed to be extended by users. – Key concept: programming against interfaces, not implementations. • The current work includes a simulated quantum computer to execute code. – All simulations of quantum computers experience an exponential slow down.
  • 24. Why is Cove a new contribution? • Provides extensibility not present in Bettelli’s solution. – Like Bettelli, classical computation is handled by the existing language. • Provides an object oriented approach for quantum computing. • Documentation is as important as the framework. – Available online, within code, intellisense, and a help file. • Attempts to avoid numerous usability flaws that are present in all existing proposals to various degrees.
  • 25. Example: Entanglement • Measurement of one qubit impacts the state of another. – This doesn’t happen in a classical computer, bits are manipulated independently- no impact on other bits.
  • 26. Example: Implementation of Sum (documentation of method excluded)
  • 27. Reflections • Unit testing led to a much more solid design and implementation. – Forced code to be written that utilized Cove. – Takes hours to run tests with just a handful of qubits. • Implementation of the local simulation was much harder than anticipated. – Many problems with implementation aren’t documented well: • Reordering operations. • Expanding operations to match register size. – Memory and time constraints limit what can be done. • Ran into memory constraints early on. • Applying an operation to a 20 qubit register requires 220 + (220)2 =1,099,512,676,352 complex numbers! • Makes debugging difficult.
  • 28. Areas for future work • Make the prototype implementation more robust and complete. – Utilize remote resources? • Investigation into the expanded QRAM model. – Essentially how classical and quantum computers interact. • Provide solutions for other algorithms such as Grover’s (unsorted search). • The number of quantum algorithms is small, so that is an area for work as well.
  • 29. Conclusion • Quantum computers can carry out tasks that can never be done on classical computers, no matter how fast or powerful they become. • Existing quantum programming techniques suffer from numerous flaws. • Cove is a new method of programming quantum computers that tries to avoid flaws of existing techniques.
  • 30. Questions? https://cove.purkeypile.com/ (Source code, documentation, dissertation, presentations and more) Matt Purkeypile mpurkeypile@acm.org