IBM QISKit Aims to Enable Cloud-Based Quantum Computation
The Quantum Experience team at IBM has started to open source their quantum software QISKit, writes quantum computing and information scientist Jay Gambetta. QISKit allows developers to explore IBM cloud-enabled quantum processor using Python.
IBM QISKit includes three main components:
- The official QISKit API client, written in Python, can be installed executing
pip install IBMQuantumExperienceand then used like in the following example:
api = IBMQuantumExperience("token", config) qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q; creg c;\ h q; cx q,q; measure q -> c; measure q -> c;' device = 'simulator' shots = 1024 api.run_experiment(qasm, device, shots, name='My First Experiment', timeout=60)
The QISKit client can also be used in a Jupyter Notebook:
import pip def install(package): pip.main(['install', package]) install('IBMQuantumExperience')
A Python QISKit SDK, which includes several tools that IBM Q engineers have provided for illustrative purposes. In particular, the SDK shows how you can compose multiple jobs for complex experiments such as state tomography, randomized benchmarking, and entanglement tests.
The OPENQASM specification, which details the Open Quantum Assembly Language 2.0 and is a fundamental reading if you want to understand both the quantum computation model brought forward by IBM and the syntax used to express quantum experiments.
In IBM’s OPENAQSM model, a quantum computation is carried through in four steps:
- Compilation, which transforms a textual quantum algorithm into it IR representation using a classical computer.
- Circuit generation, which transform the IR into a set of quantum circuits, the basic blocks of a quantum program. A quantum circuit is a sequence of basic steps with no branches or process measurements. Classical control blocks can include quantum circuits and determine the overall control flow of the program based on measurements, or create new quantum circuits on the fly.
- Execution, which takes place on a quantum computer in real-time. Here, a high-level controller processes inputs or intermediate measurements coming from the quantum circuits into a sequence of physical operations carried through by a low-level controller.
- Post-processing, which again takes place on a classical computer, where measurements taken during the real-time quantum processing are used to create the final result.
IBM Quantum Experience aims to make it possible to connect to IBM’s quantum computer via IBM’s cloud and to experiment with or integrate quantum capability into software programs. Quantum computers differ from classical transistor-based computers where there are only two allowed states due to the use of quantum bits, which can be the superposition of multiple states. Quantum computation is touted to be able to efficiently solve problems which are not approachable using ordinary computers, in the field of integer factorization (cryptography), for the simulation of quantum physical processes, the approximation of Jones polynomials, solving Pell’s equation, and others. For some of those problems, quantum computers offer a polynomial speedup over their classical counterparts, which also implies that currently intractable (NP) problems will not convert into tractable problems thanks to quantum computing, only more approachable.