diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json
index 849be7271ae..28509850556 100644
--- a/docs/guides/_toc.json
+++ b/docs/guides/_toc.json
@@ -14,7 +14,11 @@
"url": "/docs/guides/quick-start"
},
{
- "title": "Install",
+ "title": "Hello world",
+ "url": "/docs/guides/hello-world"
+ },
+ {
+ "title": "Advanced install",
"children": [
{
"title": "Install Qiskit",
@@ -608,13 +612,9 @@
"url": "/docs/guides/processor-types"
},
{
- "title": "QPU information",
+ "title": "View backend details",
"url": "/docs/guides/qpu-information"
},
- {
- "title": "Get backend information with Qiskit",
- "url": "/docs/guides/get-qpu-information"
- },
{
"title": "Calibration jobs",
"url": "/docs/guides/calibration-jobs"
@@ -960,4 +960,4 @@
]
}
]
-}
+}
\ No newline at end of file
diff --git a/docs/guides/cloud-setup-invited.mdx b/docs/guides/cloud-setup-invited.mdx
index 58b727ffcf1..b192ca446cc 100644
--- a/docs/guides/cloud-setup-invited.mdx
+++ b/docs/guides/cloud-setup-invited.mdx
@@ -56,6 +56,6 @@ If you are using a trusted Python environment, such as a personal laptop, it is
- [Overview of available plans.](plans-overview)
- [Configure the Qiskit SDK locally.](configure-qiskit-local)
- [Set up to use IBM Quantum Platform with REST API](/docs/guides/cloud-setup-rest-api)
- - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program.
+ - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program.
- Try a [tutorial](/docs/tutorials).
\ No newline at end of file
diff --git a/docs/guides/cloud-setup-rest-api.mdx b/docs/guides/cloud-setup-rest-api.mdx
index 017ec4ec2c8..5d594c8c0d6 100644
--- a/docs/guides/cloud-setup-rest-api.mdx
+++ b/docs/guides/cloud-setup-rest-api.mdx
@@ -97,6 +97,6 @@ curl -X 'GET' \
- [Overview of available plans.](plans-overview)
- [Configure the Qiskit SDK locally.](configure-qiskit-local)
- - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program.
+ - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program.
- Try a [tutorial](/docs/tutorials).
\ No newline at end of file
diff --git a/docs/guides/cloud-setup-untrusted.mdx b/docs/guides/cloud-setup-untrusted.mdx
index d08da5df4ad..4e44c21cccd 100644
--- a/docs/guides/cloud-setup-untrusted.mdx
+++ b/docs/guides/cloud-setup-untrusted.mdx
@@ -70,6 +70,6 @@ Follow these steps to use your API key directly to authenticate to the Qiskit Ru
- [Overview of available plans.](plans-overview)
- [Configure the Qiskit SDK locally.](configure-qiskit-local)
- - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program.
+ - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program.
- Try a [tutorial](/docs/tutorials).
\ No newline at end of file
diff --git a/docs/guides/cloud-setup.mdx b/docs/guides/cloud-setup.mdx
index f15865836cd..5dde705ded8 100644
--- a/docs/guides/cloud-setup.mdx
+++ b/docs/guides/cloud-setup.mdx
@@ -55,9 +55,9 @@ If you are using a trusted Python environment, such as a personal laptop, it is
- [Overview of available plans.](plans-overview)
- - [Configure the Qiskit SDK locally.](configure-qiskit-local)
+ - [Configure the Qiskit SDK locally.](/docs/guides/configure-qiskit-local)
+ - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program.
- [View your available QPUs.](/docs/guides/qpu-information#available)
- - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program.
- [Set up to use IBM Quantum Platform with REST API.](/docs/guides/cloud-setup-rest-api)
- Try a [tutorial](/docs/tutorials).
\ No newline at end of file
diff --git a/docs/guides/configure-qiskit-local.mdx b/docs/guides/configure-qiskit-local.mdx
index 47b2f57ce77..07431736298 100644
--- a/docs/guides/configure-qiskit-local.mdx
+++ b/docs/guides/configure-qiskit-local.mdx
@@ -56,6 +56,6 @@ Set these environment variables to alter the default behavior of Qiskit:
- Learn how to [build circuits](./map-problem-to-circuits).
- Try a tutorial, such as [Grover's algorithm](/docs/tutorials/grovers-algorithm).
- - [Run the Hello world program](/docs/tutorials/hello-world).
+ - [Run the Hello world program](/docs/guides/hello-world).
- Read the [contributing guidelines](https://github.com/Qiskit/qiskit/blob/main/CONTRIBUTING.md) if you want to contribute to the open-source Qiskit SDK.
diff --git a/docs/guides/execute-on-hardware.mdx b/docs/guides/execute-on-hardware.mdx
index 35c0151dd26..e27560e2a43 100644
--- a/docs/guides/execute-on-hardware.mdx
+++ b/docs/guides/execute-on-hardware.mdx
@@ -60,9 +60,8 @@ expectation values of observables corresponding to physical quantities or cost f
### QPU and platform information
* [Processor types](./processor-types)
-* [QPU information](./qpu-information)
+* [View backend details](./qpu-information)
* [Calibration jobs](./calibration-jobs)
-* [Get QPU information with Qiskit](./get-qpu-information)
* [Dynamic repetition rate execution](./repetition-rate-execution)
* [Retired QPUs](./retired-qpus)
* [Instances](./instances)
diff --git a/docs/guides/get-qpu-information.ipynb b/docs/guides/get-qpu-information.ipynb
deleted file mode 100644
index 26360de653b..00000000000
--- a/docs/guides/get-qpu-information.ipynb
+++ /dev/null
@@ -1,501 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "cbac187d-c590-404f-b451-8f4ec2292278",
- "metadata": {},
- "source": [
- "# Get backend information with Qiskit"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "b47b9112-316b-46fd-9b23-e3a8245428fb",
- "metadata": {
- "tags": [
- "version-info"
- ]
- },
- "source": [
- "\n",
- "Package versions
\n",
- "\n",
- "The code on this page was developed using the following requirements.\n",
- "We recommend using these versions or newer.\n",
- "\n",
- "```\n",
- "qiskit-ibm-runtime~=0.43.1\n",
- "```\n",
- " "
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c05364ae-48e2-439e-8074-3a053731c744",
- "metadata": {},
- "source": [
- "This page explains how to use Qiskit to find information about your available backends."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c9aec913-438d-4849-9ee1-ca531264b50e",
- "metadata": {},
- "source": [
- "## List backends\n",
- "\n",
- "To view the backends you have access to, you can either view a list on the [Compute resources page,](https://quantum.cloud.ibm.com/computers) or you can use the [`QiskitRuntimeService.backends()`](../api/qiskit-ibm-runtime/qiskit-runtime-service#backends) method. This method returns a list of [`IBMBackend`](../api/qiskit-ibm-runtime/ibm-backend) instances:\n",
- "\n",
- "\n",
- "If you are logged in to a specific instance or region, or if you initialized the service with a specific instance or region by using `QiskitRuntimeService()`, only the backends available to you on that instance or region are returned.\n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "61cf3942-2070-4917-90ab-44afdcbde92f",
- "metadata": {},
- "source": [
- "To run the following code, be sure you have already authenticated to the service. See [Set up your IBM Cloud account](/docs/guides/cloud-setup) for more details."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "b169fd5c-5132-47ed-9baf-eecd37f8f668",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[,\n",
- " ,\n",
- " ]"
- ]
- },
- "execution_count": 1,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Initialize your account\n",
- "from qiskit_ibm_runtime import QiskitRuntimeService\n",
- "\n",
- "service = QiskitRuntimeService()\n",
- "\n",
- "service.backends()"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "546f7270-66b9-43eb-a445-731ffa06a33f",
- "metadata": {},
- "source": [
- "The [`QiskitRuntimeService.backend()`](../api/qiskit-ibm-runtime/qiskit-runtime-service#backend) method (note that this is singular: *backend*) takes the name of the backend as the input parameter and returns an [`IBMBackend`](../api/qiskit-ibm-runtime/ibm-backend) instance representing that particular backend:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "424a7f11-6fd1-4599-a6e7-6fa722234b9a",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 2,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "service.backend(\"ibm_fez\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "2a9fa4a7-4f2a-47ef-be70-b1e100b20d2a",
- "metadata": {},
- "source": [
- "## Filter backends\n",
- "\n",
- "You can also filter the available backends by their properties. For more general filters, set the `filters` argument to a function that accepts a backend object and returns `True` if it meets your criteria. Refer to the [API documentation](../api/qiskit-ibm-runtime/qiskit-runtime-service#backends) for more details.\n",
- "\n",
- "The following code returns only backends that fit these criteria and are available to you _on your currently selected instance_:\n",
- "\n",
- "* Are real quantum devices (`simulator=False`)\n",
- "* Are currently operational (`operational=True`)\n",
- "* Have at least 5 qubits (`min_num_qubits=5`)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "cc7b0879-feaa-42da-955a-775b456198a1",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[,\n",
- " ,\n",
- " ]"
- ]
- },
- "execution_count": 3,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Optionally pass in an instance, region, or both, to\n",
- "# further filter the backends.\n",
- "service = QiskitRuntimeService()\n",
- "\n",
- "service.backends(simulator=False, operational=True, min_num_qubits=5)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "37fbdbc1-9f24-491b-8352-e56d767a5acd",
- "metadata": {},
- "source": [
- "Use these keyword arguments to filter by any attribute in backend configuration ([JSON schema](https://github.com/Qiskit/ibm-quantum-schemas/blob/main/schemas/backend_configuration_schema.json)) or status ([JSON schema](https://github.com/Qiskit/ibm-quantum-schemas/blob/main/schemas/backend_status_schema.json)). A similar method is [`QiskitRuntimeService.least_busy()`](../api/qiskit-ibm-runtime/qiskit-runtime-service#least_busy), which takes the same filters as `backends()` but returns the backend that matches the filters and has the least number of jobs pending in the queue:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "846dfe4b-def3-49c1-9d2a-906fd2dc55de",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "service.least_busy(operational=True, min_num_qubits=5)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "3b34bb71-b8cf-415f-9901-a5970997ee15",
- "metadata": {},
- "source": [
- "## Static backend information\n",
- "\n",
- "Some information about a backend does not change regularly, such as its name, version, the number of qubits it has, and the types of features it supports. This information is available as attributes of the `backend` object.\n",
- "\n",
- "The following cell builds a description of a backend."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "8d070b69-1b6d-4faa-9a4a-d12aba47d0b7",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Name: ibm_fez\n",
- "Version: 2\n",
- "No. of qubits: 156\n",
- "\n"
- ]
- }
- ],
- "source": [
- "backend = service.backend(\"ibm_fez\")\n",
- "\n",
- "print(\n",
- " f\"Name: {backend.name}\\n\"\n",
- " f\"Version: {backend.version}\\n\"\n",
- " f\"No. of qubits: {backend.num_qubits}\\n\"\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "1fc62b0b-1975-4bdc-a968-fa5bff92a893",
- "metadata": {},
- "source": [
- "For a full list of attributes, see the [`IBMBackend` API documentation](/docs/api/qiskit-ibm-runtime/ibm-backend)."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "6a055938-0a1d-46ef-ae9c-60a7960d6d73",
- "metadata": {},
- "source": [
- "## Native gates and operations\n",
- "\n",
- "Each [processor family](/docs/guides/processor-types) has a native gate set. By default, the QPUs in each family only support running the gates and operations in the native gate set. Thus, every gate in the circuit must be translated (by the transpiler) to the elements of this set.\n",
- "\n",
- "You can view the native gates and operations for a QPU either [with Qiskit](#native-gates-with-qiskit), or on the IBM Quantum® Platform [Compute resources page](/docs/guides/qpu-information#native-gates-on-platform).\n",
- "\n",
- "\n",
- "```python\n",
- "\n",
- "from qiskit_ibm_runtime import QiskitRuntimeService\n",
- "\n",
- "service = QiskitRuntimeService()\n",
- "\n",
- "for backend in service.backends():\n",
- " config = backend.configuration()\n",
- " if \"simulator\" in config.backend_name:\n",
- " continue\n",
- " print(f\"Backend: {config.backend_name}\")\n",
- " print(f\" Processor type: {config.processor_type}\")\n",
- " print(f\" Supported instructions:\")\n",
- " for instruction in config.supported_instructions:\n",
- " print(f\" {instruction}\")\n",
- " print()\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "48cf020c-24eb-49dd-a417-7196d036b0e8",
- "metadata": {},
- "source": [
- "## Dynamic backend information\n",
- "\n",
- "Backends can also have properties that change whenever the backed is calibrated, such as qubit frequency and operation error rates. Backends are usually calibrated every 24 hours, and their properties update after the calibration sequence completes. These properties can be used when optimizing quantum circuits or to construct noise models for a classical simulator.\n",
- "\n",
- "\n",
- "### Qubit properties\n",
- "\n",
- "\n",
- "The `backend.properties().qubit_property()` returns information about the qubits' physical attributes. It contains a dictionary of various properties of the qubit, each paired with its value and the timestamp of the last calibration.\n",
- "\n",
- "- `T1 (Relaxation Time)`: The T1 time represents the average duration a qubit remains in its excited state $|1\\rangle$ before decaying to its ground state $|0\\rangle$ due to energy relaxation. This parameter is used to characterize the qubit's energy relaxation behavior, and is expressed in units of seconds (s).\n",
- "\n",
- "- `T2 (Dephasing Time)`: The T2 time denotes the timescale over which a qubit maintains phase coherence of a superposition between the $|0\\rangle$ and $|1\\rangle$ states. It accounts for both energy relaxation and pure dephasing processes, providing insight into the qubit's coherence properties.\n",
- "\n",
- "- `frequency`: This parameter specifies the resonant frequency of the qubit, indicating the energy difference between the $|0\\rangle$ and $|1\\rangle$ states, expressed in hertz (Hz).\n",
- "\n",
- "- `anharmonicity`: Anharmonicity is the difference in energy between the first and second excited states of the qubit, also expressed in hertz (Hz).\n",
- "\n",
- "- `readout_error`: The readout error quantifies the average probability of incorrectly measuring a qubit's state. It is commonly calculated as the mean of prob_meas0_prep1 and prob_meas1_prep0, providing a single metric for measurement fidelity.\n",
- "\n",
- "- `prob_meas0_prep1`: This parameter indicates the probability of measuring a qubit in the 0 state when it was intended to be prepared in the $|1\\rangle$ state, denoted as $P(0 | 1)$. It reflects errors in state preparation and measurement (SPAM), particularly measurement errors in superconducting qubits.\n",
- "\n",
- "- `prob_meas1_prep0`: Similarly, this parameter represents the probability of measuring a qubit in the 1 state when it was intended to be prepared in the $|0\\rangle$ state, denoted as $P(1 | 0)$. Like prob_meas0_prep1, it reflects SPAM errors, with measurement errors being the predominant contributor in superconducting qubits.\n",
- "\n",
- "- `readout_length`: The readout_length specifies the duration of the readout operation for a qubit. It measures the time from the initiation of the measurement pulse to the completion of signal digitization, after which the system is ready for the next operation. Understanding this parameter is crucial for optimizing circuit execution, especially when incorporating mid-circuit measurements."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "74b54d1b-7db8-4879-b51f-d307f023c535",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "QubitProperties(t1=0.00020833187791710663, t2=0.00023395229316289175, frequency=None)"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# fundamental physical properties of qubit 1\n",
- "backend.qubit_properties(1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "cdca7a53-9101-48f1-bddc-48c393b56b85",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'T1': (5.345445238259663e-05,\n",
- " datetime.datetime(2025, 11, 25, 6, 52, 23, tzinfo=tzlocal())),\n",
- " 'T2': (4.569656984603511e-05,\n",
- " datetime.datetime(2025, 11, 25, 6, 53, 9, tzinfo=tzlocal())),\n",
- " 'readout_error': (0.01416015625,\n",
- " datetime.datetime(2025, 11, 25, 11, 42, 11, tzinfo=tzlocal())),\n",
- " 'prob_meas0_prep1': (0.02734375,\n",
- " datetime.datetime(2025, 11, 25, 11, 42, 11, tzinfo=tzlocal())),\n",
- " 'prob_meas1_prep0': (0.0009765625,\n",
- " datetime.datetime(2025, 11, 25, 11, 42, 11, tzinfo=tzlocal())),\n",
- " 'readout_length': (1.56e-06,\n",
- " datetime.datetime(2025, 11, 25, 11, 42, 11, tzinfo=tzlocal()))}"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# calibration data with detailed properties of qubit 0\n",
- "backend.properties().qubit_property(0)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "1379efb5-359a-4246-9603-fa5d007f9f8a",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Qubit 126 Properties:\n",
- " T1: 0.00011004519582612597 seconds\n",
- " T2: 6.519695327562977e-05 seconds\n",
- " Frequency: None Hz\n",
- " Anharmonicity: None Hz\n",
- " Readout Error: 0.003662109375\n",
- " P(0 | 1): 0.0048828125\n",
- " P(1 | 0): 0.00244140625\n",
- " Readout Length: 1.56e-06 seconds\n"
- ]
- }
- ],
- "source": [
- "# Retrieve qubit properties\n",
- "qubit_index = 126 # Replace with your qubit index\n",
- "qubit_props = backend.properties().qubit_property(qubit_index)\n",
- "\n",
- "# Access specific properties\n",
- "t1 = qubit_props.get(\"T1\", (None,))[0]\n",
- "t2 = qubit_props.get(\"T2\", (None,))[0]\n",
- "frequency = qubit_props.get(\"frequency\", (None,))[0]\n",
- "anharmonicity = qubit_props.get(\"anharmonicity\", (None,))[0]\n",
- "readout_error = qubit_props.get(\"readout_error\", (None,))[0]\n",
- "prob_meas0_prep1 = qubit_props.get(\"prob_meas0_prep1\", (None,))[0]\n",
- "prob_meas1_prep0 = qubit_props.get(\"prob_meas1_prep0\", (None,))[0]\n",
- "readout_length = qubit_props.get(\"readout_length\", (None,))[0]\n",
- "\n",
- "print(f\"Qubit {qubit_index} Properties:\")\n",
- "print(f\" T1: {t1} seconds\")\n",
- "print(f\" T2: {t2} seconds\")\n",
- "print(f\" Frequency: {frequency} Hz\")\n",
- "print(f\" Anharmonicity: {anharmonicity} Hz\")\n",
- "print(f\" Readout Error: {readout_error}\")\n",
- "print(f\" P(0 | 1): {prob_meas0_prep1}\")\n",
- "print(f\" P(1 | 0): {prob_meas1_prep0}\")\n",
- "print(f\" Readout Length: {readout_length} seconds\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "67525443-070e-4798-99b3-72a599bf96c8",
- "metadata": {},
- "source": [
- "### Instruction properties\n",
- "\n",
- "The `backend.target` attribute is a `qiskit.transpiler.Target` object: an object that contains all the information needed to transpile a circuit for that backend. This includes instruction errors and durations. For example, the following cell gets the properties for a [`cz` gate](/docs/api/qiskit/qiskit.circuit.library.CZGate) acting between qubits 1 and 0."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "64fc70f8-d848-45f2-aa25-9af10c315e1b",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "InstructionProperties(duration=6.8e-08, error=0.007854516178238763)"
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "backend.target[\"cz\"][(1, 0)]"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "f89c0fb8-7fe0-46fc-8f8b-fed5b4aba8b7",
- "metadata": {},
- "source": [
- "The following cell shows the properties for a measurement operation (including the readout error) on qubit 0."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "412fec92-7a4b-41ff-b278-48e1bbcdaf3f",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "InstructionProperties(duration=1.56e-06, error=0.01416015625)"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "backend.target[\"measure\"][(0,)]"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "89918e29-ee80-4c5e-9d25-c9331fa2f27e",
- "metadata": {},
- "source": [
- "## Next steps\n",
- "\n",
- "\n",
- " - Try the [Grover's algorithm](/docs/tutorials/grovers-algorithm) tutorial.\n",
- " - Review the [QiskitRuntime backend API](/docs/api/qiskit-ibm-runtime/qiskit-runtime-service#backend) reference.\n",
- ""
- ]
- }
- ],
- "metadata": {
- "description": "Find and filter available backends, get configuration and calibration data programmatically.",
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3"
- },
- "title": "Get backend information with Qiskit"
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/docs/tutorials/hello-world.ipynb b/docs/guides/hello-world.ipynb
similarity index 98%
rename from docs/tutorials/hello-world.ipynb
rename to docs/guides/hello-world.ipynb
index de20517f2a9..1c44fc97b0b 100644
--- a/docs/tutorials/hello-world.ipynb
+++ b/docs/guides/hello-world.ipynb
@@ -143,7 +143,7 @@
{
"data": {
"text/plain": [
- ""
+ ""
]
},
"execution_count": 1,
@@ -243,7 +243,7 @@
{
"data": {
"text/plain": [
- ""
+ ""
]
},
"execution_count": 3,
@@ -414,7 +414,7 @@
{
"data": {
"text/plain": [
- ""
+ ""
]
},
"metadata": {},
@@ -652,7 +652,7 @@
{
"data": {
"text/plain": [
- ""
+ ""
]
},
"metadata": {},
diff --git a/docs/guides/initialize-account.mdx b/docs/guides/initialize-account.mdx
index e0b9292276d..907aec77fbf 100644
--- a/docs/guides/initialize-account.mdx
+++ b/docs/guides/initialize-account.mdx
@@ -196,6 +196,6 @@ service = QiskitRuntimeService(channel="local")
- [Create and manage instances.](/docs/guides/instances)
- [Initialize the service in an untrusted environment.](/docs/guides/cloud-setup-untrusted)
- [Set up to use IBM Quantum Platform with REST API.](/docs/guides/cloud-setup-rest-api)
- - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program.
+ - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program.
diff --git a/docs/guides/install-qiskit-source.mdx b/docs/guides/install-qiskit-source.mdx
index 77b6816d1b6..11d9917aade 100644
--- a/docs/guides/install-qiskit-source.mdx
+++ b/docs/guides/install-qiskit-source.mdx
@@ -149,6 +149,6 @@ pip install -e ".[dev]"
- Read the [contributing guidelines](https://github.com/Qiskit/qiskit/blob/main/CONTRIBUTING.md) to contribute to the open-source Qiskit SDK.
- Learn how to [build circuits](./map-problem-to-circuits).
- - [Run the Hello world program](/docs/tutorials/hello-world).
+ - [Run the Hello world program](/docs/guides/hello-world).
- Try a tutorial, such as [Grover's algorithm](/docs/tutorials/grovers-algorithm).
diff --git a/docs/guides/install-qiskit.mdx b/docs/guides/install-qiskit.mdx
index 3cccb6b96b8..45686ff8c87 100644
--- a/docs/guides/install-qiskit.mdx
+++ b/docs/guides/install-qiskit.mdx
@@ -299,6 +299,6 @@ In the Qiskit v1.x release series, the supported platforms are:
- Set up your [IBM Cloud account.](/docs/guides/cloud-setup)
- [Configure Qiskit locally.](configure-qiskit-local)
- - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program.
+ - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program.
- Try an IBM Quantum Learning [tutorial.](/docs/tutorials)
diff --git a/docs/guides/processor-types.mdx b/docs/guides/processor-types.mdx
index 4276a79e3e2..82c7a46906c 100644
--- a/docs/guides/processor-types.mdx
+++ b/docs/guides/processor-types.mdx
@@ -8,8 +8,8 @@ description: Information on IBM Quantum hardware and features of different proce
Processor types are named for the general technology qualities that go into builds, consisting of the family and revision. Family (for example, Heron) refers to the size and scale of circuits possible on the chip. This is primarily determined by the number of qubits and the connectivity graph. Revisions (for example, r3) are design variants within a given family, often leading to performance improvements or tradeoffs.
-
-To find the native gates and operations of a backend, use [this code](/docs/guides/get-qpu-information#native-gates-with-qiskit). You can see all native gates and operations in [this table](/docs/guides/qpu-information#native-gates).
+
+To find the supported instruction set for a backend, use [this code](/docs/guides/qpu-information#native-gates-ops). You can see all supported instructions in [this table](/docs/guides/qpu-information#native-gates).
As new processor families are added, older families are retired. See the [Retired processor families](retired-qpus#families) section to learn more.
diff --git a/docs/guides/qpu-information.ipynb b/docs/guides/qpu-information.ipynb
new file mode 100644
index 00000000000..f5cc777ce2c
--- /dev/null
+++ b/docs/guides/qpu-information.ipynb
@@ -0,0 +1,898 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "352d5806-bb5f-413d-a7e7-4b8aac844764",
+ "metadata": {},
+ "source": [
+ "# View backend details"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d2f6a835-b9f1-48e4-a7e7-3fcfe3d72e3a",
+ "metadata": {
+ "tags": [
+ "version-info"
+ ]
+ },
+ "source": [
+ "\n",
+ "Package versions
\n",
+ "\n",
+ "The code on this page was developed using the following requirements.\n",
+ "We recommend using these versions or newer.\n",
+ "\n",
+ "```\n",
+ "qiskit-ibm-runtime~=0.43.1\n",
+ "```\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "466150ec-5103-4e24-b823-c3bacaa49f7e",
+ "metadata": {},
+ "source": [
+ "This page explains how to find information about your available backends."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "679cecfc-1f5a-43c4-8fa1-242ab9e02abe",
+ "metadata": {},
+ "source": [
+ "## List or filter backends\n",
+ "\n",
+ "\n",
+ "### List backends available to you\n",
+ "\n",
+ "You can use either Qiskit or IBM Quantum Platform to view a list of backends available to you, or to search for a particular backend.\n",
+ "\n",
+ "\n",
+ " \n",
+ " Use the [`QiskitRuntimeService.backends()`](/docs/api/qiskit-ibm-runtime/qiskit-runtime-service#backends) method, as shown in the next code block. This method returns a list of [`IBMBackend`](/docs/api/qiskit-ibm-runtime/ibm-backend) instances.\n",
+ "\n",
+ " To run the following code, be sure you have already authenticated to the service. See [Set up your IBM Cloud account](/docs/guides/cloud-setup) for more details.\n",
+ "\n",
+ " \n",
+ "\n",
+ " To search for a specific backend, use the [`QiskitRuntimeService.backend()`](/docs/api/qiskit-ibm-runtime/qiskit-runtime-service#backend) method (note that this is singular: *backend*), which takes the name of the backend as the input parameter and returns an [`IBMBackend`](/docs/api/qiskit-ibm-runtime/ibm-backend) instance representing that particular backend:\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " To view the backends you have access to, navigate to the list of backends on the [Compute resources page](https://quantum.cloud.ibm.com/computers) (note that your selected region might impact the QPUs listed). Click the filter icon and choose either \"All my instances\" or a specific instance name to see the available QPUs.\n",
+ " \n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "42879b96-9d73-4040-acee-238afd3e69ee",
+ "metadata": {
+ "tags": [
+ "id-initialize"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[,\n",
+ " ,\n",
+ " ]"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Initialize your account\n",
+ "from qiskit_ibm_runtime import QiskitRuntimeService\n",
+ "\n",
+ "service = QiskitRuntimeService()\n",
+ "\n",
+ "service.backends()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "0c057bcd-9a8d-4738-8e12-3ab215a2e118",
+ "metadata": {
+ "tags": [
+ "id-search"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "service.backend(\"ibm_fez\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "c92e9f12-bdcd-431a-ae1f-ccf12eb95103",
+ "metadata": {
+ "tags": [
+ "id-filter"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[,\n",
+ " ,\n",
+ " ]"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Optionally pass in an instance, region, or both, to\n",
+ "# further filter the backends.\n",
+ "service = QiskitRuntimeService()\n",
+ "\n",
+ "service.backends(simulator=False, operational=True, min_num_qubits=100)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "76e8d799-2043-4657-a38a-8a28182cb826",
+ "metadata": {},
+ "source": [
+ "\n",
+ "If you are logged in to a specific instance or region, or if you initialized the service with a specific instance or region by using `QiskitRuntimeService()`, only the backends available to you on that instance or region are returned.\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "57e0ff97-611b-445f-b3f2-5957f88a5e47",
+ "metadata": {},
+ "source": [
+ "### Filter backends\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " You can filter the available backends by their [configuration](/docs/api/qiskit-ibm-runtime/models-backend-configuration) or [status](/docs/api/qiskit-ibm-runtime/models-backend-status). For more general filters, set the `filters` argument to a function that accepts a backend object and returns `True` if it meets your criteria. Refer to the [API documentation](/docs/api/qiskit-ibm-runtime/qiskit-runtime-service#backends) for more details.\n",
+ "\n",
+ " The following code returns only backends that fit these criteria and are available to you _on your currently selected instance_:\n",
+ "\n",
+ " * Are real quantum devices (`simulator=False`)\n",
+ " * Are currently operational (`operational=True`)\n",
+ " * Have at least a hundred qubits (`min_num_qubits=100`)\n",
+ "\n",
+ " \n",
+ "\n",
+ " A similar method is [`QiskitRuntimeService.least_busy()`](/docs/api/qiskit-ibm-runtime/qiskit-runtime-service#least_busy), which takes the same filters as `backends()` but returns the backend that matches the filters and has the least number of jobs pending in the queue:\n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " To view the backends you have access to, view the table on the [Compute resources page](https://quantum.cloud.ibm.com/computers). Click the filter icon to see filter options. You can filter by processor type and status. Note also that you can sort the table by any column by hovering over a column title, and then clicking the arrows that appear.\n",
+ " \n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "61d89f82-f5b2-4706-843d-c2fa1dcf2919",
+ "metadata": {
+ "tags": [
+ "id-least-jobs"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "service.least_busy(operational=True, min_num_qubits=100)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0af00ab4-7998-47fc-b85d-9d1328a9256c",
+ "metadata": {},
+ "source": [
+ "## Static backend information\n",
+ "\n",
+ "Some information about a backend does not change regularly, such as its name, version, the number of qubits it has, its processor type (the bird family name, which indicates the [topology](#coupling-map) and approximate qubit count), and the types of features it supports. This information is available as attributes of the `backend` object. For a full list of attributes, see the [`IBMBackend` API documentation](/docs/api/qiskit-ibm-runtime/ibm-backend).\n",
+ "\n",
+ "A backend's region (the location of the data center where your data and experiments will be hosted and processed) is listed in its detailed information card on the [Compute resources](https://quantum.cloud.ibm.com/computers) page on IBM Quantum Platform.\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " Navigate to the [Compute resources](https://quantum.cloud.ibm.com/computers) page to view a table of all QPUs, then click the name of any QPU to open its detailed information card. Find backend information under the Details section of the card.\n",
+ "\n",
+ " \n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "33959e16-e380-4147-8a4c-1ab3ce5db70b",
+ "metadata": {
+ "tags": [
+ "id-version"
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Name: ibm_fez\n",
+ "Version: 2\n",
+ "No. of qubits: 156\n",
+ "Processor type: {'family': 'Heron', 'revision': '2'}\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "backend = service.backend(\"ibm_fez\")\n",
+ "\n",
+ "print(\n",
+ " f\"Name: {backend.name}\\n\"\n",
+ " f\"Version: {backend.backend_version}\\n\"\n",
+ " f\"No. of qubits: {backend.num_qubits}\\n\"\n",
+ " f\"Processor type: {backend.processor_type}\\n\"\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e6b3f5c2-7774-4377-8f5e-666c28a6632d",
+ "metadata": {},
+ "source": [
+ "### QPU versioning\n",
+ "\n",
+ "Each QPU has a version number in the form X.Y.Z (major.minor.revision). A circuit compiled for a given version number is guaranteed to run on that QPU. If the revision number changes, the circuit will continue to run. If the major or minor number changes, the circuit is not guaranteed to run, although it may do so.\n",
+ "\n",
+ "The revision version number will increment for fixes that do not break the existing compiled circuit.\n",
+ "\n",
+ "The conditions under which a version or revision number can change are listed in the following table.\n",
+ "\n",
+ "| Major version | Minor version | Revision version |\n",
+ "| --- | --- | --- |\n",
+ "|Sample changes| Warmup / cool-down cycles | QPU software updates |\n",
+ "|Major changes to the control electronics| Swapping out some electronics, if the replacement appreciably affects operation| Manual calibrations to improve fidelities |\n",
+ "|Moving the QPU to a new location, if significant behavior changes result| Dropping a gate for some duration of time due to calibration issues, and corrections cannot readily be done in software| Small electronics changes that don’t affect operation |\n",
+ "| |Changing the direction of a CNOT gate | |"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "ad25ea31-6048-4001-996a-0c0f572c3835",
+ "metadata": {},
+ "source": [
+ "\n",
+ "### Supported instructions\n",
+ "\n",
+ "Each [processor family](/docs/guides/processor-types) natively supports a limited set of instructions. This set includes single- and two-qubit gates, as well as non-unitary operations such as measure and reset. Every gate in the circuit must be translated (by the transpiler) to the elements of a QPU's supported instruction set before it can run on the QPU.\n",
+ "\n",
+ "You can view the supported instruction sets for a QPU with Qiskit. The IBM Quantum Platform Compute resources page lists only the supported unitary gates (basis gates) for a QPU.\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " Navigate to the [Compute resources](https://quantum.cloud.ibm.com/computers) page to view a table of all QPUs, then click the name of any QPU to open its detailed information card. The supported instructions for that QPU are listed in the Details section.\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "### Table of supported instructions\n",
+ "\n",
+ "| Operation category | Name |\n",
+ "| :--- | :--- |\n",
+ "| Single-qubit gates | [`RZ`](/docs/api/qiskit/qiskit.circuit.library.RZGate), [`SX`](/docs/api/qiskit/qiskit.circuit.library.SXGate), [`X`](/docs/api/qiskit/qiskit.circuit.library.XGate), [`ID`](/docs/api/qiskit/qiskit.circuit.library.IGate), [`delay`](/docs/api/qiskit/circuit#qiskit.circuit.Delay) |\n",
+ "| Two-qubit gates | [`CZ`](/docs/api/qiskit/qiskit.circuit.library.CZGate), [`ECR`](/docs/api/qiskit/qiskit.circuit.library.ECRGate)|\n",
+ "| Fractional gates | [`RX`](/docs/api/qiskit/qiskit.circuit.library.RXGate) (single-qubit), [`RZZ`](/docs/api/qiskit/qiskit.circuit.library.RZZGate) (two-qubit) |\n",
+ "| Non-unitary instructions | [`measure`](/docs/api/qiskit/circuit#qiskit.circuit.Measure), [`reset`](/docs/api/qiskit/circuit#qiskit.circuit.Reset) |\n",
+ "| Control flow | [`if_else`](/docs/api/qiskit/qiskit.circuit.IfElseOp) (classical feedforward) |"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "49cd9135-6e76-470a-a12f-34ea92ff6f35",
+ "metadata": {
+ "tags": [
+ "id-gates"
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Backend: ibm_kingston\n",
+ " Processor type: {'family': 'Heron', 'revision': '2'}\n",
+ " Supported instructions: ['cz', 'id', 'delay', 'measure', 'measure_2', 'reset', 'rz', 'sx', 'x', 'if_else']\n"
+ ]
+ }
+ ],
+ "source": [
+ "from qiskit_ibm_runtime import QiskitRuntimeService\n",
+ "\n",
+ "service = QiskitRuntimeService()\n",
+ "backend = service.backend(\"ibm_kingston\")\n",
+ "\n",
+ "print(f\"Backend: {backend.name}\")\n",
+ "print(f\" Processor type: {backend.processor_type}\")\n",
+ "print(f\" Supported instructions: {backend.supported_instructions}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "76e11b79-f332-4397-8afd-9cddc96f7e17",
+ "metadata": {},
+ "source": [
+ "## Dynamic backend information\n",
+ "\n",
+ "Backends can also have properties that change whenever the backed is calibrated, such as qubit frequency and operation error rates. Backend properties update after the calibration sequence completes. These properties can be used when optimizing quantum circuits or to construct noise models for a classical simulator. See the [Calibration jobs](/docs/guides/calibration-jobs) guide for more information.\n",
+ "\n",
+ "\n",
+ "\n",
+ "Click to view qubit properties
\n",
+ "\n",
+ "### Qubit properties\n",
+ "\n",
+ "`backend.properties().qubit_property()` returns information about the qubits' physical attributes. It contains a dictionary of various properties of the qubit, each paired with its value and the timestamp of the last calibration.\n",
+ "\n",
+ "The following code examples demonstrate how to list all properties, or retrieve specific properties, of a particular qubit.\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ "\n",
+ "\n",
+ "#### `T1` (Relaxation time)\n",
+ "\n",
+ "The $T_1$ time represents the average duration a qubit remains in its excited state $|1\\rangle$ before decaying to its ground state $|0\\rangle$ due to energy relaxation. This parameter is used to characterize the qubit's energy relaxation behavior, and is expressed in units of seconds (s).\n",
+ "\n",
+ "| | |\n",
+ "| --- | --- |\n",
+ "| **View with Qiskit** | `backend.properties().t1()` |\n",
+ "| **View on IBM Quantum Platform** | Calibration data section, Qubit dropdown menu |\n",
+ "\n",
+ "#### `T2` (Dephasing time)\n",
+ "\n",
+ "The $T_2$ time denotes the timescale over which a qubit maintains phase coherence of a superposition between the $|0\\rangle$ and $|1\\rangle$ states. It accounts for both energy relaxation and pure dephasing processes, providing insight into the qubit's coherence properties.\n",
+ "\n",
+ "| | |\n",
+ "| --- | --- |\n",
+ "| **View with Qiskit** | `backend.properties().t2()` |\n",
+ "| **View on IBM Quantum Platform** | Calibration data section, Qubit dropdown menu |\n",
+ "\n",
+ "#### `frequency`\n",
+ "\n",
+ "This parameter specifies the resonant frequency of the qubit, indicating the energy difference between the $|0\\rangle$ and $|1\\rangle$ states, expressed in hertz (Hz).\n",
+ "\n",
+ "| | |\n",
+ "| --- | --- |\n",
+ "| **View with Qiskit** | `backend.properties().frequency()` |\n",
+ "| **View on IBM Quantum Platform** | n/a |\n",
+ "\n",
+ "#### `anharmonicity`\n",
+ "\n",
+ "Anharmonicity is the difference in energy between the first and second excited states of the qubit, also expressed in hertz (Hz).\n",
+ "\n",
+ "| | |\n",
+ "| --- | --- |\n",
+ "| **View with Qiskit** | `backend.properties().qubit_property(, 'anharmonicity')`|\n",
+ "| **View on IBM Quantum Platform** | n/a |\n",
+ "\n",
+ "#### `readout_error`\n",
+ "\n",
+ "The readout assignment error quantifies the average probability of incorrectly measuring a qubit's state. It is commonly calculated as the mean of `prob_meas0_prep1` and `prob_meas1_prep0`, providing a single metric for measurement fidelity.\n",
+ "\n",
+ "| | |\n",
+ "| --- | --- |\n",
+ "| **View with Qiskit** | `backend.properties().readout_error()`|\n",
+ "| **View on IBM Quantum Platform** | Calibration data section, Qubit dropdown menu |\n",
+ "\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "c92cd700-abec-4016-9550-c4030d59a4de",
+ "metadata": {
+ "tags": [
+ "id-properties"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "QubitProperties(t1=0.00020833187791710663, t2=0.00023395229316289175, frequency=None)"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# fundamental physical properties of qubit 1\n",
+ "\n",
+ "backend = service.backend(\"ibm_fez\")\n",
+ "\n",
+ "backend.qubit_properties(1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "bbbd778d-7d92-4cef-9dc9-a8f21b3538df",
+ "metadata": {
+ "tags": [
+ "id-properties1"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'T1': (5.345445238259663e-05,\n",
+ " datetime.datetime(2025, 11, 25, 6, 52, 23, tzinfo=tzlocal())),\n",
+ " 'T2': (4.569656984603511e-05,\n",
+ " datetime.datetime(2025, 11, 25, 6, 53, 9, tzinfo=tzlocal())),\n",
+ " 'readout_error': (0.01416015625,\n",
+ " datetime.datetime(2025, 11, 25, 11, 42, 11, tzinfo=tzlocal())),\n",
+ " 'prob_meas0_prep1': (0.02734375,\n",
+ " datetime.datetime(2025, 11, 25, 11, 42, 11, tzinfo=tzlocal())),\n",
+ " 'prob_meas1_prep0': (0.0009765625,\n",
+ " datetime.datetime(2025, 11, 25, 11, 42, 11, tzinfo=tzlocal())),\n",
+ " 'readout_length': (1.56e-06,\n",
+ " datetime.datetime(2025, 11, 25, 11, 42, 11, tzinfo=tzlocal()))}"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# calibration data with detailed properties of qubit 0\n",
+ "backend.properties().qubit_property(0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f9c576e7-7d23-4858-beac-bb203209b512",
+ "metadata": {
+ "tags": [
+ "id-properties2"
+ ]
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Qubit 126 Properties:\n",
+ " T1: 0.00011004519582612597 seconds\n",
+ " T2: 6.519695327562977e-05 seconds\n",
+ " Frequency: None Hz\n",
+ " Anharmonicity: None Hz\n",
+ " Readout Error: 0.003662109375\n",
+ " P(0 | 1): 0.0048828125\n",
+ " P(1 | 0): 0.00244140625\n",
+ " Readout Length: 1.56e-06 seconds\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Retrieve qubit properties\n",
+ "qubit_index = 126 # Replace with your qubit index\n",
+ "qubit_props = backend.properties().qubit_property(qubit_index)\n",
+ "\n",
+ "# Access specific properties\n",
+ "t1 = qubit_props.get(\"T1\", (None,))[0]\n",
+ "t2 = qubit_props.get(\"T2\", (None,))[0]\n",
+ "frequency = qubit_props.get(\"frequency\", (None,))[0]\n",
+ "anharmonicity = qubit_props.get(\"anharmonicity\", (None,))[0]\n",
+ "readout_error = qubit_props.get(\"readout_error\", (None,))[0]\n",
+ "prob_meas0_prep1 = qubit_props.get(\"prob_meas0_prep1\", (None,))[0]\n",
+ "prob_meas1_prep0 = qubit_props.get(\"prob_meas1_prep0\", (None,))[0]\n",
+ "readout_length = qubit_props.get(\"readout_length\", (None,))[0]\n",
+ "\n",
+ "print(f\"Qubit {qubit_index} Properties:\")\n",
+ "print(f\" T1: {t1} seconds\")\n",
+ "print(f\" T2: {t2} seconds\")\n",
+ "print(f\" Frequency: {frequency} Hz\")\n",
+ "print(f\" Anharmonicity: {anharmonicity} Hz\")\n",
+ "print(f\" Readout Error: {readout_error}\")\n",
+ "print(f\" P(0 | 1): {prob_meas0_prep1}\")\n",
+ "print(f\" P(1 | 0): {prob_meas1_prep0}\")\n",
+ "print(f\" Readout Length: {readout_length} seconds\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "71200d90-83cb-464e-9dc1-6a0eb825f85a",
+ "metadata": {},
+ "source": [
+ "\n",
+ "Click to view instruction properties
\n",
+ "\n",
+ "### Instruction properties\n",
+ "\n",
+ "2Q error (best) - I\n",
+ "2Q error (layered) - I\n",
+ "Median 2Q error I\n",
+ "Median SX error I\n",
+ "Median readout error I\n",
+ "Median T1 (relaxation time) I\n",
+ "Median T2 (dephasing time) I\n",
+ "Prob meas0 prep1 I\n",
+ "Prob meas1 prep0 I\n",
+ "Readout length (ns) - I\n",
+ "ID error / √x (sx) error / Pauli-X error / RX error I\n",
+ "Single-qubit gate length (ns) I\n",
+ "Z-axis rotation (RZ) error I\n",
+ "Gate length (ns) I\n",
+ "2Q error I\n",
+ "RZZ error I\n",
+ "\n",
+ "\n",
+ "The `backend.target` attribute is a [`qiskit.transpiler.Target`](/docs/api/qiskit/qiskit.transpiler.Target) object: an object that contains all the information needed to transpile a circuit for that backend. This includes instruction errors and durations. For example, the following cell gets the properties for a [`cz` gate](/docs/api/qiskit/qiskit.circuit.library.CZGate) acting between qubits 1 and 0.\n",
+ "\n",
+ " \n",
+ "\n",
+ "The following cell shows the properties for a measurement operation (including the readout error) on qubit 0.\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "#### `prob_meas0_prep1`\n",
+ "\n",
+ "This parameter indicates the probability of measuring a qubit in the 0 state when it was intended to be prepared in the $|1\\rangle$ state, denoted as $P(0 | 1)$. It reflects errors in state preparation and measurement (SPAM), particularly measurement errors in superconducting qubits.\n",
+ "\n",
+ "\n",
+ "| | |\n",
+ "| --- | --- |\n",
+ "| **View with Qiskit** | `backend.properties().qubit_property(, 'prob_meas0_prep1')`|\n",
+ "| **View on IBM Quantum Platform** | Calibration data section, Qubit dropdown menu |\n",
+ "\n",
+ "#### `prob_meas1_prep0`\n",
+ "\n",
+ "Similarly, this parameter represents the probability of measuring a qubit in the 1 state when it was intended to be prepared in the $|0\\rangle$ state, denoted as $P(1 | 0)$. Like prob_meas0_prep1, it reflects SPAM errors, with measurement errors being the predominant contributor in superconducting qubits.\n",
+ "\n",
+ "| | |\n",
+ "| --- | --- |\n",
+ "| **View with Qiskit** | `backend.properties().qubit_property(, 'prob_meas0_prep0')`|\n",
+ "| **View on IBM Quantum Platform** | Calibration data section, Qubit dropdown menu |\n",
+ "\n",
+ "#### `readout_length`\n",
+ "\n",
+ "The `readout_length` specifies the duration of the readout operation for a qubit. It measures the time from the initiation of the measurement pulse to the completion of signal digitization, after which the system is ready for the next operation. Understanding this parameter is crucial for optimizing circuit execution, especially when incorporating mid-circuit measurements.\n",
+ "\n",
+ "| | |\n",
+ "| --- | --- |\n",
+ "| **View with Qiskit** | `backend.properties().readout_length()`|\n",
+ "| **View on IBM Quantum Platform** | Calibration data section, Qubit dropdown menu |\n",
+ "\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "61adc2b1-7d41-464e-9880-47ab14724491",
+ "metadata": {
+ "tags": [
+ "id-instructions"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "InstructionProperties(duration=6.8e-08, error=0.007854516178238763)"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "backend.target[\"cz\"][(1, 0)]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "e8bae3f3-7ff6-4799-a16c-00093bad9065",
+ "metadata": {
+ "tags": [
+ "id-instructions1"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "InstructionProperties(duration=1.56e-06, error=0.01416015625)"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "backend.target[\"measure\"][(0,)]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e687565c-422b-45ab-8715-3b013a88efed",
+ "metadata": {},
+ "source": [
+ "\n",
+ "Click to view additional properties
\n",
+ "\n",
+ "### Additional properties\n",
+ "\n",
+ "\n",
+ "CLOPS (or CLOPS_h) - A\n",
+ "Status - A\n",
+ "Total pending jobs - A\n",
+ "Topology diagram or coupling map A\n",
+ "\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a249cc24-f9d0-4503-9278-1344366e1300",
+ "metadata": {},
+ "source": [
+ "## Find QPU details on IBM Quantum Platform\n",
+ "\n",
+ "In addition to finding details programmatically, you can also use IBM Quantum Platform to view information about specific QPUs. Navigate to the [Compute resources](https://quantum.cloud.ibm.com/computers) page to view a table of all QPUs, then click the name of any QPU to open its detailed information card. The card contains details such as error rates, calibration data, and more.\n",
+ "\n",
+ "### Details section\n",
+ "\n",
+ "The first section of the QPU information card provides the following QPU details:\n",
+ "\n",
+ "[Name](#name) | [Qubits](#qubits) | [2Q error (best)](#2q-error-best) | [2Q error (layered)](#2q-error-layered) | [CLOPS (or CLOPS_h)](#clops-or-clops_h) | [Status](#status) | [Region](#region) | [QPU version](#qpu-version) | [Processor type](#processor-type) | [Basis gates](#native-gates-on-platform) | [Total pending jobs](#total-pending-jobs) | [Median 2Q error](#median-2q-error-heron-cz-eagle-ecr) |\n",
+ "[Median SX error](#median-sx-error) | [Median readout error](#median-readout-error) | [Median T1 (relaxation time)](#median-t1-relaxation-time) | [Median T2 (dephasing time)](#median-t2-dephasing-time)\n",
+ "\n",
+ "\n",
+ "Click to view details
\n",
+ "#### Name\n",
+ "\n",
+ "The unique name assigned to a specific QPU. QPUs hosted on IBM Cloud® have names that begin with `ibm_*`. All QPUs are given a city name, e.g., `ibm_kingston`. This name does not indicate where the actual QPU is hosted. They are named after IBM® locations around the world.\n",
+ "\n",
+ "#### Qubits\n",
+ "\n",
+ "The number of physical qubits in a QPU.\n",
+ "\n",
+ "#### 2Q error (best)\n",
+ "\n",
+ "The lowest two-qubit (2Q) error on any edge of the device from the same batch of measurements used to calculate the median (see [Median 2Q error](#median-2q-error-heron-cz-eagle-ecr)).\n",
+ "\n",
+ "#### 2Q error (layered)\n",
+ "\n",
+ "Average error per layered gate (EPLG) in a chain of 100 qubits. Average EPLG measures the average gate error in a layered chain of $N$ qubits ($N$=100 here). It is derived from a similar quantity known as the layer fidelity (LF) where EPLG$_{100}$ = 4/5(1-LF$^{\\frac{1}{99}}$) and layer fidelity is the process fidelity of the layered chain of $N$ qubits. For details, see the paper [Benchmarking quantum processor performance at scale](https://arxiv.org/abs/2311.05933). Note that in the paper EPLG is defined for process error, but for consistency with the individually reported gate errors here it is quoted for average gate error, thus the factor of 4/5. Find an [example notebook](https://github.com/qiskit-community/qiskit-device-benchmarking/blob/main/notebooks/layer_fidelity_single_chain.ipynb) in the Qiskit Community GitHub.\n",
+ "\n",
+ "#### CLOPS (or CLOPS_h)\n",
+ "\n",
+ "Circuit layer operations per second, is a measure of how many layers of a 100x100 circuit (hardware-aware circuit) a QPU (quantum processing unit) can execute per unit of time. Find the [CLOPS code](https://github.com/qiskit-community/qiskit-device-benchmarking/tree/main/qiskit_device_benchmarking/clops#readme) in the Qiskit Community GitHub.\n",
+ "\n",
+ "#### Status\n",
+ "\n",
+ "The QPU status; for example, `Online`, `Paused`, `Offline`, and so on.\n",
+ "\n",
+ "#### Region\n",
+ "\n",
+ "Location of the data center where your data and experiments will be hosted and processed.\n",
+ "\n",
+ "#### QPU version\n",
+ "\n",
+ "The version number of a QPU in the form `major.minor.revision`. See [QPU versioning](#qpu-versioning) for details on how this number is assigned.\n",
+ "\n",
+ "#### Processor type\n",
+ "\n",
+ "Reflects the [topology](#coupling-map) and indicates the approximate qubit count.\n",
+ "\n",
+ "\n",
+ "#### Basis gates\n",
+ "\n",
+ "Each [processor family](/docs/guides/processor-types) has a native gate set. By default, the QPUs in each family only support running the gates and operations in the native gate set. Thus, every gate in the circuit must be translated (by the transpiler) to the elements of this set. Note that the non-unitary operations are not listed here; use the [method in Qiskit](/docs/guides/qpu-information#native-gates-ops) to see all native gates and operations for a QPU. See a list of all native gates in [this table](#native-gates).\n",
+ "\n",
+ "#### Total pending jobs\n",
+ "\n",
+ "The total number of jobs that you have submitted to this QPU.\n",
+ "\n",
+ "#### Median 2Q error (Heron: CZ, Eagle: ECR)\n",
+ "\n",
+ "[Average gate fidelity](/docs/api/qiskit/quantum_info#average_gate_fidelity) of the two-qubit operation from randomized benchmarking. Measured in \"isolation\": batches with a minimum separation of two qubits between edges. This randomized benchmarking uses alternating layers of single-qubit Cliffords and two-qubit gates, and thus the final 2Q error value includes the error of the layer of single-qubit Cliffords. Find an [example notebook](https://github.com/qiskit-community/qiskit-device-benchmarking/blob/main/notebooks/device_rb_w_lf.ipynb) in the Qiskit Community GitHub. Find per-edge data in the [calibration data](#calibration-data) section of the QPU information card.\n",
+ "\n",
+ "#### Median SX error\n",
+ "\n",
+ "[Average gate fidelity](/docs/api/qiskit/quantum_info#average_gate_fidelity) of the √X (SX) gate from randomized benchmarking, measured simultaneously on all qubits. The randomized benchmarking sequence includes SX, ID, and X gates, and it is assumed their errors are the same.\n",
+ "\n",
+ "#### Median readout error\n",
+ "\n",
+ "Fidelity of the readout operation. Readout error is measured by preparing the qubit in the 0 (1) state and measuring the probability of an output in the 1 (0) state. The reported value is the average of these two errors. The median is taken over all qubits.\n",
+ "\n",
+ "#### Median T1 (relaxation time)\n",
+ "\n",
+ "The $T_1$ time represents the average duration a qubit remains in its excited state $|1\\rangle$ before decaying to its ground state $|0\\rangle$ due to energy relaxation. This parameter is used to characterize the qubit's energy relaxation behavior, and is expressed in units of seconds (s).\n",
+ "\n",
+ "#### Median T2 (dephasing time)\n",
+ "\n",
+ "The $T_2$ time denotes the timescale over which a qubit maintains phase coherence of a superposition between the $|0\\rangle$ and $|1\\rangle$ states. It accounts for both energy relaxation and pure dephasing processes, providing insight into the qubit's coherence properties. $T_2$ is reported from a Hahn echo sequence.\n",
+ " \n",
+ "\n",
+ "\n",
+ "### Calibration data section\n",
+ "\n",
+ "\n",
+ "If the benchmarking of a qubit or edge does not succeed over the course of several days, whether due to poor data quality or other internal factors, the reported error value is considered stale and will be reported as 1. This is not an indication that the qubit or edge is necessarily non-working or that the error is 1; rather, the error is considered undefined and you should proceed with caution when operating that qubit or gate.\n",
+ "\n",
+ "\n",
+ "The second section, Calibration data, provides qubit, connectivity, and gate data. You can choose to visualize the information as a map, graph, or table.\n",
+ "\n",
+ "You can customize the data that is shown in each view, using the drop-down menus. For example, in the map view, you can choose the data you want to see for qubits and connections. The colored bars associated with the diagram or graph indicate the range that is shown, with the average value marked. The color maximum and minimum change depending on the QPU.\n",
+ "\n",
+ "To download calibration data as a CSV file, click the download icon in the upper right corner of the Calibration data section.\n",
+ "\n",
+ "The Calibration data section includes the following:\n",
+ "\n",
+ "[Topology diagram or coupling map](#coupling-map) | [Readout assignment error](#readout-assignment-error) | [Prob meas0 prep1](#prob-meas0-prep1) | [Prob meas1 prep0](#prob-meas1-prep0) | [Readout length (ns)](#readout-length-ns) | [ID error / √x (sx) error / Pauli-X error / RX error](#finite-duration-discrete) | [Single-qubit gate length (ns)](#single-qubit-gate-length-ns)| [Z-axis rotation (RZ) error](#z-axis-rotation-rz-error) | [Operational](#operational) | [Gate length (ns)](#gate-length-ns) | [2Q error](#2q-error) | [RZZ error](#rzz-error-heron)\n",
+ "\n",
+ "\n",
+ "Click to view calibration details
\n",
+ "\n",
+ "\n",
+ "#### Topology diagram or coupling map\n",
+ "\n",
+ "A diagram that indicates the pairs of qubits that support two-qubit gate operations between them. This is also called the coupling map or connectivity. Qubits are represented as circles and the supported two-qubit gate operations are displayed as lines connecting the qubits.\n",
+ "\n",
+ "#### Readout assignment error\n",
+ "\n",
+ "The readout error quantifies the average probability of incorrectly measuring a qubit's state. It is commonly calculated as the mean of prob_meas0_prep1 and prob_meas1_prep0, providing a single metric for measurement fidelity.\n",
+ "\n",
+ "#### Prob meas0 prep1\n",
+ "\n",
+ "This parameter indicates the probability of measuring a qubit in the $|0\\rangle$ state when it was intended to be prepared in the $|1\\rangle$ state, denoted as $P(0|1)$. It reflects errors in state preparation and measurement (SPAM), particularly measurement errors in superconducting qubits.\n",
+ "\n",
+ "#### Prob meas1 prep0\n",
+ "\n",
+ "Similarly, this parameter represents the probability of measuring a qubit in the $|1\\rangle$ state when it was intended to be prepared in the $|0\\rangle$ state, denoted as $P(1|0)$. Like prob_meas0_prep1, it reflects SPAM errors, with measurement errors being the predominant contributor in superconducting qubits.\n",
+ "\n",
+ "#### Readout length (ns)\n",
+ "\n",
+ "The readout_length specifies the duration of the readout operation for a qubit. It measures the time from the initiation of the measurement pulse to the completion of signal digitization, after which the system is ready for the next operation. Understanding this parameter is crucial for optimizing circuit execution, especially when incorporating mid-circuit measurements.\n",
+ "\n",
+ "\n",
+ "#### ID error / √x (sx) error / Pauli-X error / RX error\n",
+ "\n",
+ "Error in the finite-duration discrete one-qubit gates, measured from randomized benchmarking. The randomized benchmarking sequence includes SX, ID, and X gates, and it is assumed their errors are the same. The ID gate is a delay of duration equal to the duration of the √X and X gates. The RX gate is also the same duration as the √X and X gates with variable amplitude, and so it is reported as having the same error as these gates.\n",
+ "\n",
+ "#### Single-qubit gate length (ns)\n",
+ "\n",
+ "Duration of a single-qubit gate operation.\n",
+ "\n",
+ "#### Z-axis rotation (RZ) error\n",
+ "\n",
+ "Error in the virtual RZ gate. Reported as all 0 since these are performed in software.\n",
+ "\n",
+ "#### Operational\n",
+ "\n",
+ "Indicates whether the qubit can be utilized in circuits.\n",
+ "\n",
+ "#### Gate length (ns)\n",
+ "\n",
+ "Duration of the two-qubit gate operation.\n",
+ "\n",
+ "\n",
+ "#### 2Q error (Heron: CZ, Eagle: ECR)\n",
+ "\n",
+ "The 2Q error per edge from the same batch of measurements used to calculate the [2Q median](#median-2q-error-heron-cz-eagle-ecr) and [2Q best](#2q-error-best) errors.\n",
+ "\n",
+ "#### RZZ error (Heron)\n",
+ "\n",
+ "Error in the RZZ gate averaged over the RZZ angles using a variant of randomized benchmarking for arbitrary unitaries.\n",
+ " \n",
+ "\n",
+ "### Two-qubit gate error (layered) section\n",
+ "\n",
+ "The third section provides the expanded view of the lowest `two-qubit gate error (layered)` measured as a function of the number of qubits in the chain. The final value, at chain length 100, is the value presented in the Details section. In practice, six 100-qubit chains (pre-selected based on expected optimal performance) are measured, and the value reported for number of qubits `N` is the lowest error found in a subset length `N` chain searching over the six 100-qubit chains."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "332d7638-6fd4-431e-a3da-4c4ca668b27f",
+ "metadata": {},
+ "source": [
+ "## Next steps\n",
+ "\n",
+ "\n",
+ " - Try the [Grover's algorithm](/docs/tutorials/grovers-algorithm) tutorial.\n",
+ " - Review the [QiskitRuntime backend API](/docs/api/qiskit-ibm-runtime/qiskit-runtime-service#backend) reference.\n",
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "description": "List and filter available backends, and find QPU details such as configuration and calibration data.",
+ "in_page_toc_max_heading_level": 2,
+ "in_page_toc_min_heading_level": 2,
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3"
+ },
+ "title": "View backend details"
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/docs/guides/qpu-information.mdx b/docs/guides/qpu-information.mdx
deleted file mode 100644
index fd507400425..00000000000
--- a/docs/guides/qpu-information.mdx
+++ /dev/null
@@ -1,210 +0,0 @@
----
-title: QPU information
-description: Information about QPU calibration, properties, and versioning
-in_page_toc_min_heading_level: 2
-in_page_toc_max_heading_level: 2
----
-
-# QPU information
-
-IBM® offers access to a wide variety of quantum processing units (QPUs). All QPUs deployed by IBM are based on superconducting qubit technology, as the control and scalability of this technology pave a clear path to achieving quantum advantage with these QPUs.
-
-Explore all public IBM QPUs by navigating to the [Compute resources](https://quantum.cloud.ibm.com/computers) page on IBM Quantum® Platform. Click any QPU to open its detailed information card.
-
-This page describes the detailed information you will find on the QPU information card.
-
-## QPU versioning
-
-Each QPU has a version number in the form X.Y.Z (major.minor.revision). A circuit compiled for a given version number is guaranteed to run on that QPU. If the revision number changes, the circuit will continue to run. If the major or minor number changes, the circuit is not guaranteed to run, although it may do so. The conditions under which a version number may change are listed below:
-
-### Major version
-
-The major version will increment for changes such as:
-
-* Sample changes.
-* Major changes to the control electronics.
-* Moving the QPU to a new location, if significant behavior changes result.
-
-### Minor version
-
-The minor version will increment for changes such as:
-
-* Warmup / cool-down cycles.
-* Swapping out some electronics, if the replacement appreciably affects operation.
-* Changing the direction of a controlled-NOT gate.
-* Dropping a gate for some duration of time due to calibration issues, and corrections cannot readily be done in software.
-
-### Revision version
-
-The revision version number will increment for fixes that do not break the existing compiled circuit. These changes include:
-
-* Manual calibrations to improve fidelities.
-* Small electronics changes that don’t affect operation.
-* QPU software updates.
-
-## QPU details
-
-The first section of the QPU information card provides the following QPU details:
-
-[Name](#name) | [Qubits](#qubits) | [2Q error (best)](#2q-error-best) | [2Q error (layered)](#2q-error-layered) | [CLOPS (or CLOPS_h)](#clops-or-clops_h) | [Status](#status) | [Region](#region) | [QPU version](#qpu-version) | [Processor type](#processor-type) | [Basis gates](#native-gates-on-platform) | [Total pending jobs](#total-pending-jobs) | [Median 2Q error](#median-2q-error-heron-cz-eagle-ecr) |
-[Median SX error](#median-sx-error) | [Median readout error](#median-readout-error) | [Median T1 (relaxation time)](#median-t1-relaxation-time) | [Median T2 (dephasing time)](#median-t2-dephasing-time)
-
-### Name
-
-The unique name assigned to a specific QPU. QPUs hosted on IBM Cloud® have names that begin with `ibm_*`. All QPUs are given a city name, e.g., `ibm_kingston`. This name does not indicate where the actual QPU is hosted. They are named after IBM® locations around the world.
-
-### Qubits
-
-The number of physical qubits in a QPU.
-
-### 2Q error (best)
-
-The lowest two-qubit (2Q) error on any edge of the device from the same batch of measurements used to calculate the median (see [Median 2Q error](#median-2q-error-heron-cz-eagle-ecr)).
-
-### 2Q error (layered)
-
-Average error per layered gate (EPLG) in a chain of 100 qubits. Average EPLG measures the average gate error in a layered chain of $N$ qubits ($N$=100 here). It is derived from a similar quantity known as the layer fidelity (LF) where EPLG$_{100}$ = 4/5(1-LF$^{\frac{1}{99}}$) and layer fidelity is the process fidelity of the layered chain of $N$ qubits. For details, see the paper [Benchmarking quantum processor performance at scale](https://arxiv.org/abs/2311.05933). Note that in the paper EPLG is defined for process error, but for consistency with the individually reported gate errors here it is quoted for average gate error, thus the factor of 4/5. Find an [example notebook](https://github.com/qiskit-community/qiskit-device-benchmarking/blob/main/notebooks/layer_fidelity_single_chain.ipynb) in the Qiskit Community GitHub.
-
-### CLOPS (or CLOPS_h)
-
-Circuit layer operations per second, is a measure of how many layers of a 100x100 circuit (hardware-aware circuit) a QPU (quantum processing unit) can execute per unit of time. Find the [CLOPS code](https://github.com/qiskit-community/qiskit-device-benchmarking/tree/main/qiskit_device_benchmarking/clops#readme) in the Qiskit Community GitHub.
-
-### Status
-
-The QPU status; for example, `Online`, `Paused`, `Offline`, and so on.
-
-### Region
-
-Location of the data center where your data and experiments will be hosted and processed.
-
-### QPU version
-
-The version number of a QPU in the form `major.minor.revision`. See [QPU versioning](#qpu-versioning) for details on how this number is assigned.
-
-### Processor type
-
-Reflects the [topology](#coupling-map) and indicates the approximate qubit count.
-
-
-### Basis gates
-
-Each [processor family](/docs/guides/processor-types) has a native gate set. By default, the QPUs in each family only support running the gates and operations in the native gate set. Thus, every gate in the circuit must be translated (by the transpiler) to the elements of this set. Note that the non-unitary operations are not listed here; use the [method in Qiskit](/docs/guides/get-qpu-information#native-gates-with-qiskit) to see all native gates and operations for a QPU. See a list of all native gates in [this table](#native-gates).
-
-### Total pending jobs
-
-The total number of jobs that you have submitted to this QPU.
-
-### Median 2Q error (Heron: CZ, Eagle: ECR)
-
-[Average gate fidelity](/docs/api/qiskit/quantum_info#average_gate_fidelity) of the two-qubit operation from randomized benchmarking. Measured in "isolation": batches with a minimum separation of two qubits between edges. This randomized benchmarking uses alternating layers of single-qubit Cliffords and two-qubit gates, and thus the final 2Q error value includes the error of the layer of single-qubit Cliffords. Find an [example notebook](https://github.com/qiskit-community/qiskit-device-benchmarking/blob/main/notebooks/device_rb_w_lf.ipynb) in the Qiskit Community GitHub. Find per-edge data in the [calibration data](#calibration-data) section of the QPU information card.
-
-### Median SX error
-
-[Average gate fidelity](/docs/api/qiskit/quantum_info#average_gate_fidelity) of the √X (SX) gate from randomized benchmarking, measured simultaneously on all qubits. The randomized benchmarking sequence includes SX, ID, and X gates, and it is assumed their errors are the same.
-
-### Median readout error
-
-Fidelity of the readout operation. Readout error is measured by preparing the qubit in the 0 (1) state and measuring the probability of an output in the 1 (0) state. The reported value is the average of these two errors. The median is taken over all qubits.
-
-### Median T1 (relaxation time)
-
-The T1 time represents the average duration a qubit remains in its excited state $|1\rangle$ before decaying to its ground state $|0\rangle$ due to energy relaxation. This parameter is used to characterize the qubit's energy relaxation behavior, and is expressed in units of seconds (s).
-
-### Median T2 (dephasing time)
-
-The T2 time denotes the timescale over which a qubit maintains phase coherence of a superposition between the $|0\rangle$ and $|1\rangle$ states. It accounts for both energy relaxation and pure dephasing processes, providing insight into the qubit's coherence properties. T2 is reported from a Hahn echo sequence.
-
-## Calibration data
-
-
-If the benchmarking of a qubit or edge does not succeed over the course of several days, whether due to poor data quality or other internal factors, the reported error value is considered stale and will be reported as 1. This is not an indication that the qubit or edge is necessarily non-working or that the error is 1; rather, the error is considered undefined and you should proceed with caution when operating that qubit or gate.
-
-
-The second section, Calibration data, provides qubit, connectivity, and gate data. You can choose to visualize the information as a map, graph, or table.
-
-You can customize the data that is shown in each view, using the drop-down menus. For example, in the map view, you can choose the data you want to see for qubits and connections. The colored bars associated with the diagram or graph indicate the range that is shown, with the average value marked. The color maximum and minimum change depending on the QPU.
-
-To download calibration data as a CSV file, click the download icon in the upper right corner of the Calibration data section.
-
-In addition to the information provided in the Details section of the card, the Calibration data section also includes the following:
-
-[Topology diagram or coupling map](#coupling-map) | [Readout assignment error](#readout-assignment-error) | [Prob meas0 prep1](#prob-meas0-prep1) | [Prob meas1 prep0](#prob-meas1-prep0) | [Readout length (ns)](#readout-length-ns) | [ID error / √x (sx) error / Pauli-X error / RX error](#finite-duration-discrete) | [Single-qubit gate length (ns)](#single-qubit-gate-length-ns)| [Z-axis rotation (RZ) error](#z-axis-rotation-rz-error) | [Operational](#operational) | [Gate length (ns)](#gate-length-ns) | [2Q error](#2q-error) | [RZZ error](#rzz-error-heron)
-
-
-### Topology diagram or coupling map
-
-A diagram that indicates the pairs of qubits that support two-qubit gate operations between them. This is also called the coupling map or connectivity. Qubits are represented as circles and the supported two-qubit gate operations are displayed as lines connecting the qubits.
-
-### Readout assignment error
-
-The readout error quantifies the average probability of incorrectly measuring a qubit's state. It is commonly calculated as the mean of prob_meas0_prep1 and prob_meas1_prep0, providing a single metric for measurement fidelity.
-
-### Prob meas0 prep1
-
-This parameter indicates the probability of measuring a qubit in the $|0\rangle$ state when it was intended to be prepared in the $|1\rangle$ state, denoted as $P(0|1)$. It reflects errors in state preparation and measurement (SPAM), particularly measurement errors in superconducting qubits.
-
-### Prob meas1 prep0
-
-Similarly, this parameter represents the probability of measuring a qubit in the $|1\rangle$ state when it was intended to be prepared in the $|0\rangle$ state, denoted as $P(1|0)$. Like prob_meas0_prep1, it reflects SPAM errors, with measurement errors being the predominant contributor in superconducting qubits.
-
-### Readout length (ns)
-
-The readout_length specifies the duration of the readout operation for a qubit. It measures the time from the initiation of the measurement pulse to the completion of signal digitization, after which the system is ready for the next operation. Understanding this parameter is crucial for optimizing circuit execution, especially when incorporating mid-circuit measurements.
-
-
-### ID error / √x (sx) error / Pauli-X error / RX error
-
-Error in the finite-duration discrete one-qubit gates, measured from randomized benchmarking. The randomized benchmarking sequence includes SX, ID, and X gates, and it is assumed their errors are the same. The ID gate is a delay of duration equal to the duration of the √X and X gates. The RX gate is also the same duration as the √X and X gates with variable amplitude, and so it is reported as having the same error as these gates.
-
-### Single-qubit gate length (ns)
-
-Duration of a single-qubit gate operation.
-
-### Z-axis rotation (RZ) error
-
-Error in the virtual RZ gate. Reported as all 0 since these are performed in software.
-
-### Operational
-
-Indicates whether the qubit can be utilized in circuits.
-
-### Gate length (ns)
-
-Duration of the two-qubit gate operation.
-
-
-### 2Q error (Heron: CZ, Eagle: ECR)
-
-The 2Q error per edge from the same batch of measurements used to calculate the [2Q median](#median-2q-error-heron-cz-eagle-ecr) and [2Q best](#2q-error-best) errors.
-
-### RZZ error (Heron)
-
-Error in the RZZ gate averaged over the RZZ angles using a variant of randomized benchmarking for arbitrary unitaries.
-
-
-## Two-qubit gate error (layered)
-
-The third section provides the expanded view of the lowest `two-qubit gate error (layered)` measured as a function of the number of qubits in the chain. The final value, at chain length 100, is the value presented in the Details section. In practice, six 100-qubit chains (pre-selected based on expected optimal performance) are measured, and the value reported for number of qubits `N` is the lowest error found in a subset length `N` chain searching over the six 100-qubit chains.
-
-
-## View your resources
-
-To find your available QPUs, open the [Compute resources](https://quantum.cloud.ibm.com/computers) page (make sure you are signed in). Note that your selected region might impact the QPUs listed. Click a QPU to view its details.
-
-You can also view your available QPUs by using the [backends API.](/docs/api/qiskit-ibm-runtime/qiskit-runtime-service#backends) For example, the following code will return all of the backends that the specified instance (`my_instance`) can access:
-
-```python
- QiskitRuntimeService(instance="my_instance_CRN")
- service.backends()
-```
-
-
-## Table of native gates and operations
-
-| Operation category | Name |
-| :--- | :--- |
-| Single-qubit gates | [`RZ`](/docs/api/qiskit/qiskit.circuit.library.RZGate), [`SX`](/docs/api/qiskit/qiskit.circuit.library.SXGate), [`X`](/docs/api/qiskit/qiskit.circuit.library.XGate), [`ID`](/docs/api/qiskit/qiskit.circuit.library.IGate), [`delay`](/docs/api/qiskit/circuit#qiskit.circuit.Delay) |
-| Two-qubit gates | [`CZ`](/docs/api/qiskit/qiskit.circuit.library.CZGate), [`ECR`](/docs/api/qiskit/qiskit.circuit.library.ECRGate)|
-| Fractional gates | [`RX`](/docs/api/qiskit/qiskit.circuit.library.RXGate) (single-qubit), [`RZZ`](/docs/api/qiskit/qiskit.circuit.library.RZZGate) (two-qubit) |
-| Non-unitary instructions | [`measure`](/docs/api/qiskit/circuit#qiskit.circuit.Measure), [`reset`](/docs/api/qiskit/circuit#qiskit.circuit.Reset) |
-| Control flow | [`if_else`](/docs/api/qiskit/qiskit.circuit.IfElseOp) (classical feedforward) |
\ No newline at end of file
diff --git a/docs/guides/quick-start.ipynb b/docs/guides/quick-start.ipynb
index 75a4ffb4d6d..a78836d2b99 100644
--- a/docs/guides/quick-start.ipynb
+++ b/docs/guides/quick-start.ipynb
@@ -231,7 +231,7 @@
"## Next steps\n",
"\n",
"\n",
- "- Run a circuit on real quantum hardware in the [Hello world](/docs/tutorials/hello-world) tutorial.\n",
+ "- Run a circuit on real quantum hardware in the [Hello world](/docs/guides/hello-world) tutorial.\n",
"- Not ready to run on hardware? Start your quantum journey with the [Basics of quantum information](/learning/courses/basics-of-quantum-information) course.\n",
""
]
diff --git a/docs/guides/represent-quantum-computers.ipynb b/docs/guides/represent-quantum-computers.ipynb
index 8bc7ec89412..36570c9f190 100644
--- a/docs/guides/represent-quantum-computers.ipynb
+++ b/docs/guides/represent-quantum-computers.ipynb
@@ -37,8 +37,8 @@
"source": [
"To convert an abstract circuit to an ISA circuit that can run on a specific QPU (quantum processing unit), the transpiler needs certain information about the QPU. This information is found in two places: the `BackendV2` (or legacy `BackendV1`) object you plan to submit jobs to, and the backend's `Target` attribute.\n",
"\n",
- "- The [`Target`](../api/qiskit/qiskit.transpiler.Target) contains all the relevant constraints of a device, such as its native basis gates, qubit connectivity, and pulse or timing information.\n",
- "- The [`Backend`](../api/qiskit/qiskit.providers.BackendV2) possesses a `Target` by default, contains additional information -- such as the [`InstructionScheduleMap`](/docs/api/qiskit/1.4/qiskit.pulse.InstructionScheduleMap), and provides the interface for submitting quantum circuit jobs.\n",
+ "- The [`Target`](/docs/api/qiskit/qiskit.transpiler.Target) contains all the relevant constraints of a device, such as its supported instruction set, qubit connectivity, and pulse or timing information.\n",
+ "- The [`Backend`](/docs/api/qiskit/qiskit.providers.BackendV2) possesses a `Target` by default, contains additional information -- such as the [`InstructionScheduleMap`](/docs/api/qiskit/1.4/qiskit.pulse.InstructionScheduleMap), and provides the interface for submitting quantum circuit jobs.\n",
"\n",
"You can also explicitly provide information for the transpiler to use, for example, if you have a specific use case, or if you believe this information will help the transpiler generate a more optimized circuit.\n",
"\n",
@@ -149,7 +149,7 @@
"id": "2ad3848d",
"metadata": {},
"source": [
- "This example is used in later sections of this topic to illustrate that the coupling map and basis gates are the essential pieces of information to pass to the transpiler for optimal circuit construction. The QPU can usually select default settings for other information that is not passed in, such as timing and scheduling."
+ "This example is used in later sections of this topic to illustrate that the coupling map and supported instruction set are the essential pieces of information to pass to the transpiler for optimal circuit construction. The QPU can usually select default settings for other information that is not passed in, such as timing and scheduling."
]
},
{
@@ -305,9 +305,9 @@
"id": "f62e0541",
"metadata": {},
"source": [
- "## Basis gates\n",
+ "## Supported instructions\n",
"\n",
- "Every quantum computer supports a limited instruction set, called its _basis gates_. Every gate in the circuit must be translated to the elements of this set. This set should consist of single- and two-qubit gates that provide a universal gates set, meaning that any quantum operation can be decomposed into those gates. This is done by the [BasisTranslator](../api/qiskit/qiskit.transpiler.passes.BasisTranslator), and the basis gates can be specified as a keyword argument to the transpiler to provide this information."
+ "Every quantum computer supports a limited instruction set. Every gate in the circuit must be translated to the elements of this set. This set should consist of single- and two-qubit gates that provide a universal gate set, meaning that any quantum operation can be decomposed into those gates. This is done by the [BasisTranslator](/docs/api/qiskit/qiskit.transpiler.passes.BasisTranslator), and the supported instructions can be specified as a keyword argument to the transpiler to provide this information."
]
},
{
@@ -502,7 +502,7 @@
}
],
"metadata": {
- "description": "Learn about coupling maps, basis gates, and processor errors for transpiling",
+ "description": "Learn about coupling maps, supported instructions, and processor errors for transpiling",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
diff --git a/docs/guides/save-credentials.mdx b/docs/guides/save-credentials.mdx
index 2116c9326ca..bf3ab8b7a9c 100644
--- a/docs/guides/save-credentials.mdx
+++ b/docs/guides/save-credentials.mdx
@@ -125,7 +125,7 @@ To view all credentials that you have saved, run `service.saved_accounts()`. No
- [Initialize the Qiskit Runtime service in an **untrusted environment**.](/docs/guides/cloud-setup-untrusted)
- [View your available QPUs.](/docs/guides/qpu-information#available)
- [Configure the Qiskit SDK locally.](/docs/guides/configure-qiskit-local)
- - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program.
+ - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program.
- [Set up to use IBM Quantum Platform with REST API.](/docs/guides/cloud-setup-rest-api)
- Try a [tutorial.](/docs/tutorials)
\ No newline at end of file
diff --git a/docs/guides/upgrade-from-open.mdx b/docs/guides/upgrade-from-open.mdx
index c03a71f2ca7..11088712cb6 100644
--- a/docs/guides/upgrade-from-open.mdx
+++ b/docs/guides/upgrade-from-open.mdx
@@ -48,6 +48,6 @@ It is recommended that you set up a [cost limit](/docs/guides/manage-cost#cost-l
- [Manage cost](manage-cost) when using the Pay-As-You-Go Plan.
- Learn about the available [plans.](plans-overview)
- - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program.
+ - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program.
- Try a [tutorial](/docs/tutorials).
\ No newline at end of file
diff --git a/docs/tutorials/_toc.json b/docs/tutorials/_toc.json
index 4df998d824a..b5b502d5fcd 100644
--- a/docs/tutorials/_toc.json
+++ b/docs/tutorials/_toc.json
@@ -11,10 +11,6 @@
"url": "/docs/tutorials",
"useDivider": true
},
- {
- "title": "Hello world",
- "url": "/docs/tutorials/hello-world"
- },
{
"title": "CHSH inequality",
"url": "/docs/tutorials/chsh-inequality"
diff --git a/docs/tutorials/index.mdx b/docs/tutorials/index.mdx
index e6d61ebc25b..c5123ce496c 100644
--- a/docs/tutorials/index.mdx
+++ b/docs/tutorials/index.mdx
@@ -15,7 +15,6 @@ Use these tutorials to learn how to apply Qiskit to common quantum computing use
These tutorials are for beginners who are ready to explore running quantum algorithms on a quantum computer.
-* [Hello world](/docs/tutorials/hello-world)
* [CHSH inequality](/docs/tutorials/chsh-inequality)
## Explore workflows toward advantage
diff --git a/learning/courses/basics-of-quantum-information/multiple-systems/qiskit-implementation.ipynb b/learning/courses/basics-of-quantum-information/multiple-systems/qiskit-implementation.ipynb
index 04dc03515e9..00eaeacfc23 100644
--- a/learning/courses/basics-of-quantum-information/multiple-systems/qiskit-implementation.ipynb
+++ b/learning/courses/basics-of-quantum-information/multiple-systems/qiskit-implementation.ipynb
@@ -451,7 +451,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.12"
+ "version": "3"
},
"title": "Qiskit implementation"
},
diff --git a/public/docs/images/tutorials/hello-world/extracted-outputs/87143fcc-0.svg b/public/docs/images/guides/hello-world/extracted-outputs/87143fcc-0.svg
similarity index 100%
rename from public/docs/images/tutorials/hello-world/extracted-outputs/87143fcc-0.svg
rename to public/docs/images/guides/hello-world/extracted-outputs/87143fcc-0.svg
diff --git a/public/docs/images/tutorials/hello-world/extracted-outputs/930ca3b6-0.svg b/public/docs/images/guides/hello-world/extracted-outputs/930ca3b6-0.svg
similarity index 100%
rename from public/docs/images/tutorials/hello-world/extracted-outputs/930ca3b6-0.svg
rename to public/docs/images/guides/hello-world/extracted-outputs/930ca3b6-0.svg
diff --git a/public/docs/images/tutorials/hello-world/extracted-outputs/9a901271-0.svg b/public/docs/images/guides/hello-world/extracted-outputs/9a901271-0.svg
similarity index 100%
rename from public/docs/images/tutorials/hello-world/extracted-outputs/9a901271-0.svg
rename to public/docs/images/guides/hello-world/extracted-outputs/9a901271-0.svg
diff --git a/public/docs/images/tutorials/hello-world/extracted-outputs/de91ebd0-0.svg b/public/docs/images/guides/hello-world/extracted-outputs/de91ebd0-0.svg
similarity index 100%
rename from public/docs/images/tutorials/hello-world/extracted-outputs/de91ebd0-0.svg
rename to public/docs/images/guides/hello-world/extracted-outputs/de91ebd0-0.svg
diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml
index 68e9be4d8a6..123a6907c52 100644
--- a/qiskit_bot.yaml
+++ b/qiskit_bot.yaml
@@ -142,10 +142,6 @@ notifications:
- "@kaelynj"
"docs/guides/measure-qubits":
- "@beckykd"
- "docs/guides/get-qpu-information":
- - "@frankharkins"
- - "@abbycross"
- - "`@mtreinish`"
"docs/guides/get-started-with-primitives":
- "@ElePT"
- "@jyu00"
@@ -159,7 +155,7 @@ notifications:
"docs/guides/responsibilities":
- "@abbycross"
- "@beckykd"
- "docs/tutorials/hello-world":
+ "docs/guides/hello-world":
- "@abbycross"
- "@beckykd"
"docs/guides/allocation-limits":
diff --git a/scripts/config/notebook-testing.toml b/scripts/config/notebook-testing.toml
index d7a0cf55537..e46767176f3 100644
--- a/scripts/config/notebook-testing.toml
+++ b/scripts/config/notebook-testing.toml
@@ -26,7 +26,7 @@ notebooks = [
"docs/guides/dynamical-decoupling-pass-manager.ipynb",
"docs/guides/error-mitigation-and-suppression-techniques.ipynb",
"docs/guides/execution-modes-rest-api.ipynb",
- "docs/guides/get-qpu-information.ipynb",
+ "docs/guides/qpu-information.ipynb",
"docs/guides/interoperate-qiskit-qasm2.ipynb",
"docs/guides/interoperate-qiskit-qasm3.ipynb",
"docs/guides/local-testing-mode.ipynb",
@@ -100,7 +100,7 @@ notebooks = [
[groups.cron-job-only]
test-strategies.hardware = { patch="qiskit-ibm-runtime-open" }
notebooks = [
- "docs/tutorials/hello-world.ipynb",
+ "docs/guides/hello-world.ipynb",
# The following notebook takes >300s to run and should be executed in the
# cron job. Even though it does not use real hardware
"docs/guides/qiskit-addons-cutting-gates.ipynb",