We introduce ProjectQ, an open source software effort for quantum computing. The first release features a compiler framework capable of targeting various types of hardware, a high-performance simulator with emulation capabilities, and compiler plug-ins for circuit drawing and resource estimation. We introduce our Python-embedded domain-specific language, present the features, and provide example implementations for quantum algorithms. The framework allows testing of quantum algorithms through simulation and enables running them on actual quantum hardware using a back-end connecting to the IBM Quantum Experience cloud service. Through extension mechanisms, users can provide back-ends to further quantum hardware, and scientists working on quantum compilation can provide plug-ins for additional compilation, optimization, gate synthesis, and layout strategies.
We introduce ProjectQ, an open source software effort for quantum computing. The first release features a compiler framework capable of targeting various types of hardware, a high-performance simulator with emulation capabilities, and compiler plug-ins for circuit drawing and resource estimation. We introduce our Python-embedded domain-specific language, present the features, and provide example implementations for quantum algorithms. The framework allows testing of quantum algorithms through simulation and enables running them on actual quantum hardware using a back-end connecting to the IBM Quantum Experience cloud service. Through extension mechanisms, users can provide back-ends to further quantum hardware, and scientists working on quantum compilation can provide plug-ins for additional compilation, optimization, gate synthesis, and layout strategies.
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 platform. For platforms that have quantum computer support, we compare hardware, quantum assembly languages, and quantum compilers. We conclude by covering features of each and briefly mentioning other quantum computing software packages.
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 computing paradigms, including quantum annealing, and discrete and continuous-variable gate-model quantum computing. The evaluation of each project covers characteristics such as documentation, licence, the choice of programming language, compliance with norms of software engineering, and the culture of the project. We find that while the diversity of projects is mesmerizing, only a few attract external developers and even many commercially backed frameworks have shortcomings in software engineering. Based on these observations, we highlight the best practices that could foster a more active community around quantum computing software that welcomes newcomers to the field, but also ensures high-quality, well-documented code.
We introduce OpenQARP, the Open Quantum Application Research Package: an open-source Python framework for quantum application research, built on a compiled C++ core. In OpenQARP, an application is assembled from an algorithm library that orchestrates three interchangeable layers: blocks describe circuits, primitives describe what to extract from them, and engines describe how they run. The release spans near-term through fault-tolerant methods, targeting problems from electronic structure to combinatorial optimization, with device-aware compilation, circuit cutting, and resource estimation over a single set of numerical conventions that the code must follow. Every numerical feature is checked against an independent oracle, and every published timing carries a correctness check. Against OpenFermion, Qiskit/Aer, PennyLane/Lightning, Qulacs, qsim, and pytket, OpenQARP is one to two orders of magnitude faster on operator algebra and among the fastest on simulation. It matches mature compilers on two-qubit gate count, and expresses a complete algorithm in the lines a framework needs rather than the plumbing a primitive stack demands.
In May 2016 IBM released access to its 5-qubit quantum computer to the scientific community, its "IBM Quantum Experience" since acquiring over 25,000 users from students, educators and researchers around the globe. In the short time since the "IBM Quantum Experience" became available, a flurry of research results on 5-qubit systems have been published derived from the platform hardware. Quintuple is an open-source object-oriented Python module implementing the simulation of the "IBM Quantum Experience" hardware. Quintuple quantum algorithms can be programmed and run via a custom language fully compatible with the "IBM Quantum Experience" or in pure Python. Over 40 example programs are provided with expected results, including Grover's Algorithm and the Deutsch-Jozsa algorithm. Quintuple contributes to the study of 5-qubit systems and the development and debugging of quantum algorithms for deployment on the "IBM Quantum Experience" hardware.
Quantum computing holds transformative potential, but its adoption is hindered by the complexity of generating efficient, hardware-specific code. This work presents a modular, extensible compiler framework that bridges high-level quantum languages with diverse hardware architectures. The framework consists of three modules: a front-end for parsing quantum code into a hardware-agnostic intermediate representation (IR), an optimization module for enhancing quantum circuits through gate synthesis, qubit routing, and error mitigation, and a back-end for generating hardware-specific instructions. Major contributions include a hardware-agnostic IR for cross-platform compatibility, optimization techniques to reduce gate complexity and noise, and hardware-specific adaptations to improve execution fidelity. A practical demonstration optimizes quantum circuits, highlighting the impact of hardware constraints. Comparative analysis of IBM Quantum and IonQ platforms underscores the role of qubit connectivity and noise resilience in algorithmic performance. This scalable framework enhances quantum software development and efficient hardware utilization.
In this work, we present some of the latest efforts made at Huawei Research in order to improve the overall performance of ProjectQ, the quantum computing framework used as the foundation of our quantum research. Since a few years, performance assessment of the framework using profiling tools has shown that a significant portion of the compilation time is spent in doing memory management linked to the lifetime and access of Python objects. The main purpose of this work is therefore aimed at addressing some of these limitations by introducing a new C++ processing backend for ProjectQ, as well as starting a complete rewrite of the simulator code already written in C++. The core of this work is centered around on a new C++ API for ProjectQ that moves most of the compiler processing into natively compiled code. We achieve this by providing a new compiler engine to perform the conversion from Python to C++, which ensures that we retain maximum compatibility with existing user code while providing significant speed-ups. We also introduce some of our work aimed at porting the existing C++ code to offload the more demanding calculations onto GPUs for better performance. We then investigate the performance of this new API by comparing it with the original ProjectQ implementation, as well as some other existing quantum computing frameworks. The preliminary results show that the C++ API is able to considerably reduce the cost of compilation, to the point that the compilation process becomes mostly limited by the performance of the simulator. Unfortunately, due to the some last minutes developments and the time frame required for the submission of the present manuscript, we are unable to provide conclusive benchmark results for the GPU-capable implementation of the simulator. These will most likely be presented during the keynote presentation at the DATE conference in 2021.