IBM Quantum Services provides access to more than 20 currently available quantum systems (known as backends). IBM’s quantum processors are made up of superconducting transmon qubits, and users can utilize these systems via the universal, gate-based, circuit model of quantum computation. Additionally, users have access to 5 different types of simulators, simulating from 32 up to 5000 qubits to represent different aspects of the quantum backends.
This guide describes how to use the system once you have access. For instructions on how to gain access, see our Quantum Access page instead.
Access to the IBM Quantum Computing queues, reservations, and simulators can be obtained via multiple methods – either through the cloud or locally.
Users can access information about IBM Quantum’s systems, view queue information, and submit jobs on their cloud dashboard at https://quantum-computing.ibm.com. The cloud dashboard allows access to IBM Quantum’s graphical circuit builder, Quantum Composer, IBM’s Quantum Lab, and associated program examples. A Jupyterlab server is provisioned with IBM Quantum’s Qiskit programming framework for job submission.
Locally via Qiskit
IBM Quantum provides Qiskit (Quantum Information Software Kit for Quantum Computation) for working with OpenQASM and the IBM Q quantum processors. Qiskit allows users to build quantum circuits, compile them for a particular backend, and run the compiled circuits as jobs. Additional information on using Qiskit is available at https://qiskit.org/learn/ and in our Software Section below.
As opposed to using IBM’s JupyterLab server (described in Cloud Access above), users are able to install IBM Quantum Qiskit locally via two methods:
- Installing manually: https://qiskit.org/documentation/stable/0.24/install.html. This option allows for building locally and executing jobs via a python virtual environment.
- Docker: https://www.ibm.com/cloud/learn/docker or https://hub.docker.com/u/ibmq
Running Jobs & Queue Policies
User can submit jobs to IBM Quantum backends both via a fair-sharing queue system as well as via priority reservation system. As discussed below, the dynamic fair-sharing queue system determines the queuing order of jobs so as to fairly balance system time between access providers, of which the OLCF QCUP is only one. Because of this, the order of when a user’s job in the fair-share queue will run varies dynamically, and can’t be predicted. In light of this, for time-critical applications or iterative algorithms, IBM Quantum recommends users consider making a priority reservation.
Jobs are compiled and submitted via Qiskit in a Python virtual environment or Jupyter notebook (see Cloud Access and Local Access sections above).
- Circuit jobs comprise jobs of constructed quantum circuits and algorithms submitted to backends in IBM Quantum fair-share queue.
- Program jobs utilize a pre-compiled quantum program utilizing the Qiskit Runtime framework.
Allocations & Usage Limits
Because of the queuing method described above, users have no set allocation. Job throughput is only limited via the dynamic queue.
There is a time limit on program-wide usage of reservable systems (see below).
In addition to the fair-share queue, users may request a backend reservation for a certain period of time by contacting firstname.lastname@example.org. If the reservation is granted, the reserved backend will be blocked from general use for a specified period of time, and the user will have sole use of the backend for that period.
There is a limited number of minutes per month that can be reserved on each device. Reservations are supported on these devices with these monthly allocations:
- ibmq_toronto, 2400 minutes per month
- ibmq_kolkata, 2400 minutes per month
- ibmq_jakarta, 480 minutes per month
Checking System Availability & Capability
Current status listing, scheduled maintenance, and system capabilities for IBM Quantum’s quantum resources can be found here: https://quantum-computing.ibm.com/services?services=systems
- Qiskit documentation is available at https://qiskit.org/documentation/
- Qiskit Terra is the foundational module set upon which the rest of Qiskit’s features are built; for more information, see: https://qiskit.org/documentation/apidoc/terra.html
- Qiskit Aer is IBM Quantum’s package for simulating quantum circuits, with
different backends for specific types of simulation
- Simulator backends currently available: https://quantum-computing.ibm.com/services?services=simulators