Cove: A Practical Quantum Computer Programming Framework Summer 2008 Status Matt Purkeypile.

Slides:



Advertisements
Similar presentations
A Quantum Programming Language
Advertisements

Object Oriented Analysis And Design-IT0207 iiI Semester
1 Introduction to Quantum Computation and Quantum Information Dr. Raja Nagarajan University of Warwick.
Modeling and Simulation By Lecturer: Nada Ahmed. Introduction to simulation and Modeling.
Presentation by Prabhjot Singh
4/27/2015Slide 1 Rethinking the design of the Internet: The end to end arguments vs. the brave new world Marjory S. Blumenthal Computer Science and Telecomms.
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
SDLC Group 1 Hang Pham Jared Jelacich Hector Arreola.
Cove: A Practical Quantum Computer Programming Framework Matt Purkeypile Fall 2008.
Understand the football simulation source code. Understand the football simulation source code. Learn all the technical specifications of the system components.
Quantum Error Correction SOURCES: Michele Mosca Daniel Gottesman Richard Spillman Andrew Landahl.
Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Superdense coding. How much classical information in n qubits? Observe that 2 n  1 complex numbers apparently needed to describe an arbitrary n -qubit.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
An Algebraic Foundation for Quantum Programming Languages Andrew Petersen & Mark Oskin Department of Computer Science The University of Washington.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Architectural Components for a Practical Quantum Computer: John Kubiatowicz University of California at Berkeley Cohorts in Crime: Fred Chong (UC Davis),
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Quantum Computing Lecture 1 Michele Mosca. l Course Outline
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Quantum computing Alex Karassev. Quantum Computer Quantum computer uses properties of elementary particle that are predicted by quantum mechanics Usual.
Software Construction. Implementation System Specification Requirements Analysis Architectural Design Detailed Design Coding & Debugging Unit Testing.
Introduction to Information System Development.
Debasis Sadhukhan M.Sc. Physics, IIT Bombay. 1. Basics of Quantum Computation. 2. Quantum Circuits 3. Quantum Fourier Transform and it’s applications.
 2008 Pearson Education, Inc. All rights reserved Introduction to Computers, the Internet and World Wide Web.
Quantum Error Correction Jian-Wei Pan Lecture Note 9.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
Chapter 2 The process Process, Methods, and Tools
IT Systems Analysis & Design
Cove: A Practical Quantum Computer Programming Framework Matt Purkeypile Doctorate of Computer Science Dissertation Defense June 26, 2009.
Quantum Information Jan Guzowski. Universal Quantum Computers are Only Years Away From David’s Deutsch weblog: „For a long time my standard answer to.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
The Classic Amiga Preservation Society (CAPS) Software Preservation Society István Fábián.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
1 hardware of quantum computer 1. quantum registers 2. quantum gates.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
Architectural Components for a Practical Quantum Computer: John Kubiatowicz University of California at Berkeley Berkeley IAB March 19, 2003.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Quantum Computers.
The Other Face Or Why Document? By Chris Bradney Or Why Document? By Chris Bradney.
Quantum Mechanics1 Schrodinger’s Cat. Quantum Mechanics2 A particular quantum state, completely described by enough quantum numbers, is called a state.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Cove: A Practical Quantum Computer Programming Framework Matt Purkeypile (DCS3) Winter 2009.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
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.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
What is a level of test?  Defined by a given Environment  Environment is a collection of people, hard ware, software, interfaces, data etc.
Basic Q.C. One moose, two moose Red moose, blue moose Live moose, dead moose.
IPQI-2010-Anu Venugopalan 1 qubits, quantum registers and gates Anu Venugopalan Guru Gobind Singh Indraprastha Univeristy Delhi _______________________________________________.
Can small quantum systems learn? NATHAN WIEBE & CHRISTOPHER GRANADE, DEC
An Introduction to Quantum Computation Sandy Irani Department of Computer Science University of California, Irvine.
Chapter 2 Principles of Programming and Software Engineering.
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
Procedural programming Procedural programming is where you specify the steps required. You do this by making the program in steps. Procedural programming.
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
Software Design and Development Development Methodoligies Computing Science.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Quantum Computer Programming Framework Design
1. Welcome to Software Construction
LEVEL OF TESTING J.ALFRED DANIEL, AP/CSE.
Introduction to Systems Analysis and Design
Chapter 1 Introduction(1.1)
The Programming Process
Matt Purkeypile January 2008
Presentation transcript:

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 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.

Brief Comparison of Approaches CoveOmerTafliovich Readability and writeability Good- readability is a key goal Fair, there are some obscure abbreviations Poor (how to type on a keyboard?) Classical computation Good, built on a classical language. Poor, a quantum specific language lacking classical features. ExpandabilityGood, as a framework designed to be expanded Fair to poor, is a procedural approach. Poor, has to be formally proven. Integration with existing software Good, designed to integrate with any supported classical language Fair, needs some sort of interface.

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 for cypherpunks.

Questions?