Qiskit 0.24 リリースノート
0.24.1
Terra 0.16.4
変更なし
エア 0.7.6
変更なし
イグニス 0.5.2
変更なし
アクア 0.8.2
変更なし
IBM Q プロバイダー 0.12.2
アップグレードの注意
qiskit.providers.ibmq.IBMQBackend.defaults()バックエンドが pulse をサポートしている場合は、 pulse のデフォルト値を返すようになりました。 しかし、バックエンドがパルスをサポートしていても、プロバイダーがパルスをサポートしていない場合もある。 バックエンドの設定にあるopen_pulseフラグは、プロバイダがサポートしているかどうかを示す。
0.24.0
Terra 0.16.4
変更なし
エア 0.7.6
新機能
- これはqiskit-aerの最初のリリースで、 aarch64 ( arm64 ) 上の Linux 用のプリコンパイルされたバイナリを PyPI に公開するものです。 このリリース以降、 Linux aarch64 パッケージが公開され、サポートされる。
バグ修正
- 条件付きゲートのノイズが、古典的なレジスタ値に基づいて条件付きゲートが実際に適用されたかどうかに関係なく、常に適用されていたバグ #1153を修正。 これで、条件付きゲートのノイズは、条件付きゲートが適用された場合にのみ適用されるようになった。
- 問題 #1126 :単一量子ビットの測定報告におけるバグを修正。 このバグは、測定値を出力データ構造体にコピーする際に発生した。
- 以前は、Aerのバックエンドオブジェクトがサポートすると報告するデフォルトの量子ビット数と、シミュレータが実際に実行する最大量子ビット数との間にミスマッチがありました。 これは、最大量子ビット数の計算に使われた Python のコードと、利用可能なメモリに基づく最大量子ビット数の実行時チェックに使われたC++のコードとの不一致によるものであった。 これは修正され、現在ではデフォルトでAerのバックエンドは、利用可能なシステム・メモリすべてに収まる回路の実行を許可している。 1114番を修正
変更なし
イグニス 0.5.2
変更なし
アクア 0.8.2
変更なし
IBM Q プロバイダー 0.12.0
前奏曲
qiskit.providers.ibmq.IBMQBackend.run()メソッドが1つ以上のQuantumCircuitまたはSchedule. の使用QasmQobjとPulseQobjの使用は非推奨となった。 ショット数などのランタイム設定オプションは、run()、またはqiskit.providers.ibmq.IBMQBackend.set_options()。 前者はジョブに対して1回だけ設定され、後者はバックエンドに送られるすべてのジョブに対して使用される。 オプションが両方の場所で設定されている場合、run()で設定されている値が優先される。- IBM Quantumクレデンシャルは、
qiskitrcファイルの'ibmq'で始まるセクションからのみロードされるようになった。
新機能
-
Python 3.9 のサポートが追加されました。 Qiskit IBMQ プロバイダーは Python 3.9 を使用して実行できます。
-
qiskit.providers.ibmq.AccountProvider.backends()に、最小量子ビット数でフィルタリングできる新しいパラメータ min_num_qubits が追加された。 -
qiskit.providers.ibmq.IBMQBackend.run()メソッドが1つ以上のQuantumCircuitまたはSchedule. ショット数などのランタイム設定オプションは、run()、またはqiskit.providers.ibmq.IBMQBackend.set_options()。 前者はジョブに対して1回だけ設定され、後者はバックエンドに送られるすべてのジョブに対して使用される。 オプションが両方の場所で設定されている場合、run()で設定されている値が優先される。 例:from qiskit import IBMQ, transpile from qiskit.test.reference_circuits import ReferenceCircuits provider = IBMQ.load_account() backend = provider.get_backend('ibmq_vigo') circuits = transpile(ReferenceCircuits.bell(), backend=backend) default_shots = backend.options.shots # Returns the backend default of 1024 shots. backend.set_options(shots=2048) # All jobs will now have use 2048 shots. backend.run(circuits) # This runs with 2048 shots. backend.run(circuits, shots=8192) # This runs with 8192 shots. backend.run(circuits) # This again runs with 2048 shots. -
qiskit.providers.ibmq.experiment.Experimentには、実験作成に使用されたプロバイダを特定する3つの属性、hub、group、projectが追加された。 -
qiskit.providers.ibmq.IBMQBackend.run()を使ってジョブを提出する際に、experiment_idを割り当てることができるようになりました。 この新しいフィールドを使えば、同じ実験に属するジョブをまとめてグループ化することができる。qiskit.providers.ibmq.IBMQBackendService.jobs()メソッドも更新され、experiment_idによるフィルタリングが可能になった。 -
qiskit.providers.ibmq.experiment.Experimentの2つの属性が追加された:- share_level:実験が共有されるレベル。実験をリストアップする際に、誰が見ることができるかを決定する。 これは更新できる。
- owner: 実験をアップロードしたユーザーのID。 これはサーバーによって設定され、更新することはできない。
-
メソッド
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()は、フィルタリングキーワードとしてhub、group、projectを受け付けるようになった。 -
メソッド
qiskit.providers.ibmq.experiment.ExperimentService.experiments()とqiskit.providers.ibmq.experiment.ExperimentService.analysis_results()は、返される実験と分析結果の数を制限できるlimitパラメータをサポートするようになった。 -
メソッド
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()は、フィルタリングキーワードとしてexclude_mineとmine_onlyを受け付けるようになった。 -
メソッド
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()は、フィルタリングキーワードとしてexclude_publicとpublic_onlyを受け付けるようになった。 -
qiskit.providers.ibmq.managed.IBMQJobManager.run()が使えるようになりました。QuantumCircuitまたはScheduleを受け付けるようになった。 -
least_busy()関数は、稼動しているが一時停止している、つまりジョブを受け入れているが処理していないバックエンドをスキップするようになった。 -
ピックルできないカスタム・データ(例えばQobjヘッダー)を含まない限り、
IBMQJobインスタンスをピックルできるようになりました。 -
qiskit.providers.ibmq.AccountProvider.services()」と「qiskit.providers.ibmq.AccountProvider.service()」という2つの新しいメソッドを使って、アカウントで利用可能なサービスを調べたり、特定のサービスのインスタンスを取得したりできるようになった。 -
qiskit.providers.ibmq.IBMQBackend.reservations()メソッドは、あなたが所有していない予約であっても、常に予約スケジューリングモードを返すようになりました。
アップグレードの注意
-
以前は非推奨だったメソッドや機能の多くが削除された:
qiskit.providers.ibmq.job.IBMQJob.to_dict()qiskit.providers.ibmq.job.IBMQJob.from_dict()- Qconfig.py サポート
- プロトコルを含まないプロキシURLの使用
-
新しいパラメータ、
limitは、qiskit.providers.ibmq.experiment.ExperimentService.experiments()とqiskit.providers.ibmq.experiment.ExperimentService.analysis_results()の両メソッドの最初のパラメータとなった。 このlimit、デフォルト値は10である。つまり、dafultによって10個の実験と分析結果のみが返される。 -
IBM Quantumクレデンシャルは、
qiskitrcファイルの'ibmq'で始まるセクションからのみロードされるようになった。 これにより、qiskitrcファイルを他の機能に使用することができる。
非推奨のメモ
-
の使用
QasmQobjとPulseQobjqiskit.providers.ibmq.IBMQBackend.run()の使用は非推奨となった。QuantumCircuitそしてScheduleを代わりに使うべきである。 -
qiskit.providers.ibmq.AccountProviderのbackends属性はbackend(sigular) に名称変更された。 後方互換性のため、backendsを使い続けることはできますが、これは非推奨であり、将来のリリースで削除される予定です。qiskit.providers.ibmq.AccountProvider.backends()方式に変更はない。 例:backend = provider.backend.ibmq_vigo # This is the new syntax. backend = provider.backends.ibmq_vigo # This is deprecated. backends = provider.backends() # This continues to work as before. -
IBMQJobclient_version属性の設定は非推奨となりました。 ただし、アトリビュートの値を読み続けることはできる。 -
"
qiskit.providers.ibmq.IBMQBackend.run()"の "validate_qobj"キーワードは非推奨であり、将来のリリースで削除される予定である。 このスキーマ検証に依存しているのであれば、 Qiskit/ibmq-schemasからスキーマを取り出し、それを使ってペイロードを直接検証すべきです。
バグ修正
- ジョブの投入が途中で失敗した場合、ジョブが
CREATINGの状態で放置されることがあった問題を修正しました。 - バックエンドの基礎ゲートに従来の u1, u2, u3 が含まれていない場合、Jupyterバックエンド・ウィジェットの使用に失敗する問題を修正。 844番を修正
IBMQRandomServiceのインスタンスを子プロセスに渡す際に発生する無限ループを修正。- サーバーがエラーコードを返したが、レスポンス・データが期待された形式でなかった場合に
TypeErrorが発生する問題を修正した。