コンテンツにスキップ

v1.5.0 リリースノート

Qubex v1.5.0 は、v1.4 系以降で最大規模の更新です。既存の QuEL-1 向け Experiment / Measurement ワークフローは引き続き使えますが、 低レベル層を system / measurement / backend に明確に分離し、 QuEL-3 の初期対応を追加し、主要な実行経路から固定 2 ns 前提を外し、測定結果の正規化されたシリアライズモデルを導入しました。

v1.4.8 から更新する 場合は、設定ファイル、backend import、contrib 系 notebook を更新する前に v1.5.0 移行ガイド を読んでください。

主な変更点

  • 設定モデルが system-aware になりました。 1 つの実行可能な装置構成を 表す識別子として system_id を正規の入口にし、system.yaml で backend 種別を定義し、wiring.yaml も同じ system_id で引く形になりました。
  • 低レベル API の責務を qubex.systemqubex.measurementqubex.backend に分離しました。 Experiment の下で使う層を 明確に整理し、設定読み込み、schedule 実行、controller 実装の境界を はっきりさせています。
  • QuEL-3 の初期対応を追加しました。 QuEL-3 向け設定読み込み、 target deploy planning、backend 実行、sequencer tooling、および専用の notebook / ガイドを含みます。
  • 測定 API に async-first / sweep-first の経路を追加しました。 MeasurementExperimentrun_measurement()run_sweep_measurement()run_ndsweep_measurement() を公開し、 measurement 層にも専用の sweep builder / executor を追加しました。
  • サンプリング周期は backend 由来になりました。 主要な measurement / experiment の経路で固定 2 ns を前提にせず、実行中の backend から dt を解決するようになりました。
  • 測定結果の canonical model を導入しました。 MeasurementResultCaptureData、sweep result は JSON / NetCDF4 に保存できる DataModel ベースの型になり、同期 API との互換のために legacy MeasureResult 系も引き続き使えます。
  • ドキュメントを全面的に整理しました。 英日両対応の user guide、 low-level API guide、examples、release notes を追加しています。

Breaking changes

  • Python とインストール前提が変わりました。 Qubex は Python 3.10+ が必要です。v1.5.0 系の repository / docs は uv 管理環境を前提とし、 実機向け依存関係は backend extra で導入します。
  • qubex.backend は system モデルの集約 namespace ではなくなりました。 ConfigLoaderSystemManagerControlSystemExperimentSystemTargetRegistry などは qubex.system に移動しました。backend のトップレベルは controller contract と backend 実装に集中しています。
  • 装置選択の正規入力は system_id になりました。 chip_id は 互換入力として残っていますが、公開向けの設定モデルは system_id + system.yaml + system 単位の parameter directory です。
  • configuration_mode は優先順付きの制御レイアウトとして解決されるようになりました。 ge-ef-cr は「channel がある限り GE、EF、CR の順に割り当てる」ことを意味し、 ge-cr-cr は「GE、CR、CR の順に割り当てる」ことを意味します。 3 本未満の control channel しかない port では左側の役割だけを残すため、 2 channel port に対する ge-ef-cr は、暗黙の ge-cr ではなく ge-ef に解決されます。
  • Experiment の一部 helper API は qubex.contrib へ移動しました。 RZX helper、multipartite entanglement helper、CR crosstalk helper、 Stark helper、simultaneous coherence helper、purity benchmarking helper などが該当します。旧 Experiment メソッドは warning のあとに例外を送出します。
  • 古い内部 module への deep import は安定 API ではなくなりました。 qubex.pulse.library.*qubex.simulator.quantum_system のような内部パスではなく、qubex.pulsequbex.simulatorqubex.core、あるいは companion package を使ってください。

v1.5.0 でまだ使えるが移行推奨のもの

以下は v1.5.0 でも互換のために残っていますが、warning 付きまたは shim 扱いです。notebook や script を更新する際に置き換えてください。

旧 API / 旧書き方 新 API / 新書き方
実行対象の主入力として chip_id を使う 正規入力として system_id を使う
shots= n_shots=
interval= shot_interval=
Experiment.linkup() Experiment.connect()
Experiment.device_controller Experiment.backend_controller
Measurement.qubits Measurement.qubit_labels
qubex.analysis.visualization qubex.visualization
result["fig"]result["figure"] result.figure または result.get_figure()
result["figs"]result["figures"] result.figures または result.get_figure(name)
qubex.measurement.measurement_result などの legacy model module qubex.measurement.models
qubex.experiment.result などの legacy model module qubex.experiment.models

既知の制約

  • async の run_* API は public ですが、まだ Experimental 扱いです。 長期的な API 安定性を優先する場合は、同期の measure()execute()sweep_parameter() を優先してください。
  • QuEL-3 対応は利用可能ですが、QuEL-1 経路より新しい実装です。時間に敏感な sweep、deploy 前提、backend 固有 helper は、広く展開する前に実機で 検証してください。
  • reset_awg_and_capunits()SystemManager.modified_backend_settings(...) のような QuEL-1 固有の 保守用 hook には QuEL-3 側の完全な等価物がありません。QuEL-3 で未対応の 場合は例外ではなく互換目的の no-op として扱われます。

アップグレードの要点

v1.4.8 から更新する場合は、まず次を優先してください。

  1. system / configuration 関連の import を qubex.backend から qubex.system へ移す
  2. 実行対象の指定を chip_id から system_id に切り替え、 必要なら system.yaml を追加する
  3. shotsintervallinkup()device_controller などの旧 API を置き換える
  4. contrib 系 helper を使う notebook を qubex.contrib 呼び出しへ更新する
  5. 固定 2 ns 前提をやめ、backend 由来の sampling period を使う

移行ガイド には、それぞれの変更点について具体的な before / after 例を載せています。