Cove: A Practical Quantum Computer Programming Framework Matt Purkeypile (DCS3) Winter 2009.

Slides:



Advertisements
Similar presentations
A Quantum Programming Language
Advertisements

New Evidence That Quantum Mechanics Is Hard to Simulate on Classical Computers Scott Aaronson Parts based on joint work with Alex Arkhipov.
Transformations We want to be able to make changes to the image larger/smaller rotate move This can be efficiently achieved through mathematical operations.
Quantum Computers Gates, circuits and programming.
Data encryption with big prime numbers
Cove: A Practical Quantum Computer Programming Framework Matt Purkeypile Fall 2008.
Quantum Packet Switching A. Yavuz Oruç Department of Electrical and Computer Engineering University of Maryland, College Park.
The Hidden Subgroup Problem. Problem of great importance in Quantum Computation Most Q.A. that run exponentially faster than their classical counterparts.
Section 2.3 Gauss-Jordan Method for General Systems of Equations
March 11, 2015CS21 Lecture 271 CS21 Decidability and Tractability Lecture 27 March 11, 2015.
Introduction to Cryptography and Security Mechanisms: Unit 5 Theoretical v Practical Security Dr Keith Martin McCrea
1 Quantum Computing: What’s It Good For? Scott Aaronson Computer Science Department, UC Berkeley January 10,  John.
Quantum Computation and Error Correction Ali Soleimani.
Shor Algorithm Anuj Dawar. Finding the eigenvalue is the same as finding its phase 
1 New Architectures Need New Languages A triumph of optimism over experience! Ian Watson 3 rd July 2009.
Quantum Computing Joseph Stelmach.
Anuj Dawar.
Memory Hierarchies for Quantum Data Dean Copsey, Mark Oskin, Frederic T. Chong, Isaac Chaung and Khaled Abdel-Ghaffar Presented by Greg Gerou.
Shor’s Algorithm Osama Awwad Department of Computer Science Western Michigan University July 12, 2015.
Quantum computing Alex Karassev. Quantum Computer Quantum computer uses properties of elementary particle that are predicted by quantum mechanics Usual.
By: Mike Neumiller & Brian Yarbrough
Tallinn University of Technology Quantum computer impact on public key cryptography Roman Stepanenko.
Quantum Algorithms for Neural Networks Daniel Shumow.
Quantum Computers Algorithms and applications. Simulating classical operations 2/41 Dušan Gajević.
Quantum Computing David Dvorak CIS 492. Quantum Computing Overview What is it? How does it work? –The basics –Clarifying with examples Factoring Quantum.
Quantum Computing Presented by: Don Davis PHYS
Cove: A Practical Quantum Computer Programming Framework Matt Purkeypile Doctorate of Computer Science Dissertation Defense June 26, 2009.
CHAPTER 09 Compiled by: Dr. Mohammad Omar Alhawarat Sorting & Searching.
Lecture note 8: Quantum Algorithms
October 1 & 3, Introduction to Quantum Computing Lecture 1 of 2 Introduction to Quantum Computing Lecture 1 of 2
Generic Approaches to Model Validation Presented at Growth Model User’s Group August 10, 2005 David K. Walters.
An Introduction to Quantum Phenomena and their Effect on Computing Peter Shoemaker MSCS Candidate March 7 th, 2003.
Short course on quantum computing Andris Ambainis University of Latvia.
Quantum Computer Simulation Alex Bush Matt Cole James Hancox Richard Inskip Jan Zaucha.
1 Database Searching in Quantum and Natural Computing Michael Heather & Nick Rossiter, Northumbria University, England
Computer Organization and Assembly Language Bitwise Operators.
Quantum Processing Simulation
Nawaf M Albadia
Cove: A Practical Quantum Computer Programming Framework Summer 2008 Status Matt Purkeypile.
1/22 Quantum Algorithms Deutsch-Josza Algorithm: quantum computers are more powerful than classical ones. b f(b) b f(b) b f(b) 0 1 b f(b) 0.
Quantum Computing Michael Larson. The Quantum Computer Quantum computers, like all computers, are machines that perform calculations upon data. Quantum.
A SEMINAR ON Q UANTUM C OMPUTING Institute Of Engineering & Management (CSE 3 rd year batch) Submitted to- Submitted by- Mr. D.P.S. Rathor Sudhir.
Multipartite Entanglement and its Role in Quantum Algorithms Special Seminar: Ph.D. Lecture by Yishai Shimoni.
Data encryption with big prime numbers DANIEL FREEMAN, SLU.
Final Project for Phys 642: An Introduction to Quantum Information and Quantum Computing Fall 2013 Implementing a Computer Simulation of Shor’s Quantum.
1 Introduction to Quantum Information Processing CS 467 / CS 667 Phys 667 / Phys 767 C&O 481 / C&O 681 Richard Cleve DC 2117 Lecture.
Procedural programming Procedural programming is where you specify the steps required. You do this by making the program in steps. Procedural programming.
CPIT Program Execution. Today, general-purpose computers use a set of instructions called a program to process data. A computer executes the.
1 An Introduction to Quantum Computing Sabeen Faridi Ph 70 October 23, 2007.
Beginner’s Guide to Quantum Computing Graduate Seminar Presentation Oct. 5, 2007.
Richard Cleve DC 3524 Introduction to Quantum Information Processing CS 467 / CS 667 Phys 667 / Phys 767 C&O 481 / C&O 681 Lecture.
Prabhas Chongstitvatana Chulalongkorn University
Quantum Computer Programming Framework Design
Introduction to Quantum Computing Lecture 1 of 2
Quantum Computers Superposition Interference Entanglement and Quantum Error Correction Lesson 1 By: Professor Lili Saghafi
Computer Science Life Cycle Models.
A Ridiculously Brief Overview
Quantum Computing: an introduction
UNIT 3 CHAPTER 1 LESSON 4 Using Simple Commands.
Chap 4 Quantum Circuits: p
Qubit Recycling in Quantum Computation
OSU Quantum Information Seminar
Quantum Computation and Information Chap 1 Intro and Overview: p 28-58
Improving Quantum Circuit Dependability
Quantum Computing Joseph Stelmach.
Matt Purkeypile January 2008
Presentation transcript:

Cove: A Practical Quantum Computer Programming Framework Matt Purkeypile (DCS3) Winter 2009

Quantum Computing Quantum computers operate on qubits (quantum bits), which can be 0, 1, or a combination of the two (superposition). –Changes to one qubit may impact another through entanglement. –n qubits can represent 2 n numbers at once. Existing (classical) computers keep getting faster, but still operate on bits. –Simulating a quantum computer leads to an exponential slow down. –Requires 2 n complex numbers to simulate n qubits, 2 n x 2 n complex matrix for an operation. With quantum computers several things can be done efficiently: simulation of quantum systems, factoring, and unsorted database search to name a few.

What is Cove? Cove is a software framework that allows for quantum computation to be performed using a classical language. Two key components: interfaces and implementations. –Interfaces specify what needs to be provided to program quantum computers. –Implementations specify how. –If users code to interfaces, implementations can be swapped out with ideally no change to user code. –A prototype implementation is part of the project. This simulates a quantum computer locally on a PC. Implemented in C#

Cove Example: Entanglement

What did I do last term? Completed more work in the local simulation implementation. –Got it to the point where it can carry out simple examples such as entanglement. –Also able to carry out many operations without “slicing”. Completed a major revision and restructuring of the dissertation. –While still lengthy, I’m much more comfortable with the structure now.

Factoring Shor’s algorithm (1994) allows for efficient factoring on a quantum computer. –Spurred more interest in quantum computing as it was the first “real world” algorithm. –Quantum computers first thought of in the early 1980’s. Efficient factoring allows for cracking codes. –Such as the commonly used RSA algorithm. –Why? N=pq is easy to calculate when given pq, but hard if only given N. (Sometimes see the term “one way functions”.)

High Level View of Factoring Most of steps of the algorithm can be 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. –A simple example that can easily 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 –Need to calculate with enough x’s to find the period. x = 0, 1, 2, …. –In general, go to at least n 2 values: 0 – 15 in this case. (It seems like guessing would be faster, but isn’t.) Given this we can find the period (P). –Essentially where f(x) repeats. –In other words f(x + P) = f(x) for every x. This is the part of the algorithm where a quantum computer is used and makes it efficient.

Result

Graphically this is easier to see…

Using the result The period is 4, as it repeats 1, 8, 4, 2,… –This concludes step 2 Step 3: is the period even? –If not we start over using a different randomly selected m. Step 4: Utilize the period (P):

Check the result gcd(65, 15) = 5 and gcd(63, 15) = 3 –This is 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 for many numbers. –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.

Why a quantum computer? 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 Register2- Collapses the superpositions. The period is then obtained via the quantum Fourier transform 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?

How about QFT and the second measurement?

How does this scale? 15 is a trivial example, how about a 128 bit number? We need 384 qubits (128 * 3) to do the quantum part of the algorithm. –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 n 2, this is a huge number of calculations for a 128 bit number. This means 2 (2*128) or ~1.16 x –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, so the quantum computer scales quite well. Quantum Fourier Transform also finds the period in one operation.

Goals for Winter 2009 Get Shor’s algorithm (factoring) working in Cove. –Requires additional work on the local simulation prototype. Fill in the sections for Shor’s algorithm in the dissertation. Incorporate feedback from the Fall 2008 draft. –Includes making the message more consistent. Ideally, all of the major content in the dissertation by the end of the term. –This leaves a few months for editing and cleanup. –Won’t be perfect, but the “meat” will be there. –Goal: Defend in late June 2009.

Questions? (Courtesy of XKCD)