Resource Estimator を使用してパラメーターの複数の target 構成を実行する方法
この記事では、パラメーターの複数の target 構成を実行し、 Azure Quantum リソース推定器を使用してそれらを比較する方法について説明します。
リソース推定器を実行する方法については、「Resource Estimator を使用するさまざまな方法」を参照してください。
前提条件
リソース推定ツールを実行するには、次の前提条件が必要です。
リソース推定ツールでプログラムを実行 Q# するには、次のものが必要です。
- 最新バージョンの Visual Studio Code または Web 上で VS Code を開きます。
- Azure Quantum Development Kit 拡張機能の最新バージョン。 インストールの詳細については、「 VS Code へのモダン QDK のインストール」を参照してください。
VS Code で Python を使用する場合は、次のものが必要です。
最新の Azure Quantum
qsharp
パッケージ。python -m pip install --upgrade qsharp
リソース推定器にジョブを送信するには、次のものが必要です。
- アクティブなサブスクリプションが含まれる Azure アカウント。 Azure アカウントをお持ちでない場合は、無料で登録し、 従量課金制サブスクリプションにサインアップします。
- Azure Quantum ワークスペース。 詳細については、「Azure Quantum ワークスペースを作成する」を参照してください。
リソース推定器を使用したバッチ処理
Azure Quantum Resource Estimator を使用すると、同じ量子プログラムで複数のジョブを再実行しないように、複数の構成のジョブ パラメーター ( アイテムとも呼ばれます) を 1 つのジョブとして送信できます。
リソース推定ジョブは、2 種類のジョブ パラメーターから構成されます。
- ターゲット パラメーター: 量子ビット モデル、QEC スキーム、エラー予算、コンポーネント レベルの制約、蒸留ユニット。
- 操作引数: プログラムに渡すことができる引数 (QIR エントリ ポイントに引数が含まれている場合)。
1 つの項目は、ジョブ パラメーターの 1 つの構成で構成されます。これは、パラメーターと操作引数の target 1 つの構成です。 いくつかの項目は、ジョブ パラメーターの配列として表されます。
複数のアイテムを 1 つのジョブとして送信するシナリオの一部を次に示します。
- すべてのアイテムで同じ操作引数を持つ複数targetのパラメーターを送信します。
- すべてのアイテムで異なる操作引数を持つ複数targetのパラメーターを送信します。
- 複数の結果を表形式で簡単に比較できます。
- グラフ内の複数の結果を簡単に比較できます。
プログラムのQ#リソースを見積もる場合は、バッチ処理とも呼ばれるパラメーターの複数のtarget構成を実行できます。 でのQ#バッチ処理は、VS Code のJupyter Notebookで行うことができます。
バッチ推定を実行するには、パラメーターの一覧を関数のtargetqsharp.estimate
パラメーターにparams
渡します。 次の例は、パラメーターの 2 つの構成を target 1 つのジョブとして送信する方法を示しています。 最初の構成では既定targetのパラメーターが使用され、2 番目の構成では量子ビット パラメーターと QEC スキームがfloquet_code
使用qubit_maj_ns_e6
されます。
プログラムの同じJupyter NotebookQ#で、新しいセルを追加し、次のコードを実行します。
result_batch = qsharp.estimate("RunProgram()", params=
[{}, # Default parameters
{
"qubitParams": {
"name": "qubit_maj_ns_e6"
},
"qecScheme": {
"name": "floquet_code"
}
}])
result_batch.summary_data_frame(labels=["Gate-based ns, 10⁻³", "Majorana ns, 10⁻⁶"])
クラスを使用して推定targetパラメーターの一覧をEstimatorParams
作成することもできます。 次のコードは、パラメーターの 6 つの構成を 1 つのジョブとして送信する target 方法を示しています。
from qsharp.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("RunProgram()", params=params).summary_data_frame(labels=labels)
注意
リソース推定ツールの使用中に問題が発生した場合は、[トラブルシューティング] ページをチェックするか、 にお問い合わせくださいAzureQuantumInfo@microsoft.com。
関連コンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示