This position paper argues that the quantum circuit model is not a practical representation of quantum software for three reasons. First, the quantum circuit model is not suitable for semantical reasoning and better mathematical frameworks exist. Second, the abstraction level is too low for programming and too high for pulse-level machine code. Lastly, by ignoring the existence of a target quantum computer on which the quantum software could run, the transformation from software to quantum circuit model makes assumptions that result in inefficient machine code lower in the quantum computing stack. Thus, we conclude that new interfaces between quantum software, compiler, and quantum hardware need to be created such that the abstraction level is both suitable for the software and the hardware.
This position paper argues that the quantum circuit model is not a practical representation of quantum software for three reasons. First, the quantum circuit model is not suitable for semantical reasoning and better mathematical frameworks exist. Second, the abstraction level is too low for programming and too high for pulse-level machine code. Lastly, by ignoring the existence of a target quantum computer on which the quantum software could run, the transformation from software to quantum circuit model makes assumptions that result in inefficient machine code lower in the quantum computing stack. Thus, we conclude that new interfaces between quantum software, compiler, and quantum hardware need to be created such that the abstraction level is both suitable for the software and the hardware.
The computer industry, with over seven decades of experience to draw on, has shown that to thrive, there must be a community of software engineers that produce the applications users depend on. Supporting those software engineers so they can write code that performs well across multiple generations of hardware (since application software generally lasts longer than hardware) is fundamental to sustaining the computer industry. Today's quantum software developers must reason at a low level, close to the hardware, which is not sustainable. In this paper, we assert that quantum computing needs high-level abstractions that support a quantum computing applications ecosystem. A single abstraction that bridges from the mental models used by a programmer to the details of how qubits are realized in hardware is unlikely to work. We need a hierarchy of tightly coupled models that define a framework for reasoning about the software development process in quantum computing. We propose an abstraction hierarchy and then explore its utility with two approaches to the eigenvalue estimation problem: (1) a variational algorithm with error mitigation, and (2) phase estimation with error correction. We use our proposed abstraction hierarchy to pinpoint key differences between these approaches and demonstrate how an abstraction hierarchy helps us understand software development. This supports our central conclusion; that it is not enough to understand individual components of a software stack. To make progress, we need to think about an abstraction hierarchy holistically.
Although the concept of quantum computing has existed for decades, the technology needed to successfully implement a quantum computing system has not yet reached the level of sophistication, reliability, and scalability necessary for commercial viability until very recently. Significant progress on this front was made in the past few years, with IBM planning to create a 1000-qubit chip by the end of 2023, and Google already claiming to have achieved quantum supremacy. Other major industry players such as Intel and Microsoft have also invested significant amounts of resources into quantum computing research. Any viable computing system requires both hardware and software to work together harmoniously in order to perform useful computations. While the achievements of IBM and other companies represent a large step forward for quantum hardware, many gaps remain to be filled with respect to the corresponding software. Specifically, there is currently no clear path towards a complete process for translating quantum algorithms into physical operations that are directly executable on quantum hardware. Such a process is analogous to a compiler that translates programs written in a high-level language into executable machine instructions on a conventional digital computer, and it is necessary if quantum computers are to be harnessed to perform practically useful computations. Existing work has addressed individual components of this process, but so far no unified method for translating the whole of a quantum algorithm into executable operations has been described. I make substantial progress towards filling this gap by describing a set of high-level and low-level quantum circuit design techniques, which when taken together reduce the need of a circuit designer to be concerned with low-level details. On the high-level side, I describe an approach or strategy to designing quantum oracles for Grover's algorithm that allows it to be applied to several types of problems. This approach involves designing oracles in terms of high-level blocks such as counters, multiplexers, comparators, and arbitrary Boolean functions. The implementations of these blocks in terms of lower-level quantum gates are demonstrated in a way that makes it clear that scaled-up versions of them can be generated in a completely automated fashion. For a specific class of problems, which I call state-space path planning problems, I also introduce a paradigm for quantum oracle design that involves representing the problem in terms of individual states and moves. Problems of this sort have applications in robotics and games. Low-level techniques that I introduce
Abstract Quantum computers promise to transform our notions of computation by offering a completely new paradigm. To achieve scalable quantum computation, optimizing compilers and a corresponding software design flow will be essential. We present a software architecture for compiling quantum programs from a high-level language program to hardware-specific instructions. We describe the necessary layers of abstraction and their differences and similarities to classical layers of a computer-aided design flow. For each layer of the stack, we discuss the underlying methods for compilation and optimization. Our software methodology facilitates more rapid innovation among quantum algorithm designers, quantum hardware engineers, and experimentalists. It enables scalable compilation of complex quantum algorithms and can be targeted to any specific quantum hardware implementation.
Existing abstract models of quantum computation make reference to circuit elements, much in contrast to their classical counterparts. Circuits, as a model of computation, substantially limit algorithmic expression and obscure high-level connections between problems and quantum resources. It is argued here that new models are needed to achieve high-level algorithmic expressiveness that allow composable procedural abstractions to manifest, leading to the development of instructions in the sense usually understood in high-level programming languages. Doing so appears essential to the discovery of new quantum algorithms, and deeper understanding of how quantum resources compose into useful patterns, or \emph{quantum motifs}. To achieve this, stronger investment in the intersection between higher-algebra, mathematical physics and quantum science is required to cope with future challenges brought forth by \textit{very large quantum scale integration}.
Quantum programming languages support the design of quantum applications. However, to create such programs, one needs to understand the fundamental characteristics of quantum computing and quantum information theory. Furthermore, quantum algorithms frequently make use of abstract operations with a hidden low-level realization (e.g., Quantum Fourier Transform). Thus, turning from elementary quantum operations to a higher-level view of quantum circuit design not only reduces the development effort but also lowers the entry barriers for non-quantum computing experts. To this end, this article proposes a modeling language and design framework for quantum circuits. This allows the definition of composite operators to advocate a higher-level quantum algorithm design, together with automated code generation for the circuit execution. To demonstrate the benefits of the proposed approach, coined Composition-based Quantum Circuit Designer , we applied it for realizing the Quantum Counting algorithm and the Quantum Approximate Optimization Algorithm. Our evaluation results show that, compared to an existing state-of-the-art editor, the proposed approach allows for the realization of both quantum algorithms on a high level with a substantially reduced development effort. In particular, the proposed approach shows constant scaling when increasing the size of the investigated quantum circuits and a lower change criticality when evolving existing quantum circuits.
None of the quantum computing applications imagined will ever become a reality without quantum software. Quantum programmes have, to date, been coded with ad hoc techniques. Researchers in the field of quantum software engineering are, therefore, now demanding more systematic techniques and methods with which to produce software with sufficient quality. One of the challenges and lessons learned from classic software engineering is the need for high-level, abstract and technology-independent representations with which to design software before it is coded. This paper specifically addresses this challenge for quantum software design. Since UML is a well-proven modelling language that has been widely employed by industry for some time, we propose a UML extension for the representation of quantum algorithms. Our proposal comprises the definition of a UML profile based on various stereotypes that can be applied to the existing UML activity diagrams in order to represent quantum circuits. The advantage of this representation is that UML quantum circuits can be interrelated with other UML elements and diagrams, which will make it possible to represent various concerns and viewpoints of the so-called hybrid information systems. This will consequently enable classical and quantum aspects to be modelled together in integrated designs in a technological-agnostic manner that is already supported by a considerable number of existing software design tools.