As quantum internet technologies develop, the need for simulation software and education for quantum internet rises. QuNetSim aims to fill this need. QuNetSim is a Python software framework that can be used to simulate quantum networks up to the network layer. The goal of QuNetSim is to make it easier to investigate and test quantum networking protocols over various quantum network configurations and parameters. The framework incorporates many known quantum network protocols so that users can quickly build simulations and beginners can easily learn to implement their own quantum networking protocols.
We describe a method of investigating the near-term potential of quantum communication technology for communication networks from the perspective of current networks. For this, we integrate an instance of the quantum network simulator QuNetSim at the link layer into the communication network emulator ComNetsEmu. This novel augmented version of ComNetsEmu is thereby enabled to run arbitrary quantum protocols between any directly connected pair of network hosts. To give an example of the proposed method, we implement the link layer method of generating and storing entanglement while idle, to acc…
Future practical implementation of secure quantum communication technology in a multiuser network environment would require automatic monitoring of the optical link condition and quantum system parameters, along with adjusting them in real time according to protocol restrictions. We demonstrate how software-defined networking (SDN) paradigm can be used for addressing this problem on the example of a subcarrier wave quantum communication system, which is promising for network applications. We propose a novel approach to dynamic quantum network routing and communication security based on SDN Ope…
We introduce a simulator for a quantum internet with the specific goal to support software development. A quantum internet consists of local quantum processors, which are interconnected by quantum communication channels that enable the transmission of qubits between the different processors. While many simulators exist for local quantum processors, there is presently no simulator for a quantum internet tailored towards software development. Quantum internet protocols require both classical as well as quantum information to be exchanged between the network nodes, next to the execution of gates …
Quantum computing has the potential to offer substantial computational advantages over conventional computing. Recent advances in quantum computing hardware and algorithms have enabled a class of classically parallel quantum workloads, whereby individual quantum circuits can execute independently on many quantum processing units. Here, we present the full-stack software framework developed at Quantum Brilliance to enable multi-modal parallelism for hybrid quantum workloads. Our software provides the capability to distribute quantum workloads across multiple quantum accelerators hosted by nodes…
Linear Software Models enable rigorous linear algebraic procedures for modular design of classical software systems. These procedures apply a spectral approach to matrix representations - e.g. the Laplacian - of the software system. Recent intensive research efforts towards quantum computers have increased expectations that quantum computing could in due time materialize as a practical alternative to classical computing. It is reasonable to inquire about quantum software desirable features and prepare in advance modular design procedures for quantum software systems. However, it does not make …
Quantum communication systems harness modern physics through state-of-the-art optical engineering to provide revolutionary capabilities. An important concern for quantum communication engineering is designing and prototyping these systems to evaluate proposed capabilities. We apply the paradigm of software-defined communication for engineering quantum communication systems to facilitate rapid prototyping and prototype comparisons. We detail how to decompose quantum communication terminals into functional layers defining hardware, software, and middleware concerns, and we describe how each laye…
Quantum software plays a critical role in exploiting the full potential of quantum computing systems. As a result, it has been drawing increasing attention recently. This paper defines the term "quantum software engineering" and introduces a quantum software life cycle. The paper also gives a generic view of quantum software engineering and discusses the quantum software engineering processes, methods, and tools. Based on these, the paper provides a comprehensive survey of the current state of the art in the field and presents the challenges and opportunities we face. The survey summarizes the…
Quantum software plays a critical role in exploiting the full potential of quantum computing systems. As a result, it is drawing increasing attention recently. As research in quantum programming reaches maturity with a number of active research and practical products, software metric researchers need to focus on this new paradigm to evaluate it rigorously and quantitatively. As the first step, this paper proposes some basic metrics for quantum software, which mainly focus on measuring the size and structure of quantum software. These metrics are defined at different abstraction levels to repre…
Manipulating quantum computing hardware in the presence of imperfect devices and control systems is a central challenge in realizing useful quantum computers. Susceptibility to noise limits the performance and capabilities of noisy intermediate-scale quantum (NISQ) devices, as well as any future quantum computing technologies. Fortunately quantum control enables efficient execution of quantum logic operations and algorithms with built-in robustness to errors, without the need for complex logical encoding. In this manuscript we introduce software tools for the application and integration of qua…
We present MISTIQS, a Multiplatform Software for Time-dependent Quantum Simulations. MISTIQS delivers end-to-end functionality for simulating the quantum many-body dynamics of systems governed by time-dependent Heisenberg Hamiltonians across multiple quantum computing platforms. It provides high-level programming functionality for generating intermediate representations of quantum circuits which can be translated into a variety of industry-standard representations. Furthermore, it offers a selection of circuit compilation and optimization methods and facilitates execution of the quantum circui…
Real-time control software and hardware is essential for operating quantum computers. In particular, the software plays a crucial role in bridging the gap between quantum programs and the quantum system. Unfortunately, current control software is often optimized for a specific system at the cost of flexibility and portability. We propose a systematic design strategy for modular real-time quantum control software and demonstrate that modular control software can reduce the execution time overhead of kernels by 63.3% on average while not increasing the binary size. Our analysis shows that modula…
Know Your Qubits, Know Your Users: Personas for Quantum Software
Technical University of Applied Science Regensburg(雷根斯堡应用科技大学);Karlsruhe Institute of Technology(卡尔斯鲁厄理工学院);Argonne National Laboratory(阿贡国家实验室);University of Extremadura(埃斯特雷马杜拉大学);Technical University of Munich(慕尼黑工业大学);Delft University of Technology(代尔夫特理工大学);Siemens AG, Foundational Technologies(西门子股份公司基础技术部门)
We have developed a software library that simulates noisy quantum logic circuits. We represent quantum states by their density matrices in the Pauli basis, and incorporate possible errors in initialisation, logic gates, memory and measurement using simple models. Our quantum simulator is implemented as a new backend on IBM's open-source Qiskit platform. In this document, we provide its description, and illustrate it with some simple examples.
Quantum computers are available to use over the cloud, but the recent explosion of quantum software platforms can be overwhelming for those deciding on which to use. In this paper, we provide a current picture of the rapidly evolving quantum computing landscape by comparing four software platforms---Forest (pyQuil), Qiskit, ProjectQ, and the Quantum Developer Kit (Q\#)---that enable researchers to use real and simulated quantum devices. Our analysis covers requirements and installation, language syntax through example programs, library support, and quantum simulator capabilities for each platf…
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. …
Quantum computing offers a new paradigm for advancing high-energy physics research by enabling novel methods for representing and reasoning about fundamental quantum mechanical phenomena. Realizing these ideals will require the development of novel computational tools for modeling and simulation, detection and classification, data analysis, and forecasting of high-energy physics (HEP) experiments. While the emerging hardware, software, and applications of quantum computing are exciting opportunities, significant gaps remain in integrating such techniques into the HEP community research program…
Quantum applications are most often hybrid, i.e. they are not only made of implementations of pure quantum algorithms but also of classical programs as well as workflows and topologies as key artifacts, and data they process. Since workflows and topologies are referred to as orchestrations in modern terminology (but with very different meaning), two orchestrations that go hand-in-hand are required to realize quantum applications. We motivate this by means of a non-trivial example, sketch these orchestration technologies and reveal the overall structure of nontrivial quantum applications as wel…
We set down the principles behind a modeling language for quantum software. We present a minimal set of extensions to the well-known Unified Modeling Language (UML) that allows it to effectively model quantum software. These extensions are separate and independent of UML as a whole. As such they can be used to extend any other software modeling language, or as a basis for a completely new language. We argue that these extensions are both necessary and sufficient to model, abstractly, any piece of quantum software. Finally, we provide a small set of examples that showcase the effectiveness of t…
University of Florence(佛罗伦萨大学);European Laboratory for Non-Linear Spectroscopy (LENS)(欧洲非线性光谱实验室(LENS));University of Lisbon(里斯本大学);Instituto de Telecomunicações(电信研究所);CNR-INO(意大利国家研究委员会-国家光学研究所);Scuola Internazionale Superiore di Studi Avanzati (SISSA)(国际高等研究院(SISSA))
In this paper we present the high-level functionalities of a quantum-classical machine learning software, whose purpose is to learn the main features (the fingerprint) of quantum noise sources affecting a quantum device, as a quantum computer. Specifically, the software architecture is designed to classify successfully (more than 99% of accuracy) the noise fingerprints in different quantum devices with similar technical specifications, or distinct time-dependences of a noise fingerprint in single quantum machines.
With recent advances in the development of more powerful quantum computers, the research area of quantum software engineering is emerging, having the goal to provide concepts, principles, and guidelines to develop high-quality quantum applications. In classical software engineering, lifecycles are used to document the process of designing, implementing, maintaining, analyzing, and adapting software. Such lifecycles provide a common understanding of how to develop and operate an application, which is especially important due to the interdisciplinary nature of quantum computing. Since today`s qu…
We present qHiPSTER, the Quantum High Performance Software Testing Environment. qHiPSTER is a distributed high-performance implementation of a quantum simulator on a classical computer, that can simulate general single-qubit gates and two-qubit controlled gates. We perform a number of single- and multi-node optimizations, including vectorization, multi-threading, cache blocking, as well as overlapping computation with communication. Using the TACC Stampede supercomputer, we simulate quantum circuits ("quantum software") of up to 40 qubits. We carry out a detailed performance analysis to show t…
Quantum programming techniques and software have advanced significantly over the past five years, with a majority focusing on high-level language frameworks targeting remote REST library APIs. As quantum computing architectures advance and become more widely available, lower-level, system software infrastructures will be needed to enable tighter, co-processor programming and access models. Here we present XACC, a system-level software infrastructure for quantum-classical computing that promotes a service-oriented architecture to expose interfaces for core quantum programming, compilation, and …
Modern quantum computers rely heavily on real-time control systems for operation. Software for these systems is becoming increasingly more complex due to the demand for more features and more real-time devices to control. Unfortunately, testing real-time control software is often a complex process, and existing simulation software is not usable or practical for software testing. For this purpose, we implemented an interactive simulator that simulates signals at the application programming interface level. We show that our simulation infrastructure simulates kernels 6.9 times faster on average …
This article provides a personal perspective on research in Automated Quantum Software Engineering (AQSE). It elucidates the motivation to research AQSE (why?), a precise description of such a framework (what?), and reflections on components that are required for implementing it (how?).
Open source software is becoming crucial in the design and testing of quantum algorithms. Many of the tools are backed by major commercial vendors with the goal to make it easier to develop quantum software: this mirrors how well-funded open machine learning frameworks enabled the development of complex models and their execution on equally complex hardware. We review a wide range of open source software for quantum computing, covering all stages of the quantum toolchain from quantum hardware interfaces through quantum compilers to implementations of quantum algorithms, as well as all quantum …
The Munich Quantum Software Stack: Connecting End Users, Integrating Diverse Quantum Technologies, Accelerating HPC
Technical University of Munich(慕尼黑工业大学);Munich Quantum Software Company (MQSC)(慕尼黑量子软件公司);Software Competence Center Hagenberg(哈根贝格软件能力中心);Leibniz Supercomputing Centre(莱布尼茨超级计算中心);Argonne National Laboratory(阿贡国家实验室)
Quantum computers have the potential of solving problems more efficiently than classical computers. While first commercial prototypes have become available, the performance of such machines in practical application is still subject to exploration. Quantum computers will not entirely replace classical machines, but serve as accelerators for specific problems. This necessitates integrating quantum computational primitives into existing applications. In this paper, we perform a case study on how to augment existing software with quantum computational primitives for the Boolean satisfiability prob…
ArQTiC is an open-source, full-stack software package built for the simulations of materials on quantum computers. It currently can simulate materials that can be modeled by any Hamiltonian derived from a generic, one-dimensional, time-dependent Heisenberg Hamiltonain. ArQTiC includes modules for generating quantum programs for real- and imaginary-time evolution, quantum circuit optimization, connection to various quantum backends via the cloud, and post-processing of quantum results. By enabling users to seamlessly perform and analyze materials simulations on quantum computers by simply provi…
The search for new, application-specific quantum computers designed to outperform any classical computer is driven by the ending of Moore's law and the quantum advantages potentially obtainable. Photonic networks are promising examples, with experimental demonstrations and potential for obtaining a quantum computer to solve problems believed classically impossible. This introduces a challenge: how does one design or understand such photonic networks? We develop novel complex phase-space software for simulating these photonic networks, and apply this to boson sampling experiments. Our technique…
Formulating cryptographic definitions to protect against software piracy is an important research direction that has not received much attention. Since natural definitions using classical cryptography are impossible to achieve (as classical programs can always be copied), this directs us towards using techniques from quantum computing. The seminal work of Aaronson [CCC'09] introduced the notion of quantum copy-protection precisely to address the problem of software anti-piracy. However, despite being one of the most important problems in quantum cryptography, there are no provably secure solut…
Nearly all modern solid-state quantum processors approach quantum computation with a set of discrete qubit operations (gates) that can achieve universal quantum control with only a handful of primitive gates. In principle, this approach is highly flexible, allowing full control over the qubits' Hilbert space without necessitating the development of specific control protocols for each application. However, current error rates on quantum hardware place harsh limits on the number of primitive gates that can be concatenated together (with compounding error rates) and remain viable. Here, we report…
Technical University of Munich(慕尼黑工业大学);Munich Quantum Software Company (MQSC)(慕尼黑量子软件公司);Software Competence Center Hagenberg(哈根贝格软件能力中心);Xanadu Quantum Technologies Inc.(Xanadu量子技术公司);AMD(超威半导体)