63 research outputs found
Compiling Quantum Programs
This thesis introduces the quantum compilation problem and develops a prototypical compiler. The problem of quantum compiling is, in essence, converting high-level human expressions of quantum programs into low-level hardware executable code. Compilers that target different hardware platforms enable portable code that can be used to benchmark hardware performance, reduce programming work and speed up development. Because quantum systems are subjected to phenomena such as noise, no-cloning and decoherence, the challenge of quantum compiling is tied to the optimization of program runtimes and the lengths of compiled sequences. For near-term intermediate scale quantum (NISQ) computers with limited hardware resources and without error correction, a well-designed compiler that optimizes hardware usage and circuit fidelity is necessary to running applications and tests. To give an introduction to the problem of quantum compiling, this thesis reviews the universality proof for quantum computation and the Solovay-Kitaev theorem, which are both foundational to the topic. A compilation scheme with two components, one following the universality proof and one inspired by the Solovay-Kitaev theorem, is implemented to demonstrate an approach that solves the quantum compiling problem. Finally, I survey state-of-the-art compilation techniques and discuss how to extend this thesis toward building a practical compiler that will be a part of the broader software stack
Generalised quantum weakest preconditions
Generalisation of the quantum weakest precondition result of D'Hondt and
Panangaden is presented. In particular the most general notion of quantum
predicate as positive operator valued measure (POVM) is introduced. The
previously known quantum weakest precondition result has been extended to cover
the case of POVM playing the role of a quantum predicate. Additionally, our
result is valid in infinite dimension case and also holds for a quantum
programs defined as a positive but not necessary completely positive
transformations of a quantum states.Comment: 7 pages, no figures, added references, changed conten
Analysis of Quantum Entanglement in Quantum Programs using Stabilizer Formalism
Quantum entanglement plays an important role in quantum computation and
communication. It is necessary for many protocols and computations, but causes
unexpected disturbance of computational states. Hence, static analysis of
quantum entanglement in quantum programs is necessary. Several papers studied
the problem. They decided qubits were entangled if multiple qubits unitary
gates are applied to them, and some refined this reasoning using information
about the state of each separated qubit. However, they do not care about the
fact that unitary gate undoes entanglement and that measurement may separate
multiple qubits. In this paper, we extend prior work using stabilizer
formalism. It refines reasoning about separability of quantum variables in
quantum programs.Comment: In Proceedings QPL 2015, arXiv:1511.0118
QuEST and High Performance Simulation of Quantum Computers
We introduce QuEST, the Quantum Exact Simulation Toolkit, and compare it to
ProjectQ, qHipster and a recent distributed implementation of Quantum++. QuEST
is the first open source, OpenMP and MPI hybridised, GPU accelerated simulator
of universal quantum circuits. Embodied as a C library, it is designed so that
a user's code can be deployed seamlessly to any platform from a laptop to a
supercomputer. QuEST is capable of simulating generic quantum circuits of
general single-qubit gates and multi-qubit controlled gates, on pure and mixed
states, represented as state-vectors and density matrices, and under the
presence of decoherence. Using the ARCUS Phase-B and ARCHER supercomputers, we
benchmark QuEST's simulation of random circuits of up to 38 qubits, distributed
over up to 2048 compute nodes, each with up to 24 cores. We directly compare
QuEST's performance to ProjectQ's on single machines, and discuss the
differences in distribution strategies of QuEST, qHipster and Quantum++. QuEST
shows excellent scaling, both strong and weak, on multicore and distributed
architectures.Comment: 8 pages, 8 figures; fixed typos; updated QuEST URL and fixed typo in
Fig. 4 caption where ProjectQ and QuEST were swapped in speedup subplot
explanation; added explanation of simulation algorithm, updated bibliography;
stressed technical novelty of QuEST; mentioned new density matrix suppor
Optimizing Quantum Programs against Decoherence: Delaying Qubits into Quantum Superposition
Quantum computing technology has reached a second renaissance in the last
decade. However, in the NISQ era pointed out by John Preskill in 2018, quantum
noise and decoherence, which affect the accuracy and execution effect of
quantum programs, cannot be ignored and corrected by the near future NISQ
computers. In order to let users more easily write quantum programs, the
compiler and runtime system should consider underlying quantum hardware
features such as decoherence. To address the challenges posed by decoherence,
in this paper, we propose and prototype QLifeReducer to minimize the qubit
lifetime in the input OpenQASM program by delaying qubits into quantum
superposition. QLifeReducer includes three core modules, i.e.,the parser,
parallelism analyzer and transformer. It introduces the layered bundle format
to express the quantum program, where a set of parallelizable quantum
operations is packaged into a bundle. We evaluate quantum programs before and
after transformed by QLifeReducer on both real IBM Q 5 Tenerife and the
self-developed simulator. The experimental results show that QLifeReducer
reduces the error rate of a quantum program when executed on IBMQ 5 Tenerife by
11%; and can reduce the longest qubit lifetime as well as average qubit
lifetime by more than 20% on most quantum workloads.Comment: To appear in TASE2019 - the 13th International Symposium on
Theoretical Aspects of Software Engineering (submitted on Jan 25, 2019, and
this is camera-ready version
Quantum picturalism for topological cluster-state computing
Topological quantum computing is a way of allowing precise quantum
computations to run on noisy and imperfect hardware. One implementation uses
surface codes created by forming defects in a highly-entangled cluster state.
Such a method of computing is a leading candidate for large-scale quantum
computing. However, there has been a lack of sufficiently powerful high-level
languages to describe computing in this form without resorting to single-qubit
operations, which quickly become prohibitively complex as the system size
increases. In this paper we apply the category-theoretic work of Abramsky and
Coecke to the topological cluster-state model of quantum computing to give a
high-level graphical language that enables direct translation between quantum
processes and physical patterns of measurement in a computer - a "compiler
language". We give the equivalence between the graphical and topological
information flows, and show the applicable rewrite algebra for this computing
model. We show that this gives us a native graphical language for the design
and analysis of topological quantum algorithms, and finish by discussing the
possibilities for automating this process on a large scale.Comment: 18 pages, 21 figures. Published in New J. Phys. special issue on
topological quantum computin
- …