Перегляд деталей бекенду
Версії пакетів
Код на цій сторінці був розроблений з використанням наступних вимог. Ми рекомендуємо використовувати ці версії або новіші.
qiskit-ibm-runtime~=0.47.0
Ця сторінка пояснює, як знайти інформацію про доступні тобі бекенди.
Перелік або фільтрація бекендів
Перелік доступних тобі бекендів
Ти можеш використовувати Qiskit або IBM Quantum Platform для перегляду списку доступних тобі бекендів чи пошуку конкретного бекенду.
QPU, розміщені в IBM Cloud®, мають назви, що починаються з ibm_*. Усім QPU присвоюють назву міста — наприклад, ibm_kingston. Ця назва не вказує на місце фактичного розташування QPU.
- Перегляд бекендів за допомогою Qiskit
- Перегляд бекендів на IBM Quantum Platform
Використовуй метод QiskitRuntimeService.backends(), як показано в наступному блоці коду. Цей метод повертає список екземплярів IBMBackend.
Щоб запустити наступний код, переконайся, що ти вже пройшов(ла) автентифікацію в сервісі. Докладніше дивись у розділі Налаштування акаунту IBM Cloud.
Щоб знайти конкретний бекенд, використовуй метод QiskitRuntimeService.backend() (зверни увагу, що тут використовується однина: backend), який приймає назву бекенду як вхідний параметр і повертає екземпляр IBMBackend, що представляє цей конкретний бекенд:
Щоб переглянути доступні тобі бекенди, перейди до списку бекендів на сторінці Обчислювальні ресурси (зверни увагу, що обраний регіон може впливати на перелік QPU). Натисни на значок фільтра та вибери «All my instances» або конкретну назву екземпляра, щоб побачити доступні QPU.
# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util
_needed = {"qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
# Initialize your account
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
service.backends()
[<IBMBackend('ibm_pittsburgh')>,
<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_miami')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_kingston')>]
service.backend("ibm_fez")
<IBMBackend('ibm_fez')>
# Optionally pass in an instance, region, or both, to
# further filter the backends.
service = QiskitRuntimeService()
service.backends(simulator=False, operational=True, min_num_qubits=100)
[<IBMBackend('ibm_pittsburgh')>,
<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_miami')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_kingston')>]
Якщо ти увійшов(ла) до конкретного екземпляра або регіону, або якщо ти ініціалізував(ла) сервіс із конкретним екземпляром або регіоном за допомогою QiskitRuntimeService(), повертаються лише бекенди, доступні тобі в цьому екземплярі або регіоні.
Фільтрація бекендів
- Фільтрація за властивостями за допомогою Qiskit
- Фільтрація за властивостями на IBM Quantum Platform
Ти можеш фільтрувати доступні бекенди за їхньою конфігурацією або статусом. Для більш загальних фільтрів встанови аргумент filters у функцію, яка приймає об'єкт бекенду та повертає True, якщо він відповідає твоїм критеріям. Докладніше дивись у документації API.
Наступний код повертає лише бекенди, які відповідають таким критеріям і доступні тобі на твоєму поточно вибраному екземплярі:
-
Є реальними квантовими пристроями (
simulator=False) -
Наразі працюють (
operational=True) -
Мають щонайменше сто кубітів (
min_num_qubits=100)
Схожий метод — QiskitRuntimeService.least_busy(), який приймає ті самі фільтри, що й backends(), але повертає бекенд, що відповідає фільтрам і має найменшу кількість завдань у черзі:
Щоб переглянути доступні тобі бекенди, перегляни таблицю на сторінці Обчислювальні ресурси. Натисни на значок фільтра, щоб побачити параметри фільтрації. Ти можеш фільтрувати за типом процесора та статусом. Також зверни увагу, що таблицю можна сортувати за будь-яким стовпцем, навівши курсор на заголовок стовпця та натиснувши на стрілки, що з'являться.
service.least_busy(operational=True, min_num_qubits=100)
<IBMBackend('ibm_fez')>
Статична інформація про бекенд
Деяка інформація про бекенд не змінюється регулярно, наприклад його назва, версія, кількість кубітів, тип процесора (назва родини птахів, яка вказує на топологію та приблизну кількість кубітів) та типи функцій, які він підтримує. Ця інформація доступна як атрибути об'єкта backend. Повний список атрибутів дивись у документації API IBMBackend. Більше інформації про версіонування дивись у розділі Версіонування QPU нижче.
Регіон бекенду (місцезнаходження дата-центру, де зберігатимуться та оброблятимуться твої дані й експерименти) зазначено в його детальній інформаційній картці на сторінці Обчислювальні ресурси на IBM Quantum Platform.
- Перегляд інформації про бекенд за допомогою Qiskit
- Перегляд інформації про бекенд на IBM Quantum Platform
Перейди на сторінку Обчислювальні ресурси, щоб переглянути таблицю всіх QPU, а потім натисни на назву будь-якого QPU, щоб відкрити його детальну інформаційну картку. Інформацію про бекенд знайди в розділі «Details» картки.
backend = service.least_busy(operational=True, simulator=False)
print(
f"Name: {backend.name}\n"
f"Version: {backend.backend_version}\n"
f"No. of programmable qubits: {backend.num_qubits}\n"
f"Processor type: {backend.processor_type}\n"
)
Name: ibm_fez
Version: 1.3.37
No. of programmable qubits: 156
Processor type: {'family': 'Heron', 'revision': '2'}
Версіонування QPU
Кожен QPU має номер версії у форматі X.Y.Z (мажорна.мінорна.ревізія). Схема, скомпільована для певного номера версії, гарантовано запуститься на цьому QPU. Якщо номер ревізії змінюється, схема продовжить працювати. Якщо змінюється мажорний або мінорний номер, немає гарантії, що схема запуститься, хоча вона може й запуститися.
Номер версії ревізії збільшуватиметься для виправлень, які не порушують роботу вже скомпільованої схеми.
Приклад коду раніше в цьому розділі демонструє, як знайти версію бекенда. На платформі IBM Quantum Platform ти можеш переглянути версію на детальній інформаційній картці QPU (клацни на назву QPU в таблиці Обчислювальні ресурси, щоб відкрити картку).
Умови, за яких номер версії або ревізії можуть змінюватися, наведені в наступній таблиці.
| Мажорна версія | Мінорна версія | Версія ревізії |
|---|---|---|
| Заміна зразка (чипа) | Цикли прогрівання/охолодження | Оновлення програмного забезпечення QPU |
| Значні зміни в керуючій електроніці | Заміна деяких електронних компонентів, якщо заміна суттєво впливає на роботу | Ручні калібрування для покращення точності |
| Переміщення QPU в нове місце, якщо це призводить до значних змін поведінки | Відключення вентиля на деякий час через проблеми з калібруванням, і виправлення неможливо легко зробити програмно | Незначні зміни електроніки, які не впливають на роботу |
| Зміна напрямку вентиля CNOT |
Підтримувані інструкції
Кожне сімейство процесорів нативно підтримує обмежений набір інструкцій. Цей набір включає однокубітні та двокубітні вентилі, а також неунітарні операції, такі як measure і reset. Кожен вентиль у схемі має бути транспільований (транспілятором) до елементів підтримуваного набору інструкцій QPU, перш ніж він зможе виконатися на QPU.
Ти можеш переглянути підтримувані набори інструкцій для QPU за допомогою Qiskit. Сторінка Обчислювальні ресурси IBM Quantum Platform перелічує лише підтримувані унітарні вентилі (базові вентилі) для QPU.
- Пошук підтримуваних інструкцій за допомогою Qiskit
- Пошук базових вентилів на IBM Quantum Platform
Перейди на сторінку Обчислювальні ресурси, щоб переглянути таблицю всіх QPU, а потім натисни на назву будь-якого QPU, щоб відкрити його детальну інформаційну картку. Базові вентилі для цього QPU наведені в розділі «Details».
Таблиця підтримуваних інструкцій
| Категорія операції | Назва |
|---|---|
| Однокубітні вентилі | RZ, SX, X, XSlow, ID, delay |
| Двокубітні вентилі | CZ, ECR |
| Дробові вентилі | RX (однокубітний), RZZ (двокубітний) |
| Неунітарні інструкції | measure, reset, measure_*, reset_*, measure_reset*, delay |
| Керуючий потік | if_else (класичний прямий зв'язок) |
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
print(f"Backend: {backend.name}")
print(f" Processor type: {backend.processor_type}")
print(f" Supported instructions: {backend.supported_instructions}")
Backend: ibm_kingston
Processor type: {'family': 'Heron', 'revision': '2'}
Supported instructions: ['cz', 'id', 'delay', 'measure', 'measure_2', 'reset', 'rz', 'sx', 'x', 'if_else', 'store']
Динамічна інформація про бекенд
Бекенди також мають властивості, які змінюються щоразу, коли бекенд калібрується, наприклад час життя кубітів і коефіцієнти похибок операцій. Властивості бекенду оновлюються після завершення послідовності калібрування. Ці властивості можна використовувати при оптимізації квантових схем або для побудови моделей шуму для класичного симулятора. Дивись посібник Завдання калібрування для отримання додаткової інформації.
На IBM Quantum Platform ти можеш завантажити дані калібрування у файлі CSV. Натисни на QPU на сторінці Обчислювальні ресурси, щоб переглянути його детальну інформаційну картку, а потім натисни на значок завантаження у верхньому правому куті розділу «Calibration data».
Ти можеш отримати історичні дані властивостей бекенду в Qiskit за допомогою наступного коду:
backend.properties(datetime=<datetime>)
Властивості кубітів
Перейти до списку властивостей кубітів
backend.properties().qubit_property() повертає інформацію про фізичні атрибути кубітів. Він містить словник різних властивостей кубіта, кожна з яких поєднана зі своїм значенням і часовою міткою останнього калібрування.
Наступні приклади коду демонструють, як перелічити всі властивості або отримати конкретні властивості певного кубіта.
Перегляд властивостей кубітів
T1 (Час релаксації)
Час представляє середню тривалість перебування кубіта у збудженому стані до розпаду в основний стан внаслідок енергетичної релаксації. Цей параметр використовується для характеристики поведінки енергетичної релаксації кубіта та виражається в секундах (с).
| Перегляд за допомогою Qiskit | backend.properties().t1(<qubit>) |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ «Calibration data», спадне меню «qubit»; знайди медіанне значення в розділі «Details» |
T2 (Dephasing time)
Час позначає часовий масштаб, протягом якого кубіт зберігає фазову когерентність суперпозиції між станами та . Він враховує як енергетичну релаксацію, так і процеси чистого дефазування, надаючи уявлення про когерентні властивості кубіта. вимірюється з послідовності ехо Хана.
| Перегляд за допомогою Qiskit | backend.properties().t2(<qubit>) |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ «Calibration data», спадне меню «qubit»; знайди медіанне значення в розділі «Details» |
# fundamental physical properties of qubit 1
backend = service.least_busy(operational=True, simulator=False)
backend.qubit_properties(1)
QubitProperties(t1=0.00022010760855770256, t2=0.0002363339150114578, frequency=None)
# Retrieve qubit properties
qubit_index = backend.num_qubits - 1 # Replace with your qubit index
qubit_props = backend.properties().qubit_property(qubit_index)
# Access specific properties
t1 = qubit_props.get("T1", (None,))[0]
t2 = qubit_props.get("T2", (None,))[0]
readout_error = qubit_props.get("readout_error", (None,))[0]
prob_meas0_prep1 = qubit_props.get("prob_meas0_prep1", (None,))[0]
prob_meas1_prep0 = qubit_props.get("prob_meas1_prep0", (None,))[0]
readout_length = qubit_props.get("readout_length", (None,))[0]
print(f"Qubit {qubit_index} Properties:")
print(f" T1: {t1} seconds")
print(f" T2: {t2} seconds")
print(f" Readout Error: {readout_error}")
print(f" P(0 | 1): {prob_meas0_prep1}")
print(f" P(1 | 0): {prob_meas1_prep0}")
print(f" Readout Length: {readout_length} seconds")
Властивості інструкцій
Перейти до списку властивостей інструкцій
Атрибут backend.target — це об'єкт qiskit.transpiler.Target: об'єкт, що містить всю інформацію, необхідну для транспіляції схеми для цього бекенду. Це включає похибки та тривалості інструкцій. Наприклад, наступна комірка отримує властивості вентиля cz, що діє між парою з'єднаних кубітів.
Наступна комірка показує властивості операції вимірювання (включно з похибкою зчитування) на кубіті 0.
Перегляд властивостей інструкцій
prob-meas0-prep1
Цей параметр вказує на ймовірність вимірювання кубіта у стані , коли він призначений для підготовки у стані , що позначається як . Він відображає похибки в підготовці стану та вимірюванні (SPAM), зокрема похибки вимірювання у надпровідних кубітах.
| Перегляд за допомогою Qiskit | backend.properties().qubit_property(<qubit>, 'prob_meas0_prep1') |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ Calibration data: спадне меню Qubit |
prob-meas1-prep0
Аналогічно, цей параметр представляє ймовірність вимірювання кубіта у стані , коли він призначений для підготовки у стані , що позначається як . Як і prob_meas0_prep1, він відображає похибки SPAM, причому похибки вимірювання є основним джерелом у надпровідних кубітах.
| Перегляд за допомогою Qiskit | backend.properties().qubit_property(<qubit>, 'prob_meas0_prep0') |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ Calibration data: спадне меню Qubit |
Помилка 2Q (Heron і Nighthawk: CZ, Eagle: ECR)
Двокубітна похибка на ребро з того самого набору вимірювань, використаного для обчислення медіанної похибки 2Q. 2Q error (best) позначає найнижчу двокубітну похибку на будь-якому ребрі пристрою, також з цього набору вимірювань.
| Перегляд за допомогою Qiskit | backend.target['<instruction>'][<qubit 1>, <qubit 2>] |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ Calibration: наведи курсор на з'єднання кубітів у режимі Map, або знайди значення в режимі Table у стовпці похибки CZ (Heron та Nighthawk) або похибки ECR (Eagle); знайди значення для 2Q error (best) в розділі Details |
Медіанна помилка 2Q (Heron: CZ, Eagle: ECR)
Середня точність гейта двокубітної операції за результатами рандомізованого бенчмаркінгу. Виміряно в «ізоляції»: пакети з мінімальним розділенням у два кубіти між ребрами. Цей рандомізований бенчмаркінг використовує чергування шарів однокубітних гейтів Кліффорда та двокубітних гейтів, тому кінцеве значення похибки 2Q включає похибку шару однокубітних гейтів Кліффорда.
| Calculate with Qiskit | Дотримуйся прикладу в цьому ноутбуці Qiskit Community GitHub |
|---|---|
| View on IBM Quantum Platform | Розділ Details; дані по кожному ребру також можна знайти в розділі Calibration data |
2Q error (layered)
Середня похибка на шаруватий гейт (EPLG) у ланцюжку зі 100 кубітів. Середнє значення EPLG вимірює середню похибку гейта в шаруватому ланцюжку з кубітів (=100 тут). Воно виводиться зі схожої величини, відомої як точність шару (LF), де EPLG = 4/5(1-LF), а точність шару — це точність процесу шаруватого ланцюжка з кубітів. Детальніше див. у статті Benchmarking quantum processor performance at scale. Зверни увагу, що в статті EPLG визначено для похибки процесу, але для узгодженості з окремо наведеними похибками гейтів тут вона наводиться для середньої похибки гейта, звідки й множник 4/5.
На IBM Quantum Platform детальна інформаційна картка кожного QPU містить розділ Two-qubit gate error (layered), який надає розгорнутий вигляд найнижчої two-qubit gate error (layered), виміряної як функція кількості кубітів у ланцюжку. Кінцеве значення при довжині ланцюжка 100 — це значення, наведене в розділі Details. На практиці вимірюють шість 100-кубітних ланцюжків (попередньо відібраних на основі очікуваної оптимальної продуктивності), і значення, наведене для кількості кубітів N, — це найнижча похибка, знайдена серед підланцюжків довжини N під час пошуку по шести 100-кубітних ланцюжках.
| Calculate with Qiskit | Дотримуйся прикладу в цьому ноутбуці Qiskit Community GitHub |
|---|---|
| View on IBM Quantum Platform | Розділ Details і розгорнутий вигляд у розділі Two-qubit gate error (layered) |
RZZ error (Heron)
Похибка гейта RZZ, усереднена за кутами RZZ, за допомогою варіанту рандомізованого бенчмаркінгу для довільних унітарних операторів.
| Перегляд за допомогою Qiskit | Важливо: переконайся, що встановлено use_fractional_gates=True під час завантаження бекенда, після чого можна використовувати backend.target['rzz'][<qubit 1>, <qubit 2>] |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ Calibration: вибери RZZ у спадному меню Connection і наведи курсор на з'єднання кубітів у вигляді Map. Також можна вибрати RZZ error у спадному меню Graph output у вигляді Graph або знайти значення у вигляді Table у стовпці RZZ error |
Помилка ID / помилка √x (sx) / помилка Pauli-X / помилка RX
Похибка однокубітних гейтів скінченної тривалості, виміряна за допомогою рандомізованого бенчмаркінгу. Послідовність рандомізованого бенчмаркінгу включає гейти SX, ID та X, і передбачається, що їхні похибки однакові. Гейт ID є затримкою тривалістю, що дорівнює тривалості гейтів √X та X. Гейт RX також має ту саму тривалість, що й гейти √X та X, зі змінною амплітудою, тому вважається, що він має ту саму похибку, що й ці гейти.
| Перегляд за допомогою Qiskit | backend.target['<instruction>'][<qubit 1>, ] |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ Calibration: спадне меню Qubit |
Помилка SX (медіана)
Середня точність гейта гейта √X (SX) за результатами рандомізованого бенчмаркінгу, виміряна одночасно на всіх кубітах. Послідовність рандомізованого бенчмаркінгу включає гейти SX, ID та X, і передбачається, що їхні похибки однакові.
| View on IBM Quantum Platform | Розділ Details |
|---|
Помилка обертання навколо осі Z (RZ)
Похибка віртуального гейта RZ. Наводиться як нуль у всіх випадках, оскільки ці операції виконуються програмно.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, ] |
|---|---|
| View on IBM Quantum Platform | Розділ Calibration: спадне меню Connection |
Readout error
Похибка зчитування кількісно визначає середню ймовірність неправильного вимірювання стану кубіта. Зазвичай вона обчислюється як середнє значення prob_meas0_prep1 та prob_meas1_prep0, надаючи єдину метрику точності вимірювання.
| View with Qiskit | backend.properties().readout_error(<qubit>) |
|---|---|
| View on IBM Quantum Platform | Розділ Calibration data: спадне меню Qubit |
Readout error (median)
Точність операції зчитування. Похибка зчитування вимірюється підготовкою кубіта в стані () та вимірюванням ймовірності отримання результату в стані (). Наведене значення — середнє цих двох похибок. Медіана береться по всіх кубітах.
| View on IBM Quantum Platform | Розділ Calibration data: розділ Details |
|---|
Single-qubit gate length
Тривалість операції однокубітного гейта. Зверни увагу, що значення, показані на IBM Quantum Platform, наведено в наносекундах. Значення, що повертає Qiskit, наведено в секундах.
| Перегляд за допомогою Qiskit | backend.target['<instruction>'][<qubit 1>, ].duration |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ Calibration: спадне меню Qubit |
Довжина гейта (2Q-гейти)
Тривалість операції двокубітного гейта. Зверни увагу, що значення, показані на IBM Quantum Platform, наведено в наносекундах. Значення, що повертає Qiskit, наведено в секундах.
| View with Qiskit | backend.target['<instruction>'][<qubit 1>, <qubit 2> ].duration |
|---|---|
| View on IBM Quantum Platform | Розділ Calibration: спадне меню Qubit |
Readout length
Тривалість зчитування визначає тривалість операції зчитування для кубіта. Вона вимірює час від початку імпульсу вимірювання до завершення оцифрування сигналу, після чого система готова до наступної операції. Розуміння цього параметра є критично важливим для оптимізації виконання схем, особливо при використанні вимірювань у середині схеми.
| View with Qiskit |
|
|---|---|
| View on IBM Quantum Platform | Розділ Calibration data: спадне меню Qubit |
Initialization error
Похибка ініціалізації кількісно визначає відсоток популяції в стані після стандартної затримки повторення та процедури ініціалізації кубіта, коли попередній експеримент підготував кубіт у стані . Зверни увагу, що це дещо відрізняється від величини prob_meas1_prep0, яка вимірює відсоток вимірювань, приписаних стану . Остання є вимірюванням як похибки ініціалізації, так і процедури розрізнення станів та . У межі ідеального вимірювання ці дві величини збігаються.
| Перегляд за допомогою Qiskit | backend.properties().qubit_property(<qubit>, 'init_error') |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ «Calibration data»: спадне меню «qubit» |
# Get the cz gate properties for a connected pair of qubits
# (the first edge in this backend's coupling map)
edge = next(iter(backend.target["cz"]))
backend.target["cz"][edge]
backend.target["measure"][(0,)]
InstructionProperties(duration=1.66e-06, error=0.0126953125)
Додаткові властивості
Максимум схем за секунду (MCPS)
Maximum circuits per second (MCPS) включає вимірювання, скидання та повторну ініціалізацію схеми з гейтом Адамара та одним вимірюванням.
| View with Qiskit | mcps = backend.configuration().mcps |
|---|---|
| View on IBM Quantum Platform | Розділ Details |
CLOPS (or CLOPS_h)
Circuit layer operations per second (CLOPS) — це показник того, скільки шарів схеми 100x100 (апаратно-орієнтованої схеми) QPU може виконати за одиницю часу.
| Calculate with Qiskit | Знайди код CLOPS у Qiskit Community GitHub |
|---|---|
| View on IBM Quantum Platform | Розділ Details |
Status
За допомогою BackendStatus можна дізнатися статус QPU (наприклад, Active, Paused, Offline), а також кількість завдань у черзі.
| Перегляд за допомогою Qiskit | print(backend.status().status_msg), print(backend.status().pending_jobs) |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ Details |
Діаграма топології або карта зв'язності
Діаграма, що показує пари кубітів, між якими підтримуються двокубітні операції гейтів. Це також називається картою зв'язності (coupling map) або зв'язністю. Кубіти зображено у вигляді кіл, а підтримувані двокубітні операції гейтів — у вигляді ліній, що з'єднують кубіти.
| Перегляд за допомогою Qiskit | from qiskit.visualization import plot_gate_map потім plot_gate_map(backend) |
|---|---|
| Перегляд на IBM Quantum Platform | Розділ Calibration data; натисни Expand для більшого вигляду |
Якщо бенчмаркінг кубіта або ребра не вдається протягом кількох днів, чи то через погану якість даних, чи через інші внутрішні чинники, наведене значення похибки вважається застарілим і буде показано як 1. Це не означає, що кубіт або ребро обов'язково непрацездатні або що похибка справді дорівнює 1; радше похибка вважається невизначеною, тому слід діяти обережно, працюючи з цим кубітом або гейтом.
Наступні кроки
- Дізнайся, як побудувати моделі шуму для класичної симуляції з шумом.
- Ознайомся з темою Етапи транспілятора, щоб дізнатися, як транспілятор використовує властивості бекенду для оптимізації схеми.
- Ознайомся з довідником API бекенду QiskitRuntime.