BackendV2
class qiskit.providers.BackendV2(provider=None, name=None, description=None, online_date=None, backend_version=None, **fields)
バックエンドの抽象クラス
この抽象クラスは、プロバイダが作成するすべての Backend オブジェクトに使用されます。 このバージョンは、以前の抽象Backendクラスとは異なり、configuration属性が存在しなくなりました。 その代わりに、バックエンドデバイスの同等の必要な不変プロパティを公開する属性が追加される。 例えば、 backend.configuration().n_qubits は現在、 backend.num_qubits からアクセスできる。
バックエンドの options 属性は、バックエンドの動的なユーザ設定可能オプションを格納するために使用されます。 バックエンドがどのように使われるかを設定するランタイムオプションにもっと使われるべきだ。 例えば、実験を実行するバックエンドの shots フィールドのようなもので、実行するショットの数をintで指定する。
バックエンドオブジェクトには、必要に応じて および get_translation_stage_plugin という名前の get_scheduling_stage_pluginメソッドを含めることができます。 バックエンドオブジェクトにこれらのメソッドが存在し、そのオブジェクトが または transpile() に使用される場合 generate_preset_pass_manager() 、トランスパイル処理では、デフォルトでそれらのメソッドの出力がスケジューリング段階および翻訳コンパイル段階に使用されます。 これにより、コンパイルに関して独自の要件を持つバックエンドは、これらのステージに対してステージプラグインを指定し、回路を独自に変換することで、バックエンド上で確実に実行できるようにすることができます。 これらのフックはデフォルトで有効になっており、バックエンド上で回路が実行可能であることを保証するため、あるいは期待されるパフォーマンスレベルを確保するために必要な場合にのみ、追加のコンパイルステップを有効にするために使用すべきです。 これらのメソッドには入力引数が渡されず、ステージプラグインであるべきメソッド名を表す値を str 返すものと想定されています(プラグインの詳細については qiskit.transpiler.preset_passmanagers.plugin 、を参照してください)。 一般的な想定されるユースケースとしては、バックエンドプロバイダが、カスタムコンパイルパスを含む または scheduling translation 用のステージプラグインを実装し、バックエンドオブジェクトのフックメソッドがプラグイン名を返すようにすることで、 がそのバックエンドをターゲットとする際にデフォルトでそのプラグインを使用する transpile() ようになる、というものです。
このサブクラスは、publicメソッド run() と内部メソッド _default_options():
_default_options
abstractmethod classmethod _default_options()
デフォルトのオプションを返す
このメソッドは qiskit.providers.Options サブクラス・オブジェクトを返します。 これらは、バックエンドのオプションに使用するデフォルトのパラメータとなります。
戻り値
を持つオプション・オブジェクト。
デフォルト値
戻りの型
BackendV2 ベースのバックエンドを初期化する
パラメーター
- provider - バックエンドのプロバイダオブジェクトへの後方参照(オプション)
- name (str | None) – バックエンドの別名
- description (str | None) – バックエンドに関する任意の説明
- online_date (datetime | None) – バックエンドが稼働を開始した日時(任意)
- backend_version (str | None) – オプションのバックエンドのバージョン文字列。 これは 属性
versionとは異なります。なぜなら、versionはオブジェクトの抽象的なBackendインターフェース版を表すのに対し、backend_versionはバックエンド自体のバージョン管理を表すからです。 - fields - デフォルトのオプションを上書きするために使用する値の kwargs。
レイズ
AttributeError - バックエンドのオプション外のフィールドが指定された場合
属性
coupling_map
を返します。 CouplingMap オブジェクト
dt
入力信号のシステム時間分解能を返す
これは、バックエンドがパルススケジューリングをサポートしている場合に実装する必要がある。
戻り値
入力信号のタイムステップ(秒)。 バックエンドが dt を定義していない場合、 None が返される。
dtm
instruction_durations
オブジェクトを返す。 InstructionDurations オブジェクトを返します。
instructions
フォームのバックエンドにある命令タプルのリスト (instruction, (qubits))
max_circuits
1つのジョブで実行できる回路の最大数。
制限がない場合は None を返します
meas_map
多重化された測定値のグループ化を返す
これは、バックエンドがパルススケジューリングをサポートしている場合に実装する必要がある。
戻り値
多重化された測定のグループ化
レイズ
NotImplementedError - バックエンドが計測マッピングのクエリをサポートしていない場合
num_qubits
バックエンドが持つ量子ビットの数を返します。
operation_names
バックエンドがサポートする命令名のリスト。
operations
バックエンドがサポートする Instruction バックエンドがサポートするインスタンスの一覧。
options
バックエンドのオプションを返します
バックエンドのオプションは、バックエンドの使用方法を定義する動的パラメータです。 これらは run() メソッドを使用する。
provider
target
version
デフォルト値: 2
name
バックエンドの名前。
description
任意で人間が読める説明文。
online_date
バックエンドがオンラインになった日付。
backend_version
提供されるバックエンドのバージョン。 とは異なる。 BackendV2.versionこれは Backend 抽象インターフェースのバージョンである
方法
qubit_properties
qubit_properties(qubit)
与えられた量子ビットの QubitProperties を返す。
定義されていないか、バックエンドがこれらの詳細の問い合わせをサポートしていない場合、このメソッドを実装する必要はない。
パラメーター
qubit (int |list[int]) – その QubitProperties オブジェクトを取得するための量子ビット。 これは、1クビットを表す単一の整数でも、クビットのリストでもよく、オブジェクト QubitProperties のリストが同じ順序で返されます
戻り値
指定された量子ビットの QubitProperties オブジェクトを返します。 量子ビットのリストが提供された場合、リストが返される。 量子ビットのプロパティが欠落している場合は、 None。
レイズ
NotImplementedError - バックエンドが量子ビットのプロパティのクエリをサポートしていない場合
戻りの型
run
abstractmethod run(run_input, **options)
バックエンドで実行する。
このメソッドは Job オブジェクトを返す。 バックエンドによっては、これは非同期呼び出しか同期呼び出しのどちらかになる。 ジョブ・クラスはどちらの状況にも対応できます。
パラメーター
- run_input (QuantumCircuit orlist) – バックエンドで実行する
QuantumCircuitオブジェクトのリスト。 - options - 設定を実行するためにバックエンドに渡す任意の kwarg オプション。 キーがoptions属性/オブジェクトにも存在する場合、optionsオブジェクトで設定された値の代わりに、指定された値が使われることが期待されます。
戻り値
ランのジョブオブジェクト
戻りの型
set_options
set_options(**fields)
バックエンドのオプションフィールドを設定する
このメソッドは、バックエンドのオプションを更新するために使われます。 実行前にオプションを変更する必要がある場合は、オプションの新しい値をkwargに渡してください。
パラメーター
fields - オプションを更新するフィールド
レイズ
AttributeError - 渡されたフィールドがオプションの一部でない場合