次の方法で共有


Quantinuum プロバイダー

ヒント

初めてのユーザーは、参加している各量子ハードウェア プロバイダーで使用するために、自動的に USD 500 無料の 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 56 量子ビット これを使用して、Quantinuum のプラットフォーム上のハードウェアまたはエミュレーターに送信する前に、H2-1 コンパイラに対して量子プログラムを検証します。 無料。
H1-1 エミュレーター quantinuum.sim.h1-1e 20 量子ビット H1-1のリアルな物理モデルとノイズ モデルを使用します。
H2-1 エミュレーター quantinuum.sim.h2-1e 56/32 量子ビット H2-1のリアルな物理モデルとノイズモデルを使用。 56 量子ビット シミュレーションは、安定化シミュレーションとしてのみ使用できます
H1-1 quantinuum.qpu.h1-1 20 量子ビット Quantinuum の H1-1 トラップ型イオン デバイス。
H2-1 quantinuum.qpu.h2-1 56 量子ビット クォンティヌムのH2-1トラップイオンデバイス。

Quantinuum は targets プロファイルに QIR Adaptive RI 対応します。 この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
  • ターゲット実行プロファイル: QIR Adaptive RI

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

System Model H1 Emulator

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

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

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

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

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

H シリーズ エミュレーターは、Azure Quantum Web サイトの [Code with 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
  • ターゲット実行プロファイル: QIR Adaptive RI

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

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

  • ジョブの種類: Simulation
  • データ形式: quantinuum.openqasm.v1
  • ターゲット ID:
    • H2-1 エミュレーター: quantinuum.sim.h2-1e
  • ターゲット実行プロファイル: QIR Adaptive RI

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

システム モデル H2

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

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

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

  • ジョブの種類: Quantum Program
  • データ形式: quantinuum.openqasm.v1
  • ターゲット ID:
    • H2-1: quantinuum.qpu.h2-1
  • ターゲット実行プロファイル: QIR Adaptive RI

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

システム モデル H1 とシステム モデル H2 の技術的な詳細については、Quantinuum の製品データ シート のシステム モデル H1 および システム モデル 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-model 〗〘に設定します False。 既定では、これは True に設定されます。

option_params = {
    "error-model": False 
}

スタビライザー エミュレーターを使用するには、オプションを simulator 〘 に設定します stabilizer。 既定では、これは 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参照できます。

スタック内の TKET コンパイルをオフにするには、別のオプションno-optを内部option_paramsTrue設定できます。 たとえば、"no-opt": True のようにします。

詳細については 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
}

ジョブの送信時に最適化オプションを渡します。

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 は商用期間に対応し、 利用不可 はアップグレードのためにマシンがオフラインになっている開発期間に対応します。

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

価格

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

制限とクォータ

Quantinuum のクォータは、QPU 使用量クレジット ユニット、H-System Quantum Credit (HQC)Quantinuum 量子コンピューターに送信されたジョブ、エミュレーターに送信されたジョブのエミュレーター 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$ はショットの回数です。

Note

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

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

Note

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