と Azure Quantum Development KitとはQ#

Azure Quantum Development Kit (モダン QDK) は、Azure Quantum サービスとのインターフェイスに必要な SDK です。 を Quantum Development Kit使用すると、Azure Quantum の量子ハードウェアで実行される量子プログラムを構築できます。

注意

Microsoft Quantum Development Kit (クラシック QDK) は、2024 年 6 月 30 日以降はサポートされなくなります。 既存の QDK 開発者の場合は、量子ソリューションの開発を続けるために、新しい Azure Quantum Development Kit (モダン QDK) に移行することをお勧めします。 詳細については、「 コードを Q# モダン QDK に移行する」を参照してください。

モダン QDK は、Fault-Tolerant Quantum Computing (FTQC) の準備ができている唯一の開発キットです。 モダン QDK を使用すると、次のことができます。

  • コードをデバッグします。 従来のコードと量子コードをステップ実行できる量子コンピューティング デバッガーが提供されます。 スパースメモリ内シミュレーターと組み合わせて、最大数千の論理量子ビットの高速シミュレーションを提供します。

  • プラットフォームを選択します。 Modern QDK は、インストール不要の Web ブラウザーで実行され、PC、Mac、または Linux マシン上の VS Code 拡張機能を使用して実行されます。

  • コードをより速く記述する: IntelliSense を使用した構文の強調表示とインテリジェントなコード補完と、Copilot を支援するコード ブロック全体を記述します。

  • 任意のハードウェアでを実行します。 QDK は Azure Quantum とシームレスに統合され、さまざまな量子コンピューターとシミュレーターでアルゴリズムを実行できます。

  • FTQC の設計: 最先端の Azure Quantum Resource Estimator と組み合わせて、量子コンピューティング専用に設計された言語を提供します。これにより、 Q#量子ビット アーキテクチャについて考え、ハードウェアを抽象化し、使用している target量子マシンによって実行されるすべての古典的計算と量子計算を組み合わせることができます。

ヒント

量子コンピューティングの取り組みを加速する場合は、Azure Quantum Web サイトのユニークな機能である Azure Quantum を使用してコードをチェックします。 ここでは、組み込みのサンプルまたは独自Q#のQ#プログラムを実行し、プロンプトから新しいQ#コードを生成し、ワンクリックで VS Code for the Web でコードを開いて実行し、Copilot に量子コンピューティングについて質問することができます。

量子プログラミング言語 Q#

モダン QDK には、量子プログラミング言語 Q#が含まれています。これは、量子プログラムを作成するためにアルゴリズム レベルで作業に集中できる、高レベルの オープンソース プログラミング言語です。

Q# は、量子アルゴリズムを開発および実行するための オープンソースの高レベルのプログラミング言語です。 これは (QDK) の Quantum Development Kit 一部であり、ハードウェアに依存せず、量子アプリケーションの全範囲にスケーリングし、実行を最適化するように設計されています。

プログラミング言語としての Q# では、Python、C#、F# から一般的な要素を取り入れ、ループ、if/then ステートメント、共通データ型を使用してプログラムを作成するための基本的な手続き型モデルがサポートされています。 また、新しい量子固有のデータ構造と操作 ( 成功までの繰り返しなど) も導入され、量子計算と従来の計算の統合が可能になります。 たとえば、従来のプログラムのフロー制御を、量子測定の結果に基づいて行うことができます。

アルゴリズムを記述する場合、量子プログラミング言語は、言語、コンパイラ、ランタイムに関する次の要件を満たしている必要があります。

  • 抽象量子ビット。 量子アルゴリズムでは、特定のハードウェアまたはレイアウトに関連付けられていない量子ビットが使用されます。 コンパイラとランタイムは、プログラム量子ビットから物理量子ビットへのマッピングを処理します。
  • 量子計算と古典的計算。 従来の計算と量子計算を実行する機能は、ユニバーサル量子コンピューターでは不可欠です。
  • 物理学の法則を尊重する。 量子アルゴリズムは、量子物理学の規則に従います。 たとえば、量子ビットの状態を直接コピーまたはアクセスすることはできません。

詳細については、量子プログラミング言語のユーザー ガイドをQ#参照してください。

Azure の概要 Quantum Development Kit

量子プログラミングを開始する方法は複数あります。 ニーズに最適なオプションを選択できます。

ヒント

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

Azure Quantum Web サイト

Azure Quantum Web サイトは、量子プログラミングを開始する最も簡単な方法です。 Azure Quantum Web サイトの オンライン コード エディター を使用すると、セットアップを必要とせずブラウザーでコードを実行 Q# し、Copilot にヘルプを求めることができます。 オンライン コード エディターでワンクリックで、 VS Code on the web でコードを開き、事前構成済みの量子環境で無料で作業を続けることができます。

注意

Azure Quantum Web サイトは無料で、Azure アカウントは必要ありません。

Azure Quantum ポータルのサンプル

追加のソフトウェアをインストールせずに Q# プログラムの練習と作成を開始する場合は、Azure portal の Azure Quantum ワークスペースで使用できるホスト型 Jupyter Notebook を使用できます。 サンプル ギャラリーに、注釈付きのノートブック サンプルのコレクションが用意されています。探索するサンプルを選択し、クラウドベースのシミュレーターまたは実際の量子コンピューターで実行できます。

注意

ホストされている Jupyter Notebook を使用するには、Azure アカウントが必要です。 Azure アカウントをお持ちでない場合は、 無料でアカウントを作成できます。

ローカル開発環境

ローカル開発環境を使用する場合は、 Visual Studio Code 用のモダン QDK 拡張機能をインストールできます。 モダン QDK 拡張機能は、構文の強調表示、リアルタイムのコーディング フィードバック、デバッグなど、 用 Q#の完全な機能を備えた開発環境を提供します。

Modern QDK 拡張機能の使用を開始するには、次の チュートリアルを参照してください。

ヒント

モダン QDK には、および量子コンピューティングの詳細Q#を学習するために使用できる一連の組み込みQ#サンプルが含まれています。 サンプルを表示するには、新 Q# しいファイルを開き、「 」と入力 sampleし、表示するサンプルをオプションの一覧から選択します。

量子開発ワークフロー

次の図は、量子プログラムがアイデアから Azure Quantum での実装を完了するまでの段階と、各ステージに提供されるツールを示しています。

量子プログラミング開発のワークフローを示す図。

開発環境を選択する

任意の開発環境で量子プログラムを実行します。 Azure Quantum Web サイトのオンライン コード エディター、Azure portalの Azure Quantum ワークスペースで使用できるホストされた Jupyter Notebook、または独自のローカル開発環境を使用できます。

量子プログラムを記述する

QDK では、 の Q#サポートだけでなく、 Qiskit、および量子コンピューティング用 の Cirq 言語もサポートされています。

まず、チュートリアルに Q# 従って、 重ね合わせエンタングルメントグローバーの量子アルゴリズム、その他の量子現象などの量子概念を調べることができます。

Python と統合する

QDK を使用すると、プログラムを Python と統合 Q# できます。 Python プログラムを使用して操作を呼び出Q#すことができます。

リソースの見積もり

量子ハードウェアで実行する前に、プログラムを既存のハードウェアで実行できるどうか、またどれだけのリソースを消費するかを確認する必要があります。

Azure Quantum Resource Estimator を使用すると、アーキテクチャの決定を評価し、量子ビット テクノロジを比較し、特定の量子アルゴリズムの実行に必要なリソースを決定できます。 事前に定義されたフォールト トレラント プロトコルから選択し、基になる物理量子ビット モデルの前提条件を指定できます。

詳細については、「最初の リソース見積もりの実行」を参照してください。

注意

Azure Quantum Resources Estimator は無料で、Azure アカウントは必要ありません。

シミュレーターでプログラムを実行する

量子プログラムをコンパイルして実行すると、QDK によって量子シミュレーターのインスタンスが作成され、コードが Q# 渡されます。 シミュレーターでは、Q# コードを使用して量子ビット (量子粒子のシミュレーション) を作成し、変換を適用してその状態を変更します。 その後、シミュレーター内の量子演算の結果がプログラムに返されます。 シミュレーター内で Q# コードを分離すると、アルゴリズムが量子物理学の法則に従うようになり、量子コンピューターで正しく実行できます。

Azure Quantum サービスにジョブを送信する

プログラム (ジョブとも呼ばれます) は、ローカルとオンラインの両方の任意の開発環境を通じて Azure Quantum に送信 Q# できます。 詳細については、Q# ジョブの送信方法に関する記事を参照してください。 Qiskit 言語と Cirq 言語で記述された量子回路を実行して送信することもできます。

Azure Quantum は、業界のリーダーから現在利用できる最も魅力的で多様な量子ハードウェアの一部を提供しています。 現在サポートされているハードウェア プロバイダーの一覧については、量子コンピューティング プロバイダーに関する記事を参照してください。

注意

クラウドベースの Quantinuum H シリーズ エミュレーターtarget は、Azure アカウントなしで使用できます。 Azure Quantum プロバイダーの残りの部分にジョブを送信するには、Azure アカウントと量子ワークスペースが必要です。 量子ワークスペースがない場合は、「 Azure Quantum ワークスペースを作成する」を参照してください。

次の図は、ジョブを送信した後の基本的なワークフローを示しています。

Azure Quantum へのジョブの送信後のワークフローを示す図。

詳細な説明が必要な場合、Quantum Katas では、一般的な量子演算や量子ビットの扱い方など、量子コンピューティングの概念について優れた概要が提供されています。