Microsoft Quantum Development Kit
Microsoft has released a preview version of their Quantum Development Kit that appears to supercede their earlier LIQUi|> software. This kit features a newly named quantum programming language called Q#, integration with their Visual Studio development environment, simulators that run on either a local system or their powerful Azure cloud platform, and rich libraries and code samples that can be used as building blocks. You can down this software here.
IBM Quantum Experience
IBM has put an experimental 5 qubit gate-level quantum processor on the web and is allowing members of the public to apply to get access to it. At the IBM Quantum Experience website there are four modules; a short tutorial that explains the basics of quantum computation and instructions on how to use it, a quantum composer that allows one to configure quantum gates for the qubits, a simulator which allows one to simulate their configuration before running it on the actual machine, and finally access to the machine itself which allows one to run their configuration and view the results. You can access the IBM Quantum Experience website here and you can also see my “First Looks” review of it here. IBM has also released an associated software API called QISKIT that can be used with the IBM Quantum Experience and you can access it on GitHub here.
The Rigetti Forest suite consists of a quantum instruction language called Quil, an open source Python library for construction Quil programs called pyQuil, a library of quantum programs called Grove, and a simulation environment called QVM standing for Quantum Virtual Machine. pyQuil and Grove are open source programs available on Github. Users would develop their programs using pyQuil and Grove on their own computer and then submit them to QVM for simulation over a web portal that is available for registered users. You can access the Forest home page which contains documentation, GitHub links and a workshop video on the Rigetti web site here.
ProjectQ is an open-source software framework for quantum computing 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 well as a library called FermiLib to analyze fermionic quantum simulation problems can be found at the ProjectQ web site here.
Cirq is an open source Python library for writing, manipulating, and optimizing Noisy Intermediate Scale Quantum (NISQ) circuits and running them against quantum computers and simulators. It is currently in an alpha release state and can also be used with OpenFermion-Cirq, a platform for developing quantum algorithms for chemistry problems. Several other software companies are also working with Cirq as early adopters. Cirq is being promoted by members of the Google AI Quantum Team, but it is not an official Google product.
CirqProject Q is a port between ProjectQ and Cirq that provides two main functions. First, it is a ProjectQ backend that converts a ProjectQ algorithm to a cirq.Circuit. And second, it can decompose ProjectQ common gates to native Xmon gates that can be used to simulate a Google quantum computer with ProjectQ.
Quirk is a drag-and-drop simulator that runs in your web browser. It continuously re-simulates as you edit the circuit, providing immediate feedback. It is very good at small-scale iterative experimentation and provides excellent, intuitive graphics for a maximum of 16 qubits.
QuTiP: Quantum Toolbox in Python
QuTiP is open-source 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 is freely 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 chemistry package for quantum computers. It can be used as a tool for generating and compiling physics equations which describe chemical and material systems into representations which can be interpreted by a quantum computer. The most effective quantum algorithms for these problems build upon and extend the power of classical chemistry packages such as Psi4 and PySCF used and developed by research chemists across government, industry and academia. The software includes several plug-ins to run on these packages and also is able to run on the Rigetti Foreat and ProjectQ frameworks to run on a variety of different quantum computers. You can download the software from GitHub here.
QX Quantum Computing Simulator
The QX Simulator is a universal quantum computer simulator developed at QuTech. 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.
Quantum Algorithm Zoo
Stephen Jordan from NIST has cataloged dozens of different algorithms that could theoretically offer substantial speedup when run on a quantum computer. Each algorithm is described in a single paragraph that also includes an estimate of the speedup and links to references and technical papers that described the algorithm in more detail. The link to this comprehensive catalog is here.
ScaffCC is a compiler and scheduler for the Scaffold programing language. It is written using the LLVM open-source infrastructure for the purpose of writing and analyzing code for quantum computing applications. It enables users to compile quantum applications written in Scaffold to a low-level quantum assembly format (QASM), apply error correction, and generate time and area metrics. ScaffCC is written to be scalable up to problem sizes where quantum algorithms outperform classical ones, and provides valuable insight into the overheads involved and possible optimizations for a realistic implementation on a future quantum device. ScaffCC includes one of the most extensive quantum application benchmark suites and the beta release can be found on GitHub here.
Qbsolv from D-Wave
D-Wave has released a tool that takes large Quadratic Unconstrained Binary Optimization (QUBO) problems and partitions them into smaller sub-QUBOs. The sub-QUBOs are sized to fit into the capacity and topological constraints of the D-Wave quantum processor. The sub-QUBOs can also be solved classically using a tabu search algorithm built into the Qbsolv. Since the D-Wave processor is currently limited to 1000 qubits moving to 2000 qubits later in 2017, this program helps users tackle problems that are many times larger than would fit in a single D-Wave quantum processor. D-Wave has made this software open source so that users can modify it for their own needs. The software along with source code and a technical manual are available from GitHub here.
Quantum Computing Playground
Quantum Computing Playground was developed in 2014 by a group of Google engineers as a browser-based WebGL Chrome Experiment. It features a GPU-accelerated gate level 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. You can access this program by clicking here but it does assume that the user is already familiar with quantum computers and programming techniques. There is a Help page that provides some documentation and a Step-by-step Demo button that gives you a quick video demo of how to use it. The web page strongly recommends that you run Quantum Playground with the Google Chrome browser.
Microsoft has released a software architecture and tool suite for quantum computing. This tool suite is available without charge and it includes a programming language, optimization and scheduling algorithms, and quantum simulators. The tool is called LIQUi|> which stands for Language-Integrated Quantum Operations (and yes, the last two characters are the ket symbol). LIQUi|> can be used to translate a quantum algorithm written in the form of a high-level program into the low-level machine instructions for a quantum device. Microsoft has this overview Help page that describes the basic functionality of LIQUi|>. The overview web page also contains an excellent video tutorial that shows you how to install and operate LIQUi|>. The software suite itself can be downloaded from the GitHub site here. Although LIQUi|> is still available on GitHub, it appears to have been superseded by the Microsoft Quantum Development kit mentioned above.
Quantum in the Cloud
The University of Bristol will make available access to a four qubit photonic quantum computer. You can start by using their web interface available here to create a configuration, simulate your configuration and then run the configuration on their four qubit photonic chip. The simulator is available to everyone, but in order to get access to the actual hardware you will need to request an Access Token. Once it is granted, you can then run your configuration on their hardware. Additional documentation on this tool is available here and here.