Simulating Quantum Computers Using Opencl

Total Page:16

File Type:pdf, Size:1020Kb

Simulating Quantum Computers Using Opencl Simulating Quantum Computers Using OpenCL Adam Kelly November 9, 2018 Quantum computing is an emerging technol- matrices. ogy, promising a paradigm shift in computing, In this work, a simulator using OpenCL is de- and allowing for speed ups in many different scribed, a technology introduced in section 1.2. problems. However, quantum devices are still in their early stages, most with only a small 1.1 Existing Research number qubits. This places a reliance on sim- ulation to develop quantum algorithms and to The idea of using classical computers to simulate verify these devices. While there exists many quantum computers and quantum mechanics is noth- algorithms for the simulation of quantum cir- ing new. There exists a variety of software libraries cuits, there is (at the time of writing) no tools that can be used to so, each with different purposes. which use OpenCL to parallelize this simula- Some libraries such as QuTIP[16] are aimed at solv- tion, thereby taking advantage of devices such ing a wide variety of quantum mechanical problems, as GPUs while still remaining portable. whereas others are more specialized such as Quipper In this paper, such a tool is described, in- [14] for controlling quantum computers and qHipster cluding optimizations in areas such as gate ap- for simulating quantum computers using distributed plication. This leads to a new approach that computing techniques [20]. A comprehensive list of outperforms other popular state vector based tools is available on Quantiki [2]. simulators. An implementation of the pro- While the area of simulation is well established, posed simulator is available at https://qcgpu. there are, to my knowledge, no simulation tools that github.io. can take advantage of hardware acceleration. It is well known that dedicated hardware can speed up certain types of computations. This is becoming in- 1 Introduction creasingly more apparent in fields such as machine learning, gaming and cryptocurrency mining. Quantum computing is a paradigm shift in comput- While this research mainly looks at state vector ing. These devices are thought to be the key to solving simulations, there are other ways of doing simulations. some types of problems, such as factoring semi-prime These include using the Feynmann path integral for- integers [19], search for elements in an unstructured mulation of quantum mechanics [6,8], using tensor database [15, 23], simulation of quantum systems, op- networks [18] and applying different simulations for timization [13] and chemistry problems. circuits made up of certain types of quantum gates These problems are not feasible to solve using classi- [7]. These techniques (while not covered in this work) cal computers, but quantum computers may fix that. will hopefully be included in the simulation software Still, it is estimated that hundreds [4] up to thousands at a later date. [5] of qubits (the quantum analogue to bits) will be needed. Still, the way that quantum computers oper- 1.2 OpenCL ate does not violate the Church-Turing principle [10]. This means that quantum computers can be, to some OpenCL (Open Computing Language) is a general- arXiv:1805.00988v2 [quant-ph] 7 Nov 2018 extent, simulated using classical computers. purpose framework for heterogeneous parallel com- There are some existing quantum computers, such puting on cross-vendor hardware, such as CPUs, as IBM’s Q Experience [3], a semi-public cloud based GPUs, DSP (digital signal processors) and FPGAs quantum computer with up to 20 qubits. While the (field-programmable gate arrays). It provides an ab- number of qubits available at the moment is small, straction for low-level hardware routing and a consis- as it increases, many issues are being raised. One of tent memory and execution model for dealing with these issues is the ability to assess the correctness, massively-parallel code execution. This allows the performance and scalability of quantum algorithms. framework to scale from embedded systems to hard- It is this issue which simulators of quantum comput- ware from Nvidia, ATI, AMD, Intel and other man- ers address. They allow the user to test quantum ufacturers, all without having to rewrite the source algorithms using a limited number of qubits, and cal- code for various architectures. A more detailed culate measurements, state amplitudes and density overview of OpenCL is given in [22]. 1 queue. The hardware will then load DRAM into the global device RAM, and execute each work group on the work-queue. On the device, the multiprocessor will execute the kernel using multiple threads at once. If there is more work groups than threads on the device, they will be serialized. There are some limitations. The global work size must be a multiple of the work group size. This is to say the work group must fit evenly into the data Figure 1: The OpenCL programming model/architecture structure. Secondly, the number of elements in the n- dimensional vector must be less or equal the The main advantage of using OpenCL over a hard- CL_KERNEL_WORK_GROUP_SIZE flag. This is important ware specific framework is that of a portability first to the QCGPU library as it sets a hard limitation approach. OpenCL has the largest hardware cover- on the size of the state vector being stored on the age, and as a header only library, it requires no spe- GPU. CL_KERNEL_WORK_GROUP_SIZE is a hardware flag, cific tools or other dependencies. Aside from this, and OpenCL will return an error code if either of OpenCL is very well suited to tasks that can be ex- these conditions is violated. This can be avoided by pressed as a program working in parallel over simple using an approach similar to the distributed memory data structures (such as arrays/vectors). The dis- techniques used in other simulations. This feature is advantages with OpenCL, however, come from this planned to be implemented soon. lack of a hardware-specific approach. Using propri- etary frameworks can sometimes be faster than using OpenCL, and sometimes it can also be more straight- 1.3 Quantum Computing forward to develop kernels for the devices. Before considering quantum computing, let’s first OpenCL is an open standard maintained by the start with classical computation. A classical com- non-profit Khronos Group. It views a computing sys- puter is the type of computer that you may have at tem as a number of compute devices (such as CPUs home. Laptops, Tablets, Phones and Smart TV’s are or accelerators such as GPUs), attached to a host pro- all examples of a classical computer. cessor (a CPU). OpenCL executes functions on these A quantum computer is different. It takes advan- devices called Kernels, and these kernels are written tage of principles of quantum mechanics such as su- in a C-like language, OpenCL C. A compute device perposition, entanglement and measurement to per- is made up of several compute units which contain form computation (see the following section). Because multiple processing elements. It is the processing el- of this, it can do computations that normal computers ements that execute kernels. This is shown in figure will never be able to do. 1. At the host level, a compute device is selected. The OpenCL API then uses its platform later to submit 1.3.1 Qubits and State work to the device and manage things like the work In a classical computer, information is represented as distribution and memory. The work is defined using a bit. A bit is a binary system, and thus can be in kernels. These kernels are written in OpenCL C, and one of two states, 0 or 1. In a quantum computer, execute in parallel over a predefined, n-dimensional information is represented as a qubit. The qubit is computation domain. Each independent element of the quantum analogue of a bit. Using Dirac notation this execution is a work item. These are equivalent [11], a qubit can be in the state |0i or |1i, or (more to Nvidia CUDA threads. The groups of work items, importantly) a superposition (linear combination) of work groups, are equivalent to CUDA thread blocks. these states. Mathematically, the state of a single With this, a general pipeline for most GPGPU qubit |ψi is OpenCL applications can be described. First, a CPU |ψi = α |0i + β |1i , (1.1) host defines an n-dimensional computation domain over some region of DRAM memory. Every index of such that α, β ∈ C. The coefficients also must follow this n-dimensional domain will be a work item, and a normalization condition of |α|2 + |β|2 = 1. each work item will execute the same given Kernel. In the above state, the complex numbers α and β The host then defines a grouping of these into work are known as amplitudes. The states |0i and |1i are groups. Each work item in the work-groups will ex- known as basis states. Importantly, given any state ecute concurrently within a compute unit and will |ψi, it is impossible to extract the amplitudes of any share some local memory. These are placed on a work basis state. 2 Commonly used is the vector notation for states. 1.3.2 Manipulating the State The basis states |0i and |1i are vectors that form In a classical computer, bits are manipulated using an orthonormal basis for that qubits state space. logic gates. There is a quantum analogue to this too. The standard representation (and the one followed Just as the state of a system of qubits was defined throughout QCGPU and this paper) is using vectors, the way they change can be described also. The state of a qubit (or multiple qubits) is 1 0 changed by quantum logic gates, or just gates.
Recommended publications
  • The Quantum Toolbox in Python Release 2.2.0
    QuTiP: The Quantum Toolbox in Python Release 2.2.0 P.D. Nation and J.R. Johansson March 01, 2013 CONTENTS 1 Frontmatter 1 1.1 About This Documentation.....................................1 1.2 Citing This Project..........................................1 1.3 Funding................................................1 1.4 Contributing to QuTiP........................................2 2 About QuTiP 3 2.1 Brief Description...........................................3 2.2 Whats New in QuTiP Version 2.2..................................4 2.3 Whats New in QuTiP Version 2.1..................................4 2.4 Whats New in QuTiP Version 2.0..................................4 3 Installation 7 3.1 General Requirements........................................7 3.2 Get the software...........................................7 3.3 Installation on Ubuntu Linux.....................................8 3.4 Installation on Mac OS X (10.6+)..................................9 3.5 Installation on Windows....................................... 10 3.6 Verifying the Installation....................................... 11 3.7 Checking Version Information via the About Box.......................... 11 4 QuTiP Users Guide 13 4.1 Guide Overview........................................... 13 4.2 Basic Operations on Quantum Objects................................ 13 4.3 Manipulating States and Operators................................. 20 4.4 Using Tensor Products and Partial Traces.............................. 29 4.5 Time Evolution and Quantum System Dynamics.........................
    [Show full text]
  • Jupyter Notebooks—A Publishing Format for Reproducible Computational Workflows
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Elpub digital library Jupyter Notebooks—a publishing format for reproducible computational workflows Thomas KLUYVERa,1, Benjamin RAGAN-KELLEYb,1, Fernando PÉREZc, Brian GRANGERd, Matthias BUSSONNIERc, Jonathan FREDERICd, Kyle KELLEYe, Jessica HAMRICKc, Jason GROUTf, Sylvain CORLAYf, Paul IVANOVg, Damián h i d j AVILA , Safia ABDALLA , Carol WILLING and Jupyter Development Team a University of Southampton, UK b Simula Research Lab, Norway c University of California, Berkeley, USA d California Polytechnic State University, San Luis Obispo, USA e Rackspace f Bloomberg LP g Disqus h Continuum Analytics i Project Jupyter j Worldwide Abstract. It is increasingly necessary for researchers in all fields to write computer code, and in order to reproduce research results, it is important that this code is published. We present Jupyter notebooks, a document format for publishing code, results and explanations in a form that is both readable and executable. We discuss various tools and use cases for notebook documents. Keywords. Notebook, reproducibility, research code 1. Introduction Researchers today across all academic disciplines often need to write computer code in order to collect and process data, carry out statistical tests, run simulations or draw figures. The widely applicable libraries and tools for this are often developed as open source projects (such as NumPy, Julia, or FEniCS), but the specific code researchers write for a particular piece of work is often left unpublished, hindering reproducibility. Some authors may describe computational methods in prose, as part of a general description of research methods.
    [Show full text]
  • Quantum Computing: Principles and Applications
    Journal of International Technology and Information Management Volume 29 Issue 2 Article 3 2020 Quantum Computing: Principles and Applications Yoshito Kanamori University of Alaska Anchorage, [email protected] Seong-Moo Yoo University of Alabama in Huntsville, [email protected] Follow this and additional works at: https://scholarworks.lib.csusb.edu/jitim Part of the Communication Technology and New Media Commons, Computer and Systems Architecture Commons, Information Security Commons, Management Information Systems Commons, Science and Technology Studies Commons, Technology and Innovation Commons, and the Theory and Algorithms Commons Recommended Citation Kanamori, Yoshito and Yoo, Seong-Moo (2020) "Quantum Computing: Principles and Applications," Journal of International Technology and Information Management: Vol. 29 : Iss. 2 , Article 3. Available at: https://scholarworks.lib.csusb.edu/jitim/vol29/iss2/3 This Article is brought to you for free and open access by CSUSB ScholarWorks. It has been accepted for inclusion in Journal of International Technology and Information Management by an authorized editor of CSUSB ScholarWorks. For more information, please contact [email protected]. Journal of International Technology and Information Management Volume 29, Number 2 2020 Quantum Computing: Principles and Applications Yoshito Kanamori (University of Alaska Anchorage) Seong-Moo Yoo (University of Alabama in Huntsville) ABSTRACT The development of quantum computers over the past few years is one of the most significant advancements in the history of quantum computing. D-Wave quantum computer has been available for more than eight years. IBM has made its quantum computer accessible via its cloud service. Also, Microsoft, Google, Intel, and NASA have been heavily investing in the development of quantum computers and their applications.
    [Show full text]
  • Arxiv:1110.0573V2 [Quant-Ph] 22 Nov 2011 Equation Or Monte-Carlo Wave Function Method
    QuTiP: An open-source Python framework for the dynamics of open quantum systems J. R. Johanssona,1,∗, P. D. Nationa,b,1,∗, Franco Noria,b aAdvanced Science Institute, RIKEN, Wako-shi, Saitama 351-0198, Japan bDepartment of Physics, University of Michigan, Ann Arbor, Michigan 48109-1040, USA Abstract We present an object-oriented open-source framework for solving the dynamics of open quantum systems written in Python. Arbitrary Hamiltonians, including time-dependent systems, may be built up from operators and states defined by a quantum object class, and then passed on to a choice of master equation or Monte-Carlo solvers. We give an overview of the basic structure for the framework before detailing the numerical simulation of open system dynamics. Several examples are given to illustrate the build up to a complete calculation. Finally, we measure the performance of our library against that of current implementations. The framework described here is particularly well-suited to the fields of quantum optics, superconducting circuit devices, nanomechanics, and trapped ions, while also being ideal for use in classroom instruction. Keywords: Open quantum systems, Lindblad master equation, Quantum Monte-Carlo, Python PACS: 03.65.Yz, 07.05.Tp, 01.50.hv PROGRAM SUMMARY 1. Introduction Manuscript Title: QuTiP: An open-source Python framework for the dynamics of open quantum systems Every quantum system encountered in the real world is Authors: J. R. Johansson, P. D. Nation an open quantum system [1]. For although much care is Program Title: QuTiP: The Quantum Toolbox in Python taken experimentally to eliminate the unwanted influence Journal Reference: of external interactions, there remains, if ever so slight, Catalogue identifier: a coupling between the system of interest and the exter- Licensing provisions: GPLv3 nal world.
    [Show full text]
  • Arxiv:2103.11307V1 [Quant-Ph] 21 Mar 2021
    QuClassi: A Hybrid Deep Neural Network Architecture based on Quantum State Fidelity Samuel A. Stein1,4, Betis Baheri2, Daniel Chen3, Ying Mao1, Qiang Guan2, Ang Li4, Shuai Xu3, and Caiwen Ding5 1 Computer and Information Science Department, Fordham University, {sstein17, ymao41}@fordham.edu 2 Department of Computer Science, Kent State University, {bbaheri, qguan}@kent.edu 3 Computer and Data Sciences Department,Case Western Reserve University, {txc461, sxx214}@case.edu 4 Pacific Northwest National Laboratory (PNNL), Email: {samuel.stein, ang.li}@pnnl.gov 5 University of Connecticut, Email: [email protected] Abstract increasing size of data sets raises the discussion on the future of DL and its limitations [42]. In the past decade, remarkable progress has been achieved in In parallel with the breakthrough of DL in the past years, deep learning related systems and applications. In the post remarkable progress has been achieved in the field of quan- Moore’s Law era, however, the limit of semiconductor fab- tum computing. In 2019, Google demonstrated Quantum rication technology along with the increasing data size have Supremacy using a 53-qubit quantum computer, where it spent slowed down the development of learning algorithms. In par- 200 seconds to complete a random sampling task that would allel, the fast development of quantum computing has pushed cost 10,000 years on the largest classical computer [5]. Dur- it to the new ear. Google illustrates quantum supremacy by ing this time, quantum computing has become increasingly completing a specific task (random sampling problem), in 200 available to the public. IBM Q Experience, launched in 2016, seconds, which is impracticable for the largest classical com- offers quantum developers to experience the state-of-the-art puters.
    [Show full text]
  • Off-The-Shelf Components for Quantum Programming and Testing
    Off-the-shelf Components for Quantum Programming and Testing Cláudio Gomesa, Daniel Fortunatoc, João Paulo Fernandesa and Rui Abreub aCISUC — Departamento de Engenharia Informática da Universidade de Coimbra, Portugal bFaculty of Engineering of the University of Porto, Portugal cInstituto Superior Técnico, University of Lisbon, Portugal Abstract In this position paper, we argue that readily available components are much needed as central contribu- tions towards not only enlarging the community of quantum computer programmers, but also in order to increase their efficiency and effectiveness. We describe the work we intend to do towards providing such components, namely by developing and making available libraries of quantum algorithms and data structures, and libraries for testing quantum programs. We finally argue that Quantum Computer Programming is such an effervescent area that synchronization efforts and combined strategies within the community are demanded to shorten the time frame until quantum advantage is observed and can be explored in practice. Keywords Quantum Computing, Software Engineering, Reusable Components 1. Introduction There is a large body of compelling evidence that Computation as we have known and used for decades is under challenge. As new models for computation emerge, its limits are being pushed beyond what pragmatically had been seen in practice. In this line, Quantum Computing (QC) has received renewed worldwide attention. Having its foundations been thoroughly studied, mainly from the point of view of its physical implementation, their potential has, even if preliminarily, is currently being witnessed. A quantum computer can potentially solve various problems that a classical computer cannot solve efficiently; this is known as Quantum Supremacy.
    [Show full text]
  • Student User Experience with the IBM Qiskit Quantum Computing Interface
    Proceedings of Student-Faculty Research Day, CSIS, Pace University, May 4th, 2018 Student User Experience with the IBM QISKit Quantum Computing Interface Stephan Barabasi, James Barrera, Prashant Bhalani, Preeti Dalvi, Ryan Kimiecik, Avery Leider, John Mondrosch, Karl Peterson, Nimish Sawant, and Charles C. Tappert Seidenberg School of CSIS, Pace University, Pleasantville, New York Abstract - The field of quantum computing is rapidly Schrödinger [11]. Quantum mechanics states that the position expanding. As manufacturers and researchers grapple with the of a particle cannot be predicted with precision as it can be in limitations of classical silicon central processing units (CPUs), Newtonian mechanics. The only thing an observer could quantum computing sheds these limitations and promises a know about the position of a particle is the probability that it boom in computational power and efficiency. The quantum age will be at a certain position at a given time [11]. By the 1980’s will require many skilled engineers, mathematicians, physicists, developers, and technicians with an understanding of quantum several researchers including Feynman, Yuri Manin, and Paul principles and theory. There is currently a shortage of Benioff had begun researching computers that operate using professionals with a deep knowledge of computing and physics this concept. able to meet the demands of companies developing and The quantum bit or qubit is the basic unit of quantum researching quantum technology. This study provides a brief information. Classical computers operate on bits using history of quantum computing, an in-depth review of recent complex configurations of simple logic gates. A bit of literature and technologies, an overview of IBM’s QISKit for information has two states, on or off, and is represented with implementing quantum computing programs, and two a 0 or a 1.
    [Show full text]
  • Introduction to Quantum Programming
    Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction to Quantum Programming 1/40 Our goals Quantum programming Manipulation of quantum gates Programming QRAM High-level programming What next? Q? Introduction to Quantum Programming 2/40 I Introduce various approaches to quantum programming. I Write some code. Our goals I Understand the difference between quantum and classical programming. Introduction to Quantum Programming 3/40 I Write some code. Our goals I Understand the difference between quantum and classical programming. I Introduce various approaches to quantum programming. Introduction to Quantum Programming 3/40 Our goals I Understand the difference between quantum and classical programming. I Introduce various approaches to quantum programming. I Write some code. Introduction to Quantum Programming 3/40 Our goals I Understand the difference between quantum and classical programming. I Introduce various approaches to quantum programming. I Write some code. ( Talk is cheap. Show me the quantum code.) ≡ Introduction to Quantum Programming 3/40 Quantum programming Introduction to Quantum Programming 4/40 Quantum programming What is quantum programming? Quantum programming is a process that leads from an original formulation of a computing problem to executable quantum computer programs. Introduction to Quantum Programming 5/40 I The process of preparing programs for a quantum computer is especially attractive because it not only can be economically and scientifically rewarding, it can also be an aesthetic experience much like composing poetry or music. I Only the modern quantum computer has made quantum programming both challenging and relevant. Quantum programming What is quantum programming? I The only way to learn a new quantum programming language is by writing programs in it.
    [Show full text]
  • High Energy Physics Quantum Information Science Awards Abstracts
    High Energy Physics Quantum Information Science Awards Abstracts Towards Directional Detection of WIMP Dark Matter using Spectroscopy of Quantum Defects in Diamond Ronald Walsworth, David Phillips, and Alexander Sushkov Challenges and Opportunities in Noise‐Aware Implementations of Quantum Field Theories on Near‐Term Quantum Computing Hardware Raphael Pooser, Patrick Dreher, and Lex Kemper Quantum Sensors for Wide Band Axion Dark Matter Detection Peter S Barry, Andrew Sonnenschein, Clarence Chang, Jiansong Gao, Steve Kuhlmann, Noah Kurinsky, and Joel Ullom The Dark Matter Radio‐: A Quantum‐Enhanced Dark Matter Search Kent Irwin and Peter Graham Quantum Sensors for Light-field Dark Matter Searches Kent Irwin, Peter Graham, Alexander Sushkov, Dmitry Budke, and Derek Kimball The Geometry and Flow of Quantum Information: From Quantum Gravity to Quantum Technology Raphael Bousso1, Ehud Altman1, Ning Bao1, Patrick Hayden, Christopher Monroe, Yasunori Nomura1, Xiao‐Liang Qi, Monika Schleier‐Smith, Brian Swingle3, Norman Yao1, and Michael Zaletel Algebraic Approach Towards Quantum Information in Quantum Field Theory and Holography Daniel Harlow, Aram Harrow and Hong Liu Interplay of Quantum Information, Thermodynamics, and Gravity in the Early Universe Nishant Agarwal, Adolfo del Campo, Archana Kamal, and Sarah Shandera Quantum Computing for Neutrino‐nucleus Dynamics Joseph Carlson, Rajan Gupta, Andy C.N. Li, Gabriel Perdue, and Alessandro Roggero Quantum‐Enhanced Metrology with Trapped Ions for Fundamental Physics Salman Habib, Kaifeng Cui1,
    [Show full text]
  • Introduction to Quantum Computing and Its Applications to Cyber Security
    Introduction to Quantum Computing and its Applications to Cyber Security Raj Jain Washington University in Saint Louis Saint Louis, MO 63130 [email protected] These slides and audio/video recordings of this class lecture are at: http://www.cse.wustl.edu/~jain/cse570-19/ Washington University in St. Louis http://www.cse.wustl.edu/~jain/ ©2019 Raj Jain 19-1 Overview 1. What is a Quantum and Quantum Bit? 2. Matrix Algebra Review 3. Quantum Gates: Not, And, or, Nand 4. Applications of Quantum Computing 5. Quantum Hardware and Programming Washington University in St. Louis http://www.cse.wustl.edu/~jain/ ©2019 Raj Jain 19-2 What is a Quantum? Quantization: Analog to digital conversion Quantum = Smallest discrete unit Quantum Wave Theory: Light is a wave. It has a frequency, phase, amplitude Quantum Mechanics: Light behaves like discrete packets of energy that can be absorbed and released Wave Photon = One quantum of light energy Photon Photons can move an electron from one energy level to next higher level Photons are released when an electron moves from one level to lower energy level Electrons Washington University in St. Louis http://www.cse.wustl.edu/~jain/ ©2019 Raj Jain 19-3 Probabilistic Behavior Young’s Double-Slit Experiment 1801 Photons The two waves exiting the slits interfere. Interference is constructive at some spots and destructive at others ⇒ Probabilistic Washington University in St. Louis http://www.cse.wustl.edu/~jain/ ©2019 Raj Jain 19-4 Quantum Bits 1. Computing bit is a binary scalar: 0 or 1 10 or 2. Quantum bit (Qubit) is a 2×1 vector: 01 3.
    [Show full text]
  • Towards a Quantum Programming Language
    The final version of this paper appeared in Math. Struct. in Comp. Science 14(4):527-586, 2004 Towards a Quantum Programming Language P E T E R S E L I N G E R y Department of Mathematics and Statistics University of Ottawa Ottawa, Ontario K1N 6N5, Canada Email: [email protected] Received 13 Nov 2002, revised 7 Jul 2003 We propose the design of a programming language for quantum computing. Traditionally, quantum algorithms are frequently expressed at the hardware level, for instance in terms of the quantum circuit model or quantum Turing machines. These approaches do not encourage structured programming or abstractions such as data types. In this paper, we describe the syntax and semantics of a simple quantum programming language with high-level features such as loops, recursive procedures, and structured data types. The language is functional in nature, statically typed, free of run-time errors, and it has an interesting denotational semantics in terms of complete partial orders of superoperators. 1. Introduction Quantum computation is traditionally studied at the hardware level: either in terms of gates and circuits, or in terms of quantum Turing machines. The former viewpoint emphasizes data flow and neglects control flow; indeed, control mechanisms are usually dealt with at the meta-level, as a set of instructions on how to construct a parameterized family of quantum circuits. On the other hand, quantum Turing machines can express both data flow and control flow, but in a sense that is sometimes considered too general to be a suitable foundation for implementations of future quantum computers.
    [Show full text]
  • Qutip: Quantum Toolbox in Python
    Lecture on QuTiP: Quantum Toolbox in Python with case studies in Circuit-QED Robert Johansson RIKEN In collaboration with Paul Nation Korea University Pohang 2012 [email protected] 1 Content ● Introduction to QuTiP ● Case studies in circuit-QED – Jaynes-Cumming-like models ● Vacuum Rabi oscillations ● Qubit-gates using a resonators as a bus ● Single-atom laser – Dicke model / Ultrastrong coupling – Correlation functions and nonclassicality tests – Parametric amplifier Pohang 2012 [email protected] 2 resonator as coupling bus qubits qubit-qubit NIST 2007 UCSB 2012 UCSB 2009 NIST 2002 high level of control of resonators UCSB 2009 Yale 2011 Yale 2004 Delft 2003 qubit-resonator Saclay 1998 Yale 2008 ETH 2010 UCSB 2006 NEC 1999 Saclay 2002 Chalmers 2008 NEC 2003 NEC 2007 ETH 2008 2000 2005 2010 Pohang 2012 [email protected] 3 What is QuTiP? ● Framework for computational quantum dynamics – Efficient and easy to use for quantum physicists – Thoroughly tested (100+ unit tests) – Well documented (200+ pages, 50+ examples) – Quite large number of users (>1000 downloads) ● Suitable for – theoretical modeling and simulations – modeling experiments ● 100% open source ● Implemented in Python/Cython using SciPy, Numpy, and matplotlib Pohang 2012 [email protected] 4 Project information Authors: Paul Nation and Robert Johansson Web site: http://qutip.googlecode.com Discussion: Google group “qutip” Blog: http://qutip.blogspot.com Platforms: Linux and Mac License: GPLv3 Download: http://code.google.com/p/qutip/downloads Repository: http://github.com/qutip Publication: Comp. Phys. Comm. 183, 1760 (2012) Pohang 2012 [email protected] 5 What is Python? Python is a modern, general-purpose, interpreted programming language Modern Good support for object-oriented and modular programming, packaging and reuse of code, and other good programming practices.
    [Show full text]