Quantinuum プロバイダー

ヒント

初回ユーザーは、参加している各量子ハードウェア プロバイダーで使用するために、無料の $500 (USD)Azure Quantum クレジットを自動的に取得します。 クレジットをすべて消費し、不足した場合は、Azure Quantum クレジット プログラムにお申し込みいただけます。

Quantinuum では、忠実度が高く、完全結合された量子ビットを実現し、中間回路測定を実行する機能を備えたイオン トラップ型システムにアクセスできます。

  • 発行元: Quantinuum
  • プロバイダー ID: quantinuum

ターゲット

targetsこのプロバイダーから次の情報を入手できます。

ターゲット名 ターゲット ID 量子ビット数 説明
H1-1 構文チェッカー quantinuum.sim.h1-1sc 20 量子ビット これを使用して、Quantinuum のプラットフォーム上のハードウェアまたはエミュレーターに送信する前に、H1-1 コンパイラに対して量子プログラムを検証します。 無料。
H2-1 構文チェッカー quantinuum.sim.h2-1sc 32 量子ビット これを使用して、Quantinuum のプラットフォーム上のハードウェアまたはエミュレーターに送信する前に、H2-1 コンパイラに対して量子プログラムを検証します。 無料。
H1-1 エミュレーター quantinuum.sim.h1-1e 20 量子ビット H1-1のリアルな物理モデルとノイズ モデルを使用します。
H2-1 エミュレーター quantinuum.sim.h2-1e 32 量子ビット H2-1のリアルな物理モデルとノイズモデルを使用します。
H1-1 quantinuum.qpu.h1-1 20 量子ビット Quantinuum の H1-1 トラップ型イオン デバイス。
H2-1 quantinuum.qpu.h2-1 32 量子ビット QuantinuumのH2-1トラップイオンデバイス。

Quantinuum は targets プロファイルに Basic Measurement Feedback 対応しています。 このtargetプロファイルとその制限事項の詳細については、「Azure Quantum のプロファイルの種類について」を参照してくださいtarget

Quantinuum targets のすべてが、統合ハイブリッド回線をサポートするようになりました。 統合ハイブリッド ジョブの送信の詳細については、「 統合ハイブリッド コンピューティング」を参照してください。

Azure Quantum で Quantinuum プロバイダーの使用を開始するには、「 Q# と Azure Quantum ノートブックの概要」を参照してください。

ヒント

セッションの下で送信された量子ジョブは、互いに 1 分以内にジョブをキューに入れた場合に限り、Quantinuum ハードウェアに 排他的にアクセス できます。 その後、すべてのジョブが受け入れられ、標準のキューと優先順位付けロジックで処理されます。 詳細については、「 Azure Quantum のセッション」を参照してください。

構文チェッカー

ユーザーはまず、構文チェッカーを使用してコードを検証することをお勧めします。 これは、適切な構文、コンパイルの完了、マシンの互換性を確認するためのツールです。 構文チェッカーは、量子コンピューターと同じコンパイラを使用します target。 たとえば、H1-1 構文チェッカーは H1-1 と同じコンパイラを使用します。 実際の量子演算を除き、完全なコンパイル スタックが実行されます。 コードがコンパイルされた場合、構文チェッカーは状態とすべての 0 の結果を返 success します。 コードがコンパイルされない場合、構文チェッカーは失敗した状態を返し、ユーザーが回線構文をデバッグするのに役立つエラーを返します。 構文チェッカーを使用すると、開発者はコンピューターがオフラインの場合でも、いつでもコードの検証ができます。

  • ジョブの種類: Simulation
  • データ形式: honeywell.openqasm.v1honeywell.qir.v1
  • ターゲット ID:
    • H1-1 構文チェッカー: quantinuum.sim.h1-1sc
    • H2-1 構文チェッカー: quantinuum.sim.h2-1sc
  • ターゲット実行プロファイル: 基本的な測定に関するフィードバック

構文チェッカーの使用は無料で提供されます。

System Model H1 Emulator

構文チェッカーを使用してコードの構文を検証した後、ユーザーは Quantinuum のシステム モデル H1 エミュレーター、詳細な物理モデルと実際のシステム モデル H1 ハードウェアの現実的なノイズ モデルを含むエミュレーション ツールを利用できます。 ノイズ モデルは、ハードウェアの詳細な特性評価から派生します。 システム モデル H1 エミュレーターは、ジョブ送信にシステム モデル H1 ハードウェアと同じ API を使用し、エミュレーションからハードウェアへのシームレスな切り替えを可能にします。 生産性を最大化し、開発時間を短縮するために、ハードウェアがオフラインの間でもシステム モデル H1 エミュレーターを使用できます。

詳細については、「 システム モデル H1 エミュレーター製品データシート 」の 「システム モデル H1 」ページを参照してください。

  • ジョブの種類: Simulation
  • データ形式: quantinuum.openqasm.v1
  • ターゲット ID:
    • H1-1 エミュレーター: quantinuum.sim.h1-1e
  • ターゲット実行プロファイル: Basic Measurement Feedback

システム モデル H1 エミュレーターの使用は、ハードウェア サブスクリプションで無料で提供されます。 詳細については、「Azure Quantum の価格」を参照してください。

H シリーズ エミュレーター (クラウドベース)

H シリーズ エミュレーターは、Azure Quantum Web サイトの [ Azure Quantum を使用したコード ] ページで無料で利用できます。Q# コードを記述し、Azure アカウントを使用せずに Quantinuum H シリーズ エミュレーターにジョブを送信できます。 H シリーズ エミュレーターは、 システム モデル H1 量子コンピューターの一般的なパフォーマンスに基づいて、現実的な物理ノイズ モデルと一般化されたエラー パラメーターを使用するステートベクトル ベースの量子エミュレーターです。 実行される量子シミュレーションは システム モデル H1 エミュレーター と同じですが、従来の回路最適化ルーチンはスループットを向上させるために削減されます。 統合ハイブリッド コンピューティングのサポートは、将来の予定です。

System Model H1

Honeywell を搭載したシステム モデル H1 世代の量子コンピューターは、1 つの線形セクションを持つ量子電荷結合デバイス (QCCD) で構成され、現在、1 台のコンピューター targets(H1-1) が含まれています。 ユーザーは、マシンに送信する前に 、構文チェッカーシステム モデル H1 エミュレーター にジョブを送信することで、H1-1 とのコードの互換性を target テストすることをお勧めします。

システム モデル H1 マシンは、製品ライフサイクル全体を通じて継続的にアップグレードされます。 ユーザーは、使用可能な最新かつ高度で能力の高いハードウェアにアクセスできます。

詳細については、「 システム モデル H1 製品データシート」の「システム モデル H1 」ページを 参照 してください。

  • ジョブの種類: Quantum Program
  • データ形式: honeywell.openqasm.v1honeywell.qir.v1
  • ターゲット ID:
    • H1-1: quantinuum.qpu.h1-1
  • ターゲット実行プロファイル: Basic Measurement Feedback

システム モデル H2 エミュレーター

H2-1 構文チェッカーを使用してコードの構文を検証した後、ユーザーは Quantinuum のシステム モデル H2 エミュレーターを利用できます。これは、実際のシステム モデル H2 ハードウェアの詳細な物理モデルと現実的なノイズ モデルを含むエミュレーション ツールです。 ノイズ モデルの詳細については、「 システム モデル H2 エミュレーター製品データシート 」の システム モデル H2 ページを参照してください。 システム モデル H2 エミュレーターは、ジョブ送信にシステム モデル H2 ハードウェアと同じ API を使用し、エミュレーションからハードウェアへのシームレスな切り替えを可能にします。 生産性を最大化し、開発時間を短縮するために、ハードウェアがオフラインの間でも H2 エミュレーターを使用できます。

システム モデル H2 エミュレーターの使用は、ハードウェア サブスクリプションで無料で提供されます。 詳細については、「Azure Quantum の価格」を参照してください。

システム モデル H2

Honeywell を搭載した量子コンピューターの Quantinuum システム モデル H2 世代は、2 つの接続された線形セクションを持つ量子電荷結合デバイス (QCCD) で構成され、現在は 1 台のコンピューター H2-1 を備えます。 詳細については、「 システム モデル H2」ページの「System Model H2 Product Data Sheet 」を 参照 してください。 ユーザーは、マシンにジョブを送信する前に 、構文チェッカーSystem Model H2 Emulator にジョブを送信することで、コードの互換性を target テストすることをお勧めします。

ユーザーが H2-1 マシンにジョブを送信し、H2-1 コンピューターを使用できない場合、ジョブはマシンが使用可能になるまでそのマシンのキューに残ります。

システム モデル H2 ハードウェアは、製品ライフサイクル全体を通じて継続的にアップグレードされます。 ユーザーは、使用可能な最新かつ高度で能力の高いハードウェアにアクセスできます。

システム モデル H1 および H2 技術仕様

システム モデル H1 とシステム モデル H2 の技術的な詳細については、Quantinuum の製品データ シートの 「System Model H1 」および 「System Model H2 」のページと、Quantinuum 仕様および量子ボリューム データ リポジトリへのリンク、Quantinuum システムの使用状況を引用する方法に関するページを参照してください。

その他の機能

Quantinuum API を介して使用できるその他の機能については、こちらを参照してください。

機能 説明
中間回路の測定とリセット (MCMR) 回路の途中で量子ビットを測定し、再利用する
任意の角度のZZゲート 2 量子ビットの任意の角度ゲート回転を直接実行する
エミュレーターノイズパラメータ Quantinuum H シリーズ エミュレーターで使用されるノイズ パラメーターを試す
H シリーズ スタックでの TKET の最適化 H シリーズ スタックでさまざまなレベルの TKET 最適化をオンにして実験する

ユーザーは、回線関数または Azure Quantum Q# および Qiskit プロバイダーのパススルー パラメーターを使用して、これらの追加機能を利用できます。

中間回路の測定とリセット

中間回路の測定およびリセット (MCMR) を使用すると、ユーザーは回路の途中で量子ビットを測定し、リセットできます。 これにより、量子エラー修正の機能と、回路内の量子ビットを再利用する機能が可能になります。

トラップイオン量子ビットの内部レベル構造により、中間回路の測定では、量子ビットが非計算状態のままになる可能性があります。 量子ビットをその回路で再度使用する場合は、すべての中間回路測定の後にリセットを行う必要があります。 次のコード例は、これを示しています。

量子ビットのサブセットが回路の途中で測定される場合、これらの測定値からの古典的な情報を使用して、回路の将来の要素を条件にすることができます。 この例では、この使用法も強調表示されています。

Quantinuum システムの MCMR の詳細については、「 システム モデル H1」および「システム モデル H2 」ページの H シリーズ製品データ シートを 参照 してください。

Q# では、 関数を MResetZ 使用して量子ビットを測定し、リセットできます。 この関数の詳細については、Q# のドキュメントを参照してください MResetZ

%%qsharp
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Measurement;

operation ContinueComputationAfterReset() : Result[] {
    // Set up circuit with 2 qubits
    use qubits = Qubit[2];

    // Perform Bell Test
    H(qubits[0]);
    CNOT(qubits[0], qubits[1]);

    // Measure Qubit 1 and reset it
    let res1 = MResetZ(qubits[1]);

    // Continue additional computation, conditioned on qubits[1] measurement outcome
    if res1 == One {
         X(qubits[0]);
    }
    CNOT(qubits[0], qubits[1]);

    // Measure qubits and return results
    let res2 = Measure([PauliZ, PauliZ], qubits);
    return [res1, res2];
}

任意の角度のZZゲート

Quantinuum のネイティブ ゲート セットには、任意の角度の ZZ ゲートが含まれています。 これは、多くの量子アルゴリズムとゲート シーケンスの 2 量子ビット ゲート数を減らすのに役立ちます。 Quantinuum システムの任意の角度 ZZ ゲートの詳細については、「 システム モデル H1」および「システム モデル H2 」ページの H シリーズ製品データシート を参照 してください。

Q# では、 操作で任意の角度 ZZ ゲートが Rzz 実装されます。

%%qsharp
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Arrays;

operation ContinueComputationAfterReset(theta : Double) : Result[] {
    
    // Set up circuit with 2 qubits
    use qubits = Qubit[2];

    // Create array for measurement results
    mutable resultArray = [Zero, size = 2];

    H(qubits[0]);
    Rz(theta, qubits[0]);
    Rz(theta, qubits[1]);
    X(qubits[1]);

    // Add Arbitrary Angle ZZ gate
    Rzz(theta, qubits[0], qubits[1]);  

    // Measure qubits and return results
    for i in IndexRange(qubits) {
        set resultArray w/= i <- M(qubits[i]);  
    }
    
    return resultArray;
}

エミュレーターノイズパラメータ

ユーザーには、Quantinuum エミュレーターのノイズ パラメーターを試すオプションがあります。 ここでは、Azure Quantum プロバイダーでパラメーターを渡す方法を示す、使用可能なノイズ パラメーターの一部のみを示します。

使用可能なノイズ パラメーターの完全なセットの詳細については、 システム モデル H1 ページとシステム モデル H2 ページの H シリーズ エミュレーター製品データ シートを 参照 してください。

まず、必要なパッケージをインポートし、基本プロファイルを開始します。

import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)

次に、 関数を定義します。

%%qsharp
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Arrays;
open Microsoft.Quantum.Convert;

operation GenerateRandomBit() : Result {
    use target = Qubit();

    // Apply an H-gate and measure.
    H(target);
    return M(target);
}

操作をコンパイルします。

MyProgram = qsharp.compile("GenerateRandomBit()")

Azure Quantum に接続し、マシンを target 選択し、エミュレーターのノイズ パラメーターを構成します。

MyWorkspace = azure.quantum.Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h1-1e")

# Update the parameter names desired
# Note: This is not the full set of options available. 
# For the full set, see the System Model H1 Emulator Product Data Sheet
option_params = {
    "error-params": {
        "p1": 4e-5,
        "p2": 3e-3,
        "p_meas": [3e-3, 3e-3],
        "p_init": 4e-5,
        "p_crosstalk_meas": 1e-5,
        "p_crosstalk_init": 3e-5,
        "p1_emission_ratio": 6e-6,
        "p2_emission_ratio": 2e-4
    }
}

ジョブを送信するときにエミュレーター ノイズ オプションを渡します。

job = MyTarget.submit(MyProgram, "Experiment with Emulator Noise Parameters", 
                      shots = 10, 
                      input_params = option_params)
job.get_results()

エミュレーター ノイズ モデルをオフにするには、 オプションを error-modelFalse設定します。 既定では、これは True に設定されます。

option_params = {
    "error-model": False 
}

スタビライザー エミュレーターを使用するには、 オプションを simulatorstabilizer設定します。 既定では、これは state-vector に設定されます。

option_params = {
    "simulator": "stabilizer" 
}

H シリーズ スタックでの TKET コンパイル

Quantinuum H シリーズ システムに送信された回線は、 統合ハイブリッド送信を除き、H シリーズ ハードウェアの TKET コンパイル パスを介して自動的に実行されます。 これにより、H シリーズ システム用に回路を自動的に最適化し、より効率的に実行できます。

適用される特定のコンパイル パスの詳細については、ドキュメント、特にpytket-quantinuum「コンパイル パス」セクションをpytket-quantinuum参照してください。

H シリーズ ソフトウェア スタックでは、 パラメーターを使用 tket-opt-level して適用される最適化レベルが設定されます。 H シリーズ システムに送信されるすべての回線の既定のコンパイル設定は、最適化レベル 2 です。

TKET コンパイルを試して、ジョブを送信する前に回線にどのような最適化が適用されるかを確認したいユーザーは、Examples フォルダーの Quantinuum_compile_without_api.ipynb ノートブックをpytket-quantinuum確認できます。

pytket詳細については、次のリンクを参照してください。

まず、必要なパッケージをインポートし、基本プロファイルを開始します。

import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)

次に、 関数を定義します。

%%qsharp
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Arrays;
open Microsoft.Quantum.Convert;

operation GenerateRandomBit() : Result {
    use target = Qubit();

    // Apply an H-gate and measure.
    H(target);
    return M(target);
}

操作をコンパイルします。

MyProgram = qsharp.compile("GenerateRandomBit()")

Azure Quantum に接続し、マシンを target 選択し、エミュレーターのノイズ パラメーターを構成します。

MyWorkspace = azure.quantum.Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h1-1e")

# Update TKET optimization level desired
option_params = {
    "tket-opt-level": 1
}

ジョブを送信するときに otimization オプションを渡します。

job = MyTarget.submit(MyProgram, "Experiment with TKET Compilation", shots = 10, input_params = option_params)
job.get_results()

技術仕様

システム モデル H1 および H2 およびシステム モデル H1 および H2 エミュレーターの技術的な詳細については、Quantinuum の製品データ シートの 「システム モデル H1システム モデル H2 」ページに、Quantinuum 仕様および量子ボリューム データ リポジトリへのリンクと、Quantinuum システムの使用方法を引用する方法を参照してください。

ターゲットの可用性

Quantinuum H シリーズ量子コンピューターは、継続的にアップグレードされるように設計されており、Quantinuum がゲートの忠実性、メモリ エラー、システム速度を継続的に向上させるなか、お客様は最新のハードウェア機能を利用できます。

Quantinuum のハードウェア サイクルには、商業期間と開発期間があります。 商用期間中は、キュー システムを介してジョブを処理するためにハードウェアを使用できます。 開発期間中は、アップグレードが適用されるため、ハードウェアはオフラインになります。

毎月、商用期間と開発期間に関する情報を含む予定表が Quantinuum ユーザーに送られます。 この予定表を受信していない場合は、QCsupport@quantinuum.com にメールでお問い合わせください。

の状態は target、ジョブを処理する現在の機能を示します。 の考えられる状態は target 次のとおりです。

  • 使用可能: は target オンラインであり、送信されたジョブを処理し、新しいジョブを受け入れます。
  • 機能低下: は target ジョブを受け入れますが、現在は処理していません。
  • 使用不可: は target オフラインであり、新しいジョブの送信を受け入れていません。

Quantinuum 量子コンピューター targetsの場合、 AvailableDegraded は商用期間に対応し、 Unavailable はアップグレードのためにマシンがオフラインになっている開発期間に対応します。

現在の状態情報は、Azure portal でワークスペースの [プロバイダー] タブから取得できます。

価格

Quantinuum の課金プランを確認するには、「Azure Quantum の価格」を参照してください。

制限とクォータ

Quantinuum のクォータは、Quantinuum 量子コンピューターに送信されたジョブの QPU 使用量クレジット ユニット H-System Quantum Credit (HQC)、エミュレーターに送信されたジョブのエミュレーター HQC (eHQC) に基づいて追跡されます。

HQC と eHQC はジョブの実行コストを計算するために使用され、次の式に基づいて計算されます。

$$ HQC = 5 + C(N_{1q} + 10 N_{2q} + 5 N_m)/5000 $$

各値の説明:

  • $N_{1q}$ は、回路内の単一量子ビット演算の数です。
  • $N_{2q}$ は、回路内のネイティブな 2 量子ビット演算の数です。 ネイティブ ゲートは、複数の単一量子ビット ゲートまでの CNOT と同等です。
  • $N_{m}$ は、回路内の State Preparation and Measurement (SPAM) 演算の数です。これには、初期の暗黙的な状態準備、中間と最終の測定値、および状態のリセットが含まれます。
  • $C$ はショットの回数です。

注意

HQC の総コストには、条件付きブランチまたは制御フロー全体のすべてのゲートと測定値が含まれます。 これは、統合ハイブリッド ジョブに大きな影響を与える可能性があります。

クォータはプランの選択に基づいており、ポート チケットを使用して増やすことができます。 現在の制限とクォータを確認するには、Azure portal のワークスペースで [クレジットとクォータ] ブレードに移動し、[クォータ] タブを選択します。 詳細については、「Azure Quantum quotas」(Azure Quantum クォータ) を参照してください。

Note

課金プランではなく Azure Quantum クレジット プランを使用している場合、クォータ情報は割り当てられたクレジットに対応付けられています。 その場合、クォータでは受け取ったクレジットの合計数が一覧表示されます。