9,394 research outputs found
A functional quantum programming language
We introduce the language QML, a functional language for quantum computations
on finite types. Its design is guided by its categorical semantics: QML
programs are interpreted by morphisms in the category FQC of finite quantum
computations, which provides a constructive semantics of irreversible quantum
computations realisable as quantum gates. QML integrates reversible and
irreversible quantum computations in one language, using first order strict
linear logic to make weakenings explicit. Strict programs are free from
decoherence and hence preserve superpositions and entanglement - which is
essential for quantum parallelism.Comment: 15 pages. Final version, to appear in Logic in Computer Science 200
Generating reversible circuits from higher-order functional programs
Boolean reversible circuits are boolean circuits made of reversible
elementary gates. Despite their constrained form, they can simulate any boolean
function. The synthesis and validation of a reversible circuit simulating a
given function is a difficult problem. In 1973, Bennett proposed to generate
reversible circuits from traces of execution of Turing machines. In this paper,
we propose a novel presentation of this approach, adapted to higher-order
programs. Starting with a PCF-like language, we use a monadic representation of
the trace of execution to turn a regular boolean program into a
circuit-generating code. We show that a circuit traced out of a program
computes the same boolean function as the original program. This technique has
been successfully applied to generate large oracles with the quantum
programming language Quipper.Comment: 21 pages. A shorter preprint has been accepted for publication in the
Proceedings of Reversible Computation 2016. The final publication is
available at http://link.springer.co
Full-Stack, Real-System Quantum Computer Studies: Architectural Comparisons and Design Insights
In recent years, Quantum Computing (QC) has progressed to the point where
small working prototypes are available for use. Termed Noisy Intermediate-Scale
Quantum (NISQ) computers, these prototypes are too small for large benchmarks
or even for Quantum Error Correction, but they do have sufficient resources to
run small benchmarks, particularly if compiled with optimizations to make use
of scarce qubits and limited operation counts and coherence times. QC has not
yet, however, settled on a particular preferred device implementation
technology, and indeed different NISQ prototypes implement qubits with very
different physical approaches and therefore widely-varying device and machine
characteristics.
Our work performs a full-stack, benchmark-driven hardware-software analysis
of QC systems. We evaluate QC architectural possibilities, software-visible
gates, and software optimizations to tackle fundamental design questions about
gate set choices, communication topology, the factors affecting benchmark
performance and compiler optimizations. In order to answer key cross-technology
and cross-platform design questions, our work has built the first top-to-bottom
toolflow to target different qubit device technologies, including
superconducting and trapped ion qubits which are the current QC front-runners.
We use our toolflow, TriQ, to conduct {\em real-system} measurements on 7
running QC prototypes from 3 different groups, IBM, Rigetti, and University of
Maryland. From these real-system experiences at QC's hardware-software
interface, we make observations about native and software-visible gates for
different QC technologies, communication topologies, and the value of
noise-aware compilation even on lower-noise platforms. This is the largest
cross-platform real-system QC study performed thus far; its results have the
potential to inform both QC device and compiler design going forward.Comment: Preprint of a publication in ISCA 201
Optimized Compilation of Aggregated Instructions for Realistic Quantum Computers
Recent developments in engineering and algorithms have made real-world
applications in quantum computing possible in the near future. Existing quantum
programming languages and compilers use a quantum assembly language composed of
1- and 2-qubit (quantum bit) gates. Quantum compiler frameworks translate this
quantum assembly to electric signals (called control pulses) that implement the
specified computation on specific physical devices. However, there is a
mismatch between the operations defined by the 1- and 2-qubit logical ISA and
their underlying physical implementation, so the current practice of directly
translating logical instructions into control pulses results in inefficient,
high-latency programs. To address this inefficiency, we propose a universal
quantum compilation methodology that aggregates multiple logical operations
into larger units that manipulate up to 10 qubits at a time. Our methodology
then optimizes these aggregates by (1) finding commutative intermediate
operations that result in more efficient schedules and (2) creating custom
control pulses optimized for the aggregate (instead of individual 1- and
2-qubit operations). Compared to the standard gate-based compilation, the
proposed approach realizes a deeper vertical integration of high-level quantum
software and low-level, physical quantum hardware. We evaluate our approach on
important near-term quantum applications on simulations of superconducting
quantum architectures. Our proposed approach provides a mean speedup of
, with a maximum of . Because latency directly affects the
feasibility of quantum computation, our results not only improve performance
but also have the potential to enable quantum computation sooner than otherwise
possible.Comment: 13 pages, to apper in ASPLO
Concrete resource analysis of the quantum linear system algorithm used to compute the electromagnetic scattering cross section of a 2D target
We provide a detailed estimate for the logical resource requirements of the
quantum linear system algorithm (QLSA) [Phys. Rev. Lett. 103, 150502 (2009)]
including the recently described elaborations [Phys. Rev. Lett. 110, 250504
(2013)]. Our resource estimates are based on the standard quantum-circuit model
of quantum computation; they comprise circuit width, circuit depth, the number
of qubits and ancilla qubits employed, and the overall number of elementary
quantum gate operations as well as more specific gate counts for each
elementary fault-tolerant gate from the standard set {X, Y, Z, H, S, T, CNOT}.
To perform these estimates, we used an approach that combines manual analysis
with automated estimates generated via the Quipper quantum programming language
and compiler. Our estimates pertain to the example problem size N=332,020,680
beyond which, according to a crude big-O complexity comparison, QLSA is
expected to run faster than the best known classical linear-system solving
algorithm. For this problem size, a desired calculation accuracy 0.01 requires
an approximate circuit width 340 and circuit depth of order if oracle
costs are excluded, and a circuit width and depth of order and
, respectively, if oracle costs are included, indicating that the
commonly ignored oracle resources are considerable. In addition to providing
detailed logical resource estimates, it is also the purpose of this paper to
demonstrate explicitly how these impressively large numbers arise with an
actual circuit implementation of a quantum algorithm. While our estimates may
prove to be conservative as more efficient advanced quantum-computation
techniques are developed, they nevertheless provide a valid baseline for
research targeting a reduction of the resource requirements, implying that a
reduction by many orders of magnitude is necessary for the algorithm to become
practical.Comment: 37 pages, 40 figure
The architecture of a quantum programming environment
University of Technology Sydney. Faculty of Engineering and Information Technology.This thesis presents the architecture of quantum programming environment, called QSI, along with its related modules and several quantum experiments. The environment is based on one specific quantum language, namely quantum while-language. Some partial experimental results are also presented within QSI.
The first part relates to the architecture, the designing and the implementation of quantum programming environment which provides a new, powerful and flexible environment for developing and implementing quantum programs. First, we study the possible structure of the programming environment which supports a measurement-based case statement and a measurement-based while-loop. These two program constructs are extremely convenient for describing large-scale quantum algorithms, such as quantum random walk-based algorithms. We also define a new assembly language called f-QASM (Quantum Assembly Language with feedback) as an interactive command set. The assembly language is compatible with other low-level instruction sets and can be used to directly drive quantum hardware. Moreover, the simulation of syntax of quantum program and the behaviours within the architecture on the classical computer are discussed. Finally, we consider the work-flow which contains the decomposition of unitary matrix to achieve the goal that executing on Noisy Intermediate-Scale Quantum Computer.
The second part concerns the modules based on quantum programming environment: termination analysis module, detective separable unitary module and quantum control module. Along with the architecture, we bring an essential module - termination analysis module for the loop structure. It can analyze sub-bodies of quantum program and suggest the critical termination information. In addition, we improve the Jordan decomposition step in the original algorithm which consumes extended period for analyzing. This improvement also makes the module more robust on executing. A fast permutation algorithm module clarifies the re-ordering algorithm in case of qubits system. It regenerates the program (unitary operator) which is not in pre-ordered sequence. In the detective separable unitary module, we prove sufficient conditions for separable unitary and its approximate scenario. The result shows there does not exist a universal algorithm for potential parallel executing quantum programs without communications (classical or quantum communications). However, in approximate, there exists a scheme for parallel computing without the help of communication. In this part, two examples for parallel computing are given. Last, in quantum control module, an algorithm is suggested towards automatically generating quantum circuits for quantum case-statement. We believe these analysis modules can help the compiler to optimize the implementation of quantum algorithms.
The third part is devoted to quantum experiment. First, we focus several experiments which can be operated directly by QSI : Qloop, BB84 protocol and Grover search algorithm. After that, with the help of IBM’s QISKit, two impressive experiments: distinguishing unitary gates and Bell states are given on real quantum computer. Finally, we combine QSI with Microsoft’s LIQUi|> to implement quantum case-statement. These experiments significantly show the quantum power and the scalable framework of the quantum programming environment in practice
- …