To do a job properly, you need the right tools for the job — that’s a given in area profession you can think of. And in the Quantum Computing (QC) industry is no different. For this emerging sector to grow as a community, one aspect which must develop is in the area of open-source quantum computing tools to allow users to design, for example, quantum algorithms and the like.
With this in mind, The Quantum Insider Data Platform has compiled and curated a list of thirty-five of the best quantum computing software tools around that will give those interested the opportunity to do something great. Both today and tomorrow. Enjoy!
35 Quantum Computing Software Tools
Started by started at ETH Zurich, ProjectQ is an open-source quantum computing software framework implemented in Python. It allows users to implement their quantum programs in Python using a powerful and intuitive syntax. ProjectQ can then translate these programs to any type of back-end, be it a simulator run on a classical computer or an actual quantum chip including the IBM Quantum Experience platform. Other hardware platforms will be supported in the future. Links to all the code and documentation as well as a library called FermiLib to analyze fermionic quantum simulation problems can be found in the ProjectQ tool.
Cirq is available as a GitHub repository and is a python framework for creating, editing and invoking Noisy Intermediate Scale Quantum (NISQ) circuits. Promoted by the Google AI Quantum Team, though it is not an official Google product, it is currently in an alpha release state. Cirq quantum computing tool can also be used with OpenFermion-Cirq, a platform for developing quantum algorithms for chemistry problems. At the moment several other quantum computing software companies are also working with Cirq as early adopters.
3. Q-CTRL Python Open Controls
Q-CTRL Python Open Controls is another open-source quantum computing toolkit developed by Australian quantum startup Q-CTRL that makes it easy to create and deploy established error-robust quantum control protocols from the open literature. The aim of the package is to be the most comprehensive library of published and tested quantum control techniques developed by the community, with easy-to-use export functions allowing users to deploy these controls on custom quantum hardware, publicly available cloud quantum computers and the Q-CTRL product suite.
Quantify is an open-source BSD 4 licensed platform initiated by Netherlands-based startups Qblox and Orange Quantum Systems. All the functionality of their quantum computing software is well-documented in Read-the-Docs, basic tutorials are given for quick set-up and start of the measurement, whereas advanced sequencing tutorials are also featured for more complex experiments.
Quantify-Core is a data acquisition platform for executing physics experiments and Quantify-Scheduler is an open-source hybrid scheduler that combines pulse-level and gate-level control of qubits.
Quantify tool is provided together with APIs that can be interfaced at the level of SCPI, python or QCoDeS. All of the levels are open-source, well-documented and tested in a CI pipeline.
5. Intel Quantum Simulator
Next up we have the offering from tech giant Intel, and the Intel® Quantum Simulator, formerly known by the far cooler name qHiPSTER, an open-source single node or distributed high-performance implementation of a quantum simulator that can simulate general single-qubit gates and two-qubit controlled gates.
Available as a GitHub repository, the Intel simulator which has been used to simulate algorithms of more than 40 qubits, is targeted at algorithm developers who wish to test their quantum computing software in simulation.
Powered by Quandela, a French startup focused on developing a new generation of quantum computers based on the manipulation of light, Perceval is an open-source framework for programming photonic quantum computers.
Through a simple object-oriented Python API, Perceval provides tools for composing circuits from linear optical components, defining single-photon sources, manipulating Fock states, running quantum simulations, reproducing published experimental papers and experimenting with a new generation of quantum algorithms. It aims to be a companion tool for developing quantum photonic circuits — for simulating and optimizing their design, modelling both the ideal and realistic behaviours, and proposing a normalized interface to control them through the concept of backends.
Giving access to powerful backends to simulate quantum algorithms on photonic circuits, numerically and symbolically, Perceval is optimized to run on a local desktop, with several extensions for HPC clusters. It also allows users to design algorithms and complex linear optics circuits through a large collection of predefined components. A collection of known algorithms are available and presented as tutorials. You can also run experiments to fine-tune algorithms, compare with experimental data and reproduce published articles in a few lines of code.
7. Mitaq Tool
Brought to you by the Unitary Fund, a non-profit helping create a quantum technology ecosystem that benefits the most people, Mitiq is a Python toolkit for implementing error mitigation techniques on quantum computers.
Mitiq is compatible with quantum programs written for IBM Q’s Qiskit, Google’s Cirq, Rigetti’s PyQuil, as well as other quantum circuit formalism made possible due to conversions to OpenQASM.
8. Berkeley Quantum Synthesis Toolkit
The Berkeley Quantum Synthesis Toolkit is a super optimizing quantum compiler and research vehicle that combines ideas from several projects at LBNL into an easily accessible and quickly extensible quantum computing software suite.
This suite includes QSearch, for optimal depth synthesis up to four qubits; LEAP for the best quality of solution synthesis up to six qubits; QFAST, which scales good solution quality synthesis up to eight qubits; QGO an optimizing compiler combining partitioning and synthesis, as well as QFactor, the fastest quantum circuit optimizer using tensor networks.
All of the Berkeley Quantum Synthesis Toolkit’s software is free and open-source. They have several free quantum development tools available for synthesis and optimization and are constantly improving the software.
Available as a GitHub repository, QCircuits is a Python quantum software for the simulation and study of quantum computers based on the quantum circuit model. It has been designed to have a simple, lightweight interface and to be easy to use, particularly for those new to quantum computing.
Its primary classes are State, representing the (quantum) state of the computer, a unit vector in a complex vector space, and Operator, representing quantum gates, i.e. unitary operators on those vector spaces. QCircuits allows users to prepare operators and states, apply operators to states, measure states, etc., in order to implement quantum algorithms.
Formulated to be an “extensible, efficient Quantum algorithm design for humans”, Yao is a Julia Language package and an intermediate representation to construct and manipulate quantum circuits and lets you make your own abstractions on a quantum circuit in native Julia.
Yao supports both forward-mode (faithful gradient) and reverse-mode automatic differentiation with its built-in engine optimized specifically for quantum circuits, and has been designed to be extensible. Its hierarchical architecture allows you to extend the framework to support and share your new algorithm and hardware.
Yao is provided under the Apache License 2.0, and is a free quantum development tool for everyone to use.
Silq is a new high-level programming language for quantum computing with a strong static type system, developed at ETH Zürich, and originally published at PLDI’20. Designed because current quantum languages force the programmer to work at a low level of abstraction leading to unintuitive and cluttered code, Silq is the first quantum language that addresses this challenge by supporting safe, automatic uncomputation, enabling an intuitive semantics that implicitly drops temporary values, as in classical computation. To ensure the physicality of Silq’s semantics, its type system leverages novel annotations to reject unphysical programs.
Demanding a basic background in quantum computation as a starting point, the user should be familiar with all of the concepts in quantum programming.
12. Paddle Quantum
Next on our list is Paddle Quantum, a quantum machine learning tool (QML) developed based on Baidu PaddlePaddle. It provides a platform to construct and train quantum neural networks (QNNs) with easy-to-use quantum machine learning development kits supporting combinatorial optimization, quantum chemistry and other cutting-edge quantum applications, making PaddlePaddle the first deep learning framework in China that supports quantum machine learning.
Featuring many easy-to-use online learning resources (Nearly 40 tutorials), high efficiency in building QNN with various QNN templates, an automatic differentiation, versatility with multiple optimization tools and GPU mode, simulation with 25+ qubits and flexible noise models.
Paddle Quantum aims at establishing a bridge between artificial intelligence (AI) and quantum computing (QC). It has been utilized for developing several quantum machine learning applications. With the PaddlePaddle deep learning platform empowering QC, Paddle Quantum provides strong support for the scientific research community and developers in the field to easily develop QML applications. Moreover, it provides a learning platform for quantum computing enthusiasts.
Not a Mexican alcoholic drink unfortunately but a cool name, all the same, Tequila is extensible Quantum information and learning architecture where the main goal is to simplify and accelerate the implementation of new ideas for quantum algorithms.
Currently supporting Qulacs, Qiskit, Cirq, and PyQuil, it operates on abstract data structures allowing the formulation, combination, automatic differentiation and optimization of generalized objectives. Tequila can execute the underlying quantum expectation values on state-of-the-art simulators as well as on real quantum devices.
Qulacs is a Variational Quantum Circuit Simulator for Quantum computation research developed at Kyoto University and maintained by Japanese startup QunaSys for fast simulation of large, noisy, or parametric quantum circuits.
Featuring fast quantum circuit simulation with parallelized C/C++ backend, noisy quantum gate for simulation of NISQ devices, parametric quantum gates for variational methods, circuit compression for fast simulation, GPU support for fast simulation, and many utility functions for research, Qulacs is a Python/C++ library for fast simulation of large, noisy, or parametric quantum circuits under the MIT license.
staq is a modern C++17 library for the synthesis, transformation, optimization and compilation of quantum circuits. It is usable either through the provided binary tools or as a header-only library that can be included to provide direct support for parsing & manipulating circuits written in the OpenQASM circuit description language.
Inspired by Clang, staq is designed to manipulate OpenQASM syntax trees directly, rather than through an intermediate representation which makes retrieving the original source code impossible. In particular, OpenQASM circuits can be inspected and transformed (in most cases) without losing the original source structure. This makes staq ideally suited for source-to-source transformations, where only specific changes are desired. Likewise, this allows translations to other common circuit description languages and libraries to closely follow the OpenQASM source.
Bayesforge is a Linux machine image that curates the very best open-source software for the data scientist who needs advanced analytical tools, as well as for Quantum Computing and Computational Mathematics practitioners who seek to work with one of the major QC frameworks.
The image combines common Machine Learning Frameworks, such as PyTorch and Tensor Flow, with Open Source quantum computing software from D-Wave, Rigetti as well as the IBM Quantum Experience and Google’s new quantum computing language Cirq, as well as other advanced QC frameworks. For instance, its Quantum Fog modelling framework, and its quantum compiler Qubiter can cross-compile to all major architectures.
All software is made accessible through the Jupyter WebUI which, due to its modular architecture, allows the user to code in Python, R and Octave (even Bash scripting is supported).
The image comes with a full Anaconda Python 3.6 installation as well as the latest R distribution, enhanced with modules such as PyMC and Marco Scutari’s excellent bnlearn package for R.
A complete list of all the R and Python modules that are installed on the image is accessible through Jupyter reports (in the top-level Utility folder).
The Bayesforge team is currently readying a separate image that will support GPU CUDA acceleration.
Bluqat is a quantum computer library available as a GitHub repository. A Python-based quantum computing software framework, Blueqat has been designed for those just starting out, as well as the more seasoned professionals in the space and includes easy-to-use quantum simulation algorithms such as VQE and QAOE.
18. Quantum Programming Studio
The Quantum Programming Studio is a Web-based quantum programming IDE and simulator supported by the Unitary Fund and Rigetti Computing.
The graphical user interface has been designed to allow users to construct quantum algorithms and obtain results by simulating directly in the browser or by executing on real quantum computers.
Circuits can be exported to multiple quantum programming languages/frameworks and can be executed on various simulators and quantum computers.
Supported platforms include Rigetti Forest, IBM Qiskit, Google Cirq and TensorFlow Quantum, Microsoft Quantum Development Kit, Amazon Braket and more.
Quirk is a drag-and-drop quantum circuit simulator, great for manipulating and exploring small quantum circuits. Quirk’s visual style gives a reasonably intuitive feel of what is happening, state displays update in real-time as you change the circuit, and the general experience is fast and interactive.
Using Quirk mostly amounts to dragging gates from the toolboxes, dropping those gates into the circuit, and looking at the state displays inside and to the right of the circuit.
Quirk is free and open-source quantum computing software. The source code is available under a permissive Apache license that allows anyone to make and distribute their own modified versions. For example, someone wanted to simplify Quirk in order to teach high school students, so they forked “Quirky” out of Quirk.
QuEST, or the Quantum Exact Simulation Toolkit, is a high-performance simulator of quantum circuits, state vectors and density matrices. QuEST uses multithreading, GPU acceleration and distribution to run lightning first on laptops, desktops and networked supercomputers. QuEST is stand-alone, requires no installation and is trivial to compile and get running.
Supporting over 140 operations, from simple named gates to powerful esoteric operators, many of which have bespoke algorithms for maximum simulation efficiency, QuEST further supports general user-specified unitaries and decoherence channels, with any number of control and target qubits, and data structures for Pauli strings, diagonal operators and QASM.
QuEST is developed by Simon Benjamin’s Quantum Technology Theory Group (qtechtheory) and the e-Research center (oerc) at the University of Oxford. Development is currently led by Tyson Jones.
XACC is an extensible compilation framework for hybrid quantum-classical computing architectures. It provides extensible language frontend and hardware backend compilation components glued together via a novel quantum intermediate representation. XACC currently supports quantum-classical programming and enables the execution of quantum kernels on IBM, Rigetti, and D-Wave QPUs, as well as a number of quantum computer simulators.
Quantum++ is a modern C++ general-purpose quantum computing library, composed solely of template header files. Quantum++ is written in standard C++17 and has very low external dependencies, using only the Eigen 3 linear algebra header-only template library and, if available, the OpenMP multi-processing library.
Quantum++ is not restricted to qubit systems or specific quantum information processing tasks, being capable of simulating arbitrary quantum processes. The main design factors taken into consideration were ease of use, high portability, and high performance. The library’s simulation capabilities are only restricted by the amount of available physical memory. On a typical machine (Intel i5 8Gb RAM) Quantum++ can successfully simulate the evolution of 25 qubits in a pure state or of 12 qubits in a mixed state reasonably fast.
23. Quantum Inspire
Designed and built by QuTech, Quantum Inspire allows users to program, execute and examine quantum algorithms on various hardware chips on one of QuTech’s simulators or hardware backends, giving the users the experience that makes up the possibilities of quantum computing.
With Quantum Inspire, users can run simulations of up to 37 qubits on the Dutch national supercomputer, Cartesius. As well as this, Quantum Inspire has implemented integration with IBM’s Qiskit — this allows users to run QI-developed programs on IBM’s Qiskit simulators as well as IBM’s quantum hardware.
QuCAT stands for Quantum Circuit Analyzer Tool. This open-source python library provides standard quantum analysis tools for superconducting electronic circuits, built around Josephson junctions.
Currently developed and maintained by Mario Gely in the group of Gary Steele at the University of Delft in the Netherlands, QuCAT features an intuitive graphical or programmatical interface to create circuits, the ability to compute their Hamiltonian, and a set of complementary functionalities such as calculating dissipation rates or visualizing current flows in the circuit. QuCAT currently supports quantization on the basis of normal modes.
QuTIP is open-source quantum computing software for simulating the dynamics of open quantum systems. The QuTiP library depends on the excellent Numpy, Scipy, and Cython numerical packages. In addition, graphical output is provided by Matplotlib. QuTiP aims to provide user-friendly and efficient numerical simulations of a wide variety of Hamiltonians, including those with arbitrary time-dependence, commonly found in a wide range of physics applications such as quantum optics, trapped ions, superconducting circuits, and quantum nanomechanical resonators. QuTiP quantum computing tool is free and available for use and/or modification on all major platforms such as Linux, Mac OSX, and Windows*. Being free of any licensing fees, QuTiP is ideal for exploring quantum mechanics and dynamics in the classroom.
OpenFermion is an open-source library for compiling and analyzing quantum algorithms to simulate fermionic systems, including quantum chemistry. Among other functionalities, this version features data structures and tools for obtaining and manipulating representations of fermionic and qubit Hamiltonians, with software that includes several plug-ins to run on these packages. Additionally, you can run OpenFermion on the ProjectQ and Rigetti Forest frameworks.
27. TensorFlow Quantum
TensorFlow Quantum (TFQ) is a quantum machine learning library for rapid prototyping of hybrid quantum-classical ML models. Research in quantum algorithms and applications can leverage Google’s quantum computing frameworks, all from within TensorFlow.
TensorFlow Quantum focuses on quantum data and building hybrid quantum-classical models. The tool integrates quantum computing algorithms and logic designed in Cirq, and provides quantum computing primitives compatible with existing TensorFlow APIs, along with high-performance quantum circuit simulators.
Quipper is an embedded, scalable functional programming tool for quantum computing. It provides high-level circuit description language. This includes gate-by-gate descriptions of circuit fragments, as well as powerful operators for assembling and manipulating circuits, a syntax that allows a mixture of procedural and declarative programming styles, built-in facilities for the automatic synthesis of reversible quantum circuits, including from classical code, support for hierarchical circuits, extensible quantum data types, programmable circuit transformers, as well as support for three execution phases: compile-time, circuit generation time and circuit execution time.
It also has extensive libraries of quantum functions, including libraries for quantum integer and fixed-point arithmetic; the Quantum Fourier transform; an efficient Qram implementation; libraries for simulation of pseudo-classical circuits, Stabilizer circuits, and arbitrary circuits; and libraries for exact and approximate decomposition of circuits into specific gate sets.
29. QX Quantum Computing Simulator
The QX Simulator is a universal quantum computer simulation software developed at QuTech by Nader Khammassi. The QX allows quantum algorithm designers to simulate the execution of their quantum circuits on a quantum computer. The simulator defines a low-level quantum assembly language namely Quantum Code which allows the users to describe their circuits in a simple textual source code file. The source code file is then used as the input of the simulator which executes its content.
The Quantum Code language allows the users to define a quantum register with a given qubits number, build the circuit through a sequence of quantum gates, simulate the classical-quantum interface through binary-controlled gates, split the main circuit into several smaller sub-circuit, debug the circuit through special instructions which display the quantum state and the measurement outcomes at any point of the circuit, comment on the different circuit parts, loop over a sub-circuit by executing sub-circuit several iterations, and schedule sequential or parallel quantum gates.
Besides simulating error-free execution quantum circuits on a perfect quantum computer, the QX Simulator can simulate realistic noisy execution using different error models such as the depolarizing noise. The user can activate the error model and define a physical error probability to simulate a specific target quantum computer. This error rate can be defined based on the gate fidelity and the qubit decoherence of the target platform.
30. Quantum Algorithm Zoo
Quantum Algorithm Zoo is a comprehensive catalogue of quantum algorithms compiled by Stephen Jordan from NIST.
ScaffCC is a compiler and scheduler for the Scaffold programing language. It is written using the LLVM open-source infrastructure. It is for the purpose of writing and analyzing code for quantum computing applications.
ScaffCC enables researchers to compile quantum applications written in Scaffold to a low-level quantum assembly format (QASM), apply error correction, and generate time and area metrics. It is written to be scalable up to problem sizes in which quantum algorithms outperform classical ones, and as such provides valuable insight into the overheads involved and possible optimizations for a realistic implementation of future device technology.
TriQ is the backend compiler for the Scaffold quantum programming language. TriQ takes two inputs: 1) a gate sequence produced by ScaffCC and 2) qubit connectivity and calibration data for the target machine. It compiles the program gate sequence by choosing a good initial placement of the program qubits on the hardware qubits, reducing communication, and applying gate optimization techniques.
TriQ generates optimized quantum assembly code for both superconducting and ion trap quantum computers. We support the 14 and 5-qubit superconducting devices from IBM (IBMQ14, IBMQ5), the 16-qubit superconducting systems from Rigetti (Aspen1, Aspen3) and 5-qubit trapped ion system from the University of Maryland.
33. Qbsolv from D-Wave
Developed by quantum legacy company D-Wave, Qbsolv is a decomposing solver that allows users to find a minimum value of a large quadratic unconstrained binary optimization (QUBO) problem by splitting it into pieces solved either via a D-Wave system or a classical tabu solver.
Available on GitHub, this repository was deprecated as of the end of 2021, with support discontinued after March 2022.
34. Quantum Computing Playground
Quantum Computing Playground is a browser-based WebGL Chrome Experiment developed by Google in 2014. It features a GPU-accelerated quantum computer with a simple IDE interface, and its own scripting language with debugging and 3D quantum state visualization features. Quantum Computing Playground can efficiently simulate quantum registers up to 22 qubits, run Grover’s and Shor’s algorithms, and has a variety of quantum gates built into the scripting language itself.
35. Microsoft LIQUi|>
Microsoft’s LIQUi|> has been designed by QuArC to aid in the development and understanding of quantum protocols, quantum algorithms, quantum error correction, and quantum devices.
Allowing the simulation of Hamiltonians, quantum circuits, quantum stabilizer circuits, quantum noise models, and supporting client, service, and cloud operation, users can express circuits in a high-level functional language (F#), and supports the extraction of circuit data structures that can be passed to other components for circuit optimization, quantum error correction, gate replacement, export or rendering. The system is architected to be fully modular to permit easy extension as desired.
LIQUi|> includes state-of-the-art circuit simulation of up to 30 qubits on a single machine with 32 GB RAM, limited only by memory and computing threads. The largest number factored to date on the simulator is a 13-bit number, which required 27 qubits, half a million gates, and 5 days runtime. The circuit was based on Beauregard’s circuit for Shor’s algorithm.
LIQUi|> can be used to translate a quantum algorithm written in the form of a high-level program into low-level machine instructions for a quantum device. The toolkit includes a compiler, optimizers, translators, various simulators and a host of examples.
Other Quantum Computing Developer Tools
- Microsoft Quantum Development Kit
- IBM Quantum Experience
- Rigetti Forest
- Quantum in the Cloud
- Penny Lane and Strawberry Field from Xanadu
- Raytheon BBN Open Source Software