この記事では、 Microsoft Quantum リソース推定ツール を使用して、 target パラメーター の複数の構成の見積もりを同時に実行し、各構成の結果を比較する方法について説明します。
target パラメーターのさまざまな構成のリソース見積もりを比較するには、一度に 1 つの見積もりを実行するか、すべての構成のリソース要件を見積もるバッチ ジョブを実行できます。 バッチ見積もりは、すべての構成の結果をテーブルとビジュアル グラフに一緒に表示するため便利です。
リソース推定器を実行する方法については、リソース推定器 を使用するさまざまな方法を参照してください。
前提条件
最新バージョンの Visual Studio Code (VS Code) または WEB 用の VS Code を開きます。
Microsoft Quantum Development Kit (QDK) 拡張機能の最新バージョン。 インストールの詳細については、 QDK のセットアップを参照してください。
qdkPython ライブラリの最新バージョン。python -m pip install --upgrade qdk
リソース推定機能を使用して複数の構成を実行する
target を使用して、Q#で パラメーターの複数の構成を 1 つのバッチ ジョブとして実行できます。 バッチ見積もりを実行するには、target関数のparamsパラメーターにqsharp.estimateパラメーター ディクショナリの一覧を渡します。
次の例では、量子ビットを等しい重ね合わせ状態にするtarget アルゴリズムの 1 つのバッチ ジョブとして、Q# パラメーターの 2 つの構成を実行する方法を示します。 最初の構成では既定の target パラメーターが使用され、2 つ目の構成では qubit_maj_ns_e6 量子ビット パラメーターと floquet_code 量子エラー修正 (QEC) スキームが使用されます。
Q# プログラムの見積もりを比較するには、次の手順に従います。
VS Code で、[ 表示 ] メニューを開き、[ コマンド パレット] を選択します。
「新しい Jupyter Notebook の作成」と入力します。
qsharpPython モジュールをインポートするには、最初のセルで次のコードを実行します。from qdk import qsharp新しい Q# セルに
%%qsharpプログラムを記述します。%%qsharp operation Main() : Result { use qubit = Qubit(); H(qubit); MResetZ(qubit) }パラメーター セットディクショナリのリストを作成し、
params引数としてリストをqsharp.estimate関数に渡します。 新しいセルで次のコードを実行します。defaultParams = {} # Use an empty dictionary for the default input parameter set customParams = {"qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"} } result_batch = qsharp.estimate("Main()", params=[defaultParams, customParams]) result_batch.summary_data_frame(labels=["Gate-based ns, 10⁻³", "Majorana ns, 10⁻⁶"])
リソース推定結果の概要がテーブルに表示されるので、さまざまな量子ビットの種類とエラー修正スキームでアルゴリズムの実行方法を簡単に比較できます。
EstimatorParams クラスを使用してバッチ ジョブを実行する
target
EstimatorParamsの属性として、推定パラメーターの一覧を作成することもできます。 次のコードは、target パラメーターの 6 つの構成を 1 つのジョブとしてバッチ処理する方法を示しています。
from qdk import qsharp
from qdk.estimator import EstimatorParams, QubitParams, QECScheme
labels = ["Gate-based µs, 10⁻³", "Gate-based µs, 10⁻⁴", "Gate-based ns, 10⁻³", "Gate-based ns, 10⁻⁴", "Majorana ns, 10⁻⁴", "Majorana ns, 10⁻⁶"]
params = EstimatorParams(num_items=6)
params.error_budget = 0.333
params.items[0].qubit_params.name = QubitParams.GATE_US_E3
params.items[1].qubit_params.name = QubitParams.GATE_US_E4
params.items[2].qubit_params.name = QubitParams.GATE_NS_E3
params.items[3].qubit_params.name = QubitParams.GATE_NS_E4
params.items[4].qubit_params.name = QubitParams.MAJ_NS_E4
params.items[4].qec_scheme.name = QECScheme.FLOQUET_CODE
params.items[5].qubit_params.name = QubitParams.MAJ_NS_E6
params.items[5].qec_scheme.name = QECScheme.FLOQUET_CODE
qsharp.estimate("Main()", params=params).summary_data_frame(labels=labels)
ノート
リソース見積もりツールの使用時に問題が発生した場合は、「 トラブルシューティング」ページ を参照するか、 AzureQuantumInfo@microsoft.comにお問い合わせください。