Quipper : A Scalable Quantum Programming Language

Slides:



Advertisements
Similar presentations
The Assembly Language Level
Advertisements

Quantum Phase Estimation using Multivalued Logic.
Quantum Speedups DoRon Motter August 14, Introduction Two main approaches are known which produce fast Quantum Algorithms The first, and main approach.
This set of slides is provided by the author of the textbook1 Introductory Topics l Computer Programming l Programming Life-Cycle Phases l Creating an.
An Algebraic Foundation for Quantum Programming Languages Andrew Petersen & Mark Oskin Department of Computer Science The University of Washington.
Anuj Dawar.
CS294-6 Reconfigurable Computing Day 3 September 1, 1998 Requirements for Computing Devices.
FIGURE 1-1 A Computer System
The Quantum 7 Dwarves Alexandra Kolla Gatis Midrijanis UCB CS
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
By: Mike Neumiller & Brian Yarbrough
Programming 1 1. Introduction to object oriented programming and problem-solving.
Cove: A Practical Quantum Computer Programming Framework Matt Purkeypile Doctorate of Computer Science Dissertation Defense June 26, 2009.
Introduction to Java August 14, 2008 Mrs. C. Furman.
Programming With C.
Quantum Programming Languages for Specification and Optimization Fred Chong UC Santa Barbara Ken Brown, Ravi Chugh, Margaret Martonosi, John Reppy and.
Description and Analysis of MULTIPLIERS using LAVA.
INTRODUCTION TO COMPUTING CHAPTER NO. 04. Programming Languages Program Algorithms and Pseudo Code Properties and Advantages of Algorithms Flowchart (Symbols.
Quantum Computer Simulation Alex Bush Matt Cole James Hancox Richard Inskip Jan Zaucha.
Introduction to Computer Application (IC) MH Room 517 Time : 7:00-9:30pm.
CS 232: Computer Architecture II Prof. Laxmikant (Sanjay) Kale.
Quantum Programming Languages By Steve Franchak. What are QPL’s? A set of programming languages that use high- level constructs to express quantum algorithms.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
Review A program is… a set of instructions that tell a computer what to do. Programs can also be called… software. Hardware refers to… the physical components.
Quantum Computer Simulation Alex Bush Matt Cole James Hancox Richard Inskip Jan Zaucha.
Quantum Shift Register Circuits Mark M. Wilde arXiv: National Institute of Standards and Technology, Wednesday, June 10, 2009 To appear in Physical.
Adding Concurrency to a Programming Language Peter A. Buhr and Glen Ditchfield USENIX C++ Technical Conference, Portland, Oregon, U. S. A., August 1992.
Programming Language Basics. What is a Programming Language? “A computer, human-created language used to write instructions for a computer.” “An artificial.
Invitation to Computer Science 6th Edition
Functional Programming
Why don’t programmers have to program in machine code?
Advanced Computer Systems
Basic Computer Organization and Design
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
Assembly Language for x86 Processors 6th Edition
Programming Languages
High and low level languages
Chapter 1 Introduction.
CSCI-235 Micro-Computer Applications
Quantum Computer Programming Framework Design
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
ECE 551: Digital System Design & Synthesis
Chapter 1 Introduction.
Seoul National University
课程名 编译原理 Compiling Techniques
Compiler Lecture 1 CS510.
Presented by: Jered Aasheim Tom Cornelius October 27, 2000
Teaching Computing to GCSE
Teaching Computing to GCSE
INFS 6225 – Object-Oriented Systems Analysis & Design
CSCI1600: Embedded and Real Time Software
Scenario-based Regression Testing (SRT)
Virtualization Techniques
Chap 4 Quantum Circuits: p
OSU Quantum Information Seminar
Programming Language Basics
MARIE: An Introduction to a Simple Computer
Bayesian Deep Learning on a Quantum Computer
Improving Quantum Circuit Dependability
  Introduction  What the generic.  What are the Generic types : - Class - Methods   Type of coding the generic method. - Using the generic method.
Description and Analysis of MULTIPLIERS using LAVA
QWIRE: A Core Language for Quantum Circuits
The Nature of Computing
Agenda Software development (SD) & Software development methodologies (SDM) Orthogonal views of the software OOSD Methodology Why an Object Orientation?
Lecture One: Automata Theory Amjad Ali
COMP3221: Microprocessors and Embedded Systems
 Is a machine that is able to take information (input), do some work on (process), and to make new information (output) COMPUTER.
CSCI1600: Embedded and Real Time Software
Function of Operating Systems
Presentation transcript:

Quipper : A Scalable Quantum Programming Language Authors: Alexander S. Green, Peter LeFanu Lumsdaine, Neil J. Ross, Peter Selinger, Benoît Valiron Slides By: Brody Eastwood

Motivation (as of June 2013) Algorithms understood Hardware not understood Software difficult to write Often hardware-specific and very low level Quantum Turing machine Quantum lambda calculus (van Tonder/Selinger and Valrion) QCL IO Monad

Knill’s QRAM Model Quantum computer is a co-processor with two types of instructions Unitary (responds with an ACK) Measure (responds with measurement) Checks for physical impossibility at either compile or run time Use gates one-by-one

Techniques used in quantum algorithms

Algorithm Description All algorithms made of gates Useful algorithms nearly impossible to describe as gates Need way of programming at a higher level

Quantum Primitives QFT Amplitude Amplification (Grover’s) Quantum Walks Phase Estimation State Distillation Oracles Circuits Useful to be able to use directly

Quipper

Quipper is an embedded language Haskell is host language Can be considered a library with a preferred style of writing programs Uses many features of Haskell Higher-order operators Overloaded operators

Extended Circuit Model Scoped Ancillas Simplifies reuse of ancillas Assertive termination Can be false, compiler assumes it isn’t Mixed classical/quantum circuits Useful for oracles

Parameters and Inputs Many algorithms cycle between circuit generation and circuit runs Parameters known at circuit generation Inputs only known during circuit run Quipper types: Bool (parameter) Bit (input) Qbit (input)

Actual Programming Procedurally Block structure One-at-a-time but ends up compiled together Block structure Like procedurally, but grouped together Efficiently stored

Actual Programming Cont. Circuit operators Many stock operations (like decompose_generic) available Extensible quantum data types The general type can hold multiple bits

Oracles Automatic generation of quantum oracles Write classical template under “build_circuit” Unpack the template into classical_to_reversible Quantum oracle gets generated

Algorithms

Triangle Finding Seven algorithms were made in Quipper Only Triangle Finding was discussed in this paper (and only partially) Triangle finding Used 30189977982990 (over 30 trillion) total gates. Used 4676 qubits.

The circuits for o8_MUL and o4_POW17

Binary Welded Tree BWT isn’t discussed in the paper Quipper measured twice: Orthodox: Hand-coded oracle Template: Autogenerated oracle It is compared to QCL Has no autogeneration of oracles Quipper more efficient in gates Only more efficient in Qubits when oracle coded by hand

Conclusion

Contribution Quipper itself Quipper used to program 7 algorithms First easily scalabe quantum programming language Opens door for using formal methods of analyze quantum algorithms Quipper used to program 7 algorithms 11 People 55 man months Usable to estimate resource utilization Considered both usable and useful

Discussion Open problems Reality ended up moving away from Quipper No linear type system Can’t check for non-duplication of quantum data Not supported by any hardware Reality ended up moving away from Quipper Quiskit

Questions?