Q#と Azure Quantum Development Kitとは
Azure Quantum Development Kit (QDK) は、Azure Quantum サービスとのインターフェイスに必要な SDK です。 Quantum Development Kitを使用すると、Azure Quantum の量子ハードウェア上で実行される量子プログラムを構築できます。
Azure QDK は、フォールト トレラント量子コンピューティング (FTQC) に対応した唯一の開発キットです。 QDK では次のことが可能です。
コードのデバッグ:従来のコードと量子コードをステップ実行できる量子コンピューティング デバッガーを提供します。 スパース インメモリ シミュレーターとの組み合わせによって、最大数千の論理量子ビットの高速シミュレーションを提供します。
プラットフォームを選択する: QDK はインストールなしで Web ブラウザーで実行され、PC、Mac、または Linux マシンで VS Code 拡張機能を使用します。
迅速なコードの記述:IntelliSense を使用した構文の強調表示とインテリジェントなコード補完、および Copilot の支援の下でコード ブロック全体を記述します。
好みのハードウェア上での実行:QDK は Azure Quantum とシームレスに統合され、さまざまな量子コンピューターとシミュレーター上でアルゴリズムを実行します。
FTQC: と最新の Azure Quantum Resource Estimator を組み合わせた設計により、量子コンピューティング、 Q#専用に設計された言語が提供され、量子ビット アーキテクチャについて考え、ハードウェアを抽象化し、 targetしている量子マシンによって実行されるすべての古典的計算と量子計算を組み合わせることができます。
ヒント
量子コンピューティングの取り組みを加速させる場合は、Azure Quantum Web サイトのユニークな機能である Azure Quantum を使用した Codeをご覧ください。 ここでは、組み込みの Q# サンプルまたは独自の Q# プログラムを実行し、プロンプトから新しい Q# コードを生成し、 VS Code for the Web でコードを開いて実行し ワンクリックで Copilot に量子コンピューティングに関する質問を行うことができます。
量子プログラミング言語 Q#
QDK には、量子プログラミング言語 Q#、高レベルの open-source プログラミング言語が含まれており、アルゴリズム レベルで作業に集中して量子プログラムを作成できます。
Q# は、量子アルゴリズムの開発と実行のための オープン ソース、高レベルのプログラミング言語です。 これは Quantum Development Kit (QDK) の一部であり、ハードウェアに依存せず、さまざまな量子アプリケーションにスケーリングし、実行を最適化するように設計されています。
プログラミング言語としての Q# では、Python、C#、F# から一般的な要素を取り入れ、ループ、if/then ステートメント、共通データ型を使用してプログラムを作成するための基本的な手続き型モデルがサポートされています。 また、 repeat-until-success など、新しい量子固有のデータ構造と操作も導入されています。これにより、量子計算と古典的計算の統合が可能になります。 たとえば、従来のプログラムのフロー制御を、量子測定の結果に基づいて行うことができます。
アルゴリズムを記述する場合、量子プログラミング言語は、言語、コンパイラ、ランタイムに関する次の要件を満たしている必要があります。
- 抽象量子ビット。 量子アルゴリズムでは、特定のハードウェアまたはレイアウトに関連付けられていない量子ビットが使用されます。 コンパイラとランタイムにより、プログラムの量子ビットから物理量子ビットへのマッピングが処理されます。
- 量子と従来型の計算 "ユニバーサル" 量子コンピューターでは、従来型の計算および量子計算を実行する機能が不可欠です。
- 物理学の法則を尊重する。 量子アルゴリズムは、量子物理学の規則に従います。 たとえば、量子ビットの状態を直接コピーまたはアクセスすることはできません。
詳細については、「Q#量子プログラミング言語のユーザー ガイドを参照してください。
Azure の概要 Quantum Development Kit
量子プログラミングを開始する方法は複数あります。 ニーズに最適なオプションを選択できます。
ヒント
初めてのユーザーは自動的に
Azure Quantum Web サイト
Azure Quantum の Web サイトは、量子プログラミングを開始する最も簡単な方法です。 Azure Quantum Web サイトの オンライン コード エディターを使用すると セットアップなしでブラウザーで Q# コードを実行し、Copilot にヘルプを依頼できます。 オンライン コード エディターで 1 回のクリックで、 VS Code on the web でコードを開き 構成済みの量子環境で無料で作業を続けることができます。
Note
Azure Quantum Web サイトは無料であり、Azure アカウントは必要ありません。
Azure Quantum ポータルのサンプル
追加のソフトウェアをインストールせずに Q# プログラムの練習と作成を開始する場合は、Azure portal の Azure Quantum ワークスペースで使用できるホスト型 Jupyter Notebook を使用できます。 サンプル ギャラリーに、注釈付きのノートブック サンプルのコレクションが用意されています。探索するサンプルを選択し、クラウドベースのシミュレーターまたは実際の量子コンピューターで実行できます。
Note
ホストされている Jupyter Notebook を使用するには、Azure アカウントが必要です。 Azure アカウントをお持ちでない場合は、無料でアカウントを作成することができます。
ローカル開発環境
ローカル開発環境を使用する場合は、Visual Studio Code 用の Azure QDK 拡張機能 インストール。 Azure QDK 拡張機能は、構文の強調表示、リアルタイムのコーディング フィードバック、デバッグなど、 Q#用のフル機能を備えた開発環境を提供します。
Azure QDK 拡張機能の使用を開始するには、次の Tutorialを参照してください。
ヒント
QDK には、Q#と量子コンピューティングの詳細を確認するために使用できる一連の組み込みのQ# サンプルが含まれています。 サンプルを表示するには、新しい Q# ファイルを開き、「 sample
」と入力し、表示するサンプルをオプションの一覧から選択します。
量子開発ワークフロー
次の図は、量子プログラムが Azure Quantum でのアイデアから完全な実装に移行する段階と、各ステージに提供されるツールを示しています。
開発環境を選択する
任意の開発環境で量子プログラムを実行します。 オンライン コード エディター Azure Quantum Web サイト、ホストされている Jupyter Notebooks Azure portal の Azure Quantum ワークスペースで使用できるコード エディター、または独自のローカル開発環境を使用できます。
量子プログラムを記述する
QDK では、 Q#だけでなく、量子コンピューティング用の Qiskit および Cirq 言語もサポートされています。
まず、 Q# チュートリアルに従って、 教師付け、、 要素、 Grover の量子アルゴリズムなどの量子現象などの量子概念を調べることができます。
Python と統合する
QDK を使用すると、 Q# プログラムを Python と統合できます。 Python プログラムを使用してQ#操作を呼び出すことができます。
リソースの見積もり
量子ハードウェアで実行する前に、プログラムを既存のハードウェアで実行できるどうか、またどれだけのリソースを消費するかを確認する必要があります。
Azure Quantum Resource Estimator を使用すると、アーキテクチャの決定を評価し、量子ビット テクノロジを比較し、特定の量子アルゴリズムを実行するために必要なリソースを決定できます。 事前に定義されたフォールト トレラント プロトコルから選択し、基になる物理量子ビット モデルの前提条件を指定できます。
詳細については、「 最初のリソース見積もりを実行する」を参照してください。
Note
Azure Quantum Resources Estimator は無料であり、Azure アカウントは必要ありません。
シミュレーターでプログラムを実行する
量子プログラムをコンパイルして実行すると、QDK によって量子シミュレーターのインスタンスが作成され、 Q# コードが渡されます。 シミュレーターでは、Q# コードを使用して量子ビット (量子粒子のシミュレーション) を作成し、変換を適用してその状態を変更します。 その後、シミュレーター内の量子演算の結果がプログラムに返されます。 シミュレーター内で Q# コードを分離すると、アルゴリズムが量子物理学の法則に従うようになり、量子コンピューターで正しく実行できます。
Azure Quantum サービスにジョブを送信する
Q# プログラム (ジョブとも呼ばれます) は、ローカルとオンラインの両方で、好みの開発環境を通じて Azure Quantum に送信できます。 詳細については、Q# ジョブの送信方法に関する記事を参照してください。 Qiskit 言語と Cirq 言語で記述された量子回路を実行して送信することもできます。
Azure Quantum は、業界のリーダーから現在利用できる最も魅力的で多様な量子ハードウェアの一部を提供しています。 現在サポートされているハードウェア プロバイダーの一覧については、量子コンピューティング プロバイダーに関する記事を参照してください。
Note
クラウドベースの Quantinuum H シリーズ エミュレーターtarget は、Azure アカウントなしで使用できます。 Azure Quantum プロバイダーの残りの部分にジョブを送信するには、Azure アカウントと量子ワークスペースが必要です。 量子ワークスペースがない場合は、「 Azure Quantum ワークスペースを作成する」を参照してください。
次の図は、ジョブを送信した後の基本的なワークフローを示しています。
関連するコンテンツ
詳細な説明が必要な場合、Quantum Katas では、一般的な量子演算や量子ビットの扱い方など、量子コンピューティングの概念について優れた概要が提供されています。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示