IBMバックエンド
class IBMBackend(configuration, service, api_client, instance=None, calibration_id=None)
ベース: BackendV2
IBM Quantum バックエンドと連携するバックエンドクラス。
IBMBackendクラスを直接インスタンス化してはならない。 代わりにQiskitRuntimeServiceインスタンスが提供するメソッドを使います。
このクラスは IBM Quantum バックエンドを表します。 その属性とメソッドは、バックエンドに関する情報を提供する。 例えば status() メソッドは BackendStatus インスタンスを返します。 このインスタンスには operational と pending_jobs 属性があり、それぞれバックエンドが稼動しているかどうかと、バックエンドのサーバーキューにあるジョブの数を示します:
status = backend.status()
is_operational = status.operational
jobs_in_queue = status.pending_jobsIBMBackend クラスで利用可能な属性のリストです:
name: バックエンド名。
backend_version: バックエンドのバージョン X.Y.Z.
num_qubits: qubitsの数。
ターゲットA
qiskit.transpiler.Targetオブジェクトを返します。basis_gates: バックエンドの基本ゲート名のリスト。
gate: バックエンドの基本ゲートのリスト。
local: バックエンドがローカルかリモートか。
シミュレーター:バックエンドはシミュレーターである。
conditional: バックエンドは条件操作をサポートする。
open_pulse: バックエンドがオープンパルスをサポート。
memory: バックエンドはメモリをサポートする。
coupling_map (リスト):デバイスのカップリングマップ
supported_instructions ( [Liststr] ):バックエンドがサポートする命令。
dynamic_reprate_enabled (bool): プリミティブ間のディレイを動的に設定するかどうか(つまり
rep_delay経由)。 デフォルト値は false です。rep_delay_range ( [Listfloat] ): バックエンドの反復遅延のサポート範囲をμs単位で定義する 2d リスト。 最初のエントリーがレンジの下限、2番目のエントリーがレンジの上限。 オプションだが、
dynamic_reprate_enabled=Trueのときに指定される。default_repache_delay (float):ユーザーおよび
dynamic_reprate_enabled=Trueによって指定されない場合、rep_delayの値。n_uchannels:uチャンネルの数。
u_channelデバイスlosのUチャンネル関係。
meas_levels:サポートされる測定レベル。
qubit_lo_range:各クビットのQubit lo range (min, max) (GHz単位)。
meas_lo_range:各qubitの測定lo範囲、単位はGHz。
dt:Qubit駆動チャンネルのタイムステップ(ナノ秒単位)。
dtm:測定ドライブチャンネルのタイムステップ(ナノ秒単位)。
rep_times:バックエンドのサポートされる繰り返し時間(プログラム実行時間)(μs単位)。
meas_kernels:サポートされる測定カーネル。
ディスクリミネーターサポートされる識別器。
ハミルトニアン:システムのハミルトニアンを特徴づけるフィールドを持つオプションの辞書。
channel_bandwidth (リスト):全チャンネルの帯域幅 (量子ビット、計測、U)
acquisition_latency (リスト):n_qubits x n_registers次元の配列。 量子ビットnの測定結果をレジスタスロットmに書き込むまでの待ち時間(単位はdt)。
conditional_latency (リスト):Array of dimension n_channels [d->u->m] x n_registers. レジスタ・スロットmからチャネルnに対して条件演算を行うまでの待ち時間(dt単位
meas_map (リスト):多重化された測定のグループ化
sample_name (str):バックエンドのサンプル名
n_registers (int):フィードバックに利用可能なレジスタスロットの数(条件がTrueの場合)
register_map (リスト):n_qubits X n_registersの次元の配列で、量子ビットが特定のレジスタスロットに測定値を格納できるかどうかを指定する。
configurable (bool):バックエンドがシミュレータの場合は true
credits_required (bool):バックエンドがジョブの実行にクレジットを要求する場合に真。
online_date (datetime):デバイスがオンラインになった日付
display_name (str):バックエンドの代替名フィールド
description (str):バックエンドの説明
tags (リスト):バックエンドを表す文字列タグのリスト
version:
Backendクラスのバージョン (例: 1, 2)チャンネル:各チャンネルの情報(目的、タイプ、操作される量子ビット)を含むオプションの辞書。
parametric_pulses (リスト):バックエンドでサポートされているパルス形状のリスト。 例:
['gaussian', 'constant']processor_type (dict):このバックエンドのプロセッサタイプ。
{"family": "Canary", "revision": "1.0", segment: "A"}のような{"family": <str>, "revision": <str>, segment: <str>}形式の辞書。
- ファミリ:このバックエンドのプロセッサファミリ。
- リビジョン:このプロセッサのリビジョンバージョン。
- セグメント:より大きなチップの中で、このプロセッサが属するセグメント。
パラメーター
- configuration (QasmBackendConfiguration) – バックエンドの設定。
- service (QiskitRuntimeService) – QiskitRuntimeService のインスタンス。
- api_client (RuntimeClient) – IBM クライアントがサーバーと通信するために使用される。
- instance (str | None) – 使用するサービスインスタンス。
- calibration_id (str | None) – このバックエンドで使用する較正ID(オプション
BackendV2 ベースのバックエンドを初期化する
パラメーター
- プロバイダー – バックエンドの由来となるプロバイダーオブジェクトへの、任意の逆参照
- name – バックエンドの任意の名前
- 説明 – バックエンドに関する任意の説明
- online_date – バックエンドがオンラインになった日時(任意)
- backend_version – オプションのバックエンドバージョン文字列。 これは 属性
versionとは異なります。なぜなら、versionはオブジェクトの抽象Backend的なインターフェース版を表すのに対し、backend_versionはバックエンド自体のバージョン管理を表すからです。 - fields – デフォルトのオプションを上書きするために使用する値のkwargs。
- configuration (QasmBackendConfiguration)
- service (QiskitRuntimeService)
- api_client (RuntimeClient)
- instance (str | None)
- calibration_id (str | None)
レイズ
AttributeError – バックエンドのオプションの範囲外のフィールドが指定された場合
属性
calibration_id
このバックエンドで使用するキャリブレーション ID。
coupling_map
を返します。 CouplingMap オブジェクト
dt
入力信号のシステム時間分解能を返す
これは、バックエンドがパルススケジューリングをサポートしている場合に実装する必要がある。
戻り値
入力信号のタイムステップ(秒)。 バックエンドが dt を定義していない場合、 None が返される。
dtm
出力信号のシステム時間分解能を返す。
戻り値
出力信号のタイムステップ(秒)。
id_warning_issued
デフォルト値: False
instruction_durations
オブジェクトを返す。 InstructionDurations オブジェクトを返します。
instructions
フォームのバックエンドにある命令タプルのリスト (instruction, (qubits))
max_circuits
1つのジョブで実行可能な回路の最大数を返します。
このプロパティは、以前はバックエンド構成からmax_experiments値を返していたが、この値はもはやバックエンド回路制限の正確な表現ではない。 新しい制限を示す新しいフィールドが追加される。
meas_map
多重化された測定値のグループを返す。
これは、バックエンドがパルススケジューリングをサポートしている場合に実装する必要がある。
戻り値
多重化された測定のグループ化
num_qubits
バックエンドが持つ量子ビットの数を返します。
operation_names
バックエンドがサポートする命令名のリスト。
operations
バックエンドがサポートする Instruction バックエンドがサポートするインスタンスの一覧。
options
バックエンドのオプションを返します
バックエンドのオプションは、バックエンドの使用方法を定義する動的パラメータです。 これらは run() メソッドを使用する。
provider
バックエンドプロバイダを返します。
戻り値
バックエンドを担当するプロバイダ。
戻りの型
提供者
service
オブジェクトを service 返す。
戻り値
QiskitRuntimeService のインスタンス
target
version
デフォルト値: 2
name
バックエンドの名前。
description
任意で人間が読める説明文。
online_date
バックエンドがオンラインになった日付。
backend_version
提供されるバックエンドのバージョン。 これは、 Backend 抽象インターフェースのバージョンである BackendV2.version とは異なる。
方法
__call__
check_faulty
check_faulty(circuit)
入力回路に欠陥のある量子ビットやエッジが使われていないかチェックする。
パラメーター
circuit (QuantumCircuit) – 確認すべき回路。
レイズ
ValueError - 欠陥のある量子ビットやエッジで動作する命令が見つかった場合。
戻りの型
なし
configuration
configuration()
バックエンドの設定を返します。
バックエンドの設定には、バックエンドの名前、量子ビット数、基底ゲート、カップリングマップ、量子体積など、バックエンドに関する固定情報が含まれる。
バックエンド設定に関する情報は、Get backend configuration REST API で確認できます。
バックエンドの設定プロパティの詳細については、こちらを参照してください。 QasmBackendConfiguration.
IBM バックエンドは以下のプロパティも含むことができる:
-
supported_features: サポートされている機能の文字列のリスト(例: “qasm3” )動的回路のサポート。
-
parallel_compilationバックエンドが複数のの仕事を一度にこなす。 古典的な計算の一部は並列化される。
戻り値
バックエンドの設定。
戻りの型
get_translation_stage_plugin
properties
properties(refresh=False, datetime=None)
バックエンドのプロパティを返します。
このデータには、量子ビットのプロパティ( T1 や T2 など)、ゲートのプロパティ(ゲート長やエラーなど)、その他バックエンドの一般的なプロパティが記述されている。
バックエンドのプロパティに関する情報は、 Get backend configuration REST API で確認できます。
パラメーター
- refresh (bool) –
Trueの場合、バックエンドのプロパティをサーバーに再照会する。 そうでない場合は、キャッシュされたバージョンを返す。 - datetime (python_datetime | None) – datetime を指定すると、この関数は、指定された日時よりも古いものの、それに最も近いタイムスタンプを持つ
DateTimeBackendPropertiesインスタンスを返します。
戻り値
バックエンド・プロパティ、またはバックエンド・プロパティが現在利用できない場合は None 。
レイズ
- TypeError - 入力引数の型が正しくない場合。
- NotImplementedError - クラウドランタイム使用時にdatetimeが指定された場合。
戻りの型
BackendProperties | なし
qubit_properties
qubit_properties(qubit)
与えられた量子ビットの QubitProperties を返す。
定義されていないか、バックエンドがこれらの詳細の問い合わせをサポートしていない場合、このメソッドを実装する必要はない。
パラメーター
qubit (int | list[int]) – その QubitProperties オブジェクトを取得するための量子ビット。 これは、1クビットを表す単一の整数でも、クビットのリストでもよく、オブジェクトの QubitProperties リストが同じ順序で返されます
戻り値
指定された量子ビットの QubitProperties オブジェクト。 量子ビットのリストが提供された場合、リストが返される。 量子ビットのプロパティが欠落している場合は、 None。
レイズ
NotImplementedError - バックエンドが量子ビットのプロパティのクエリをサポートしていない場合
戻りの型
QubitProperties | list[ QubitProperties ]
refresh
run
set_options
set_options(**fields)
バックエンドのオプションフィールドを設定する
このメソッドは、バックエンドのオプションを更新するために使われます。 実行前にオプションを変更する必要がある場合は、オプションの新しい値をkwargに渡してください。
パラメーター
fields - オプションを更新するフィールド
レイズ
AttributeError - 渡されたフィールドがオプションの一部でない場合
status
status()
バックエンドのステータスを返します。
返された BackendStatus インスタンスに operational=True があるが、 status_msg="internal" がない場合、バックエンドはジョブを受け入れているが、処理していないことになる。
戻り値
バックエンドの状態。
レイズ
IBMBackendApiProtocolError - バックエンドのステータスが正しくフォーマットできない場合。
戻りの型
target_history
target_history(datetime=None)
A qiskit.transpiler.Target オブジェクトを返します。
戻り値
datetimeで見つかったプロパティを持つターゲット
パラメーター
datetime (python_datetime | None)
戻りの型
ターゲット