Q# プログラムを実行するさまざまな方法

Microsoft Quantum Development Kit (QDK) には、Q# プログラムを記述して実行するための 2 つの開発オプションが用意されています。 どちらのオプションもAzure Quantumとインターフェイスするため、Azure Quantum プロバイダーからシミュレーターと量子ハードウェアで Q# プログラムを実行できます。 QDK には、パーソナル コンピューターで Q# プログラムを実行するための複数のローカル シミュレーターも含まれています。

Q# プログラムの開発と実行のオプション

次の開発環境を使用して、Q# プログラムを開発し、Azure Quantumに送信する Q# ジョブを管理します。

  • Visual Studio Code: ローカル環境で Q# コードを記述、実行、デバッグし、Visual Studio Code (VS Code) の QDK 拡張機能を使用してジョブをAzure Quantumに送信します。 インストールが必要です。
  • Jupyter Notebook:qdk.qsharp Python モジュールを使用して、Jupyter Notebook で Q# コードを開発し、Azure Quantum にジョブを送信します。 インストールが必要です。
  • Azure portal: Azure サブスクリプションとAzure Quantum ワークスペースを管理し、量子プロバイダーとジョブの申請に関する情報にアクセスします。 Azure アカウントが必要です。

選択するオプションは、コーディングエクスペリエンス、量子知識、目標によって異なります。 各オプションには異なる機能があるため、それらを組み合わせて使用できます。 たとえば、VS Code で QDK 拡張機能を使用して Q# プログラムを記述し、Azure ポータルで量子ワークスペースを管理します。

Visual Studio Code

VS Code は、Microsoftの無料のオープンソース コード エディターです。 VS Code 用 QDK 拡張機能を使用すると、Q# プログラムを作成し、組み込みの Q# サンプルを読み込むことができます。 VS Code の QDK には、Q# プログラム (.qs ファイル) 用に次のようなローカル開発機能が用意されています。

  • エラー メッセージ
  • 構文の強調表示
  • デバッグ
  • CodeLens
  • IntelliSense
  • 量子コンピューターリソースの推定

QDK拡張子は、OpenQASMプログラム(.qasm ファイル)の言語サポートも提供します。

VS Code で QDK を使用するためにAzure アカウントは必要ありませんが、QDK でAzure Quantumするジョブを送信するには、Azure アカウントが必要です。 QDK を使用して VS Code から Azure Quantum ワークスペースに接続し、さまざまなAzure Quantum プロバイダーの量子コンピューターとシミュレーターで Q# プログラムを実行できます。 詳細については、「Visual Studio Codeを使用して Q# プログラムを送信する方法」を参照してください。

VS Code で QDK 拡張機能の使用を開始するには、「 QDK の設定」を参照してください。

QDK 拡張機能は、VS Code for the Web でも使用できます。これは、デスクトップ バージョンと同じAzure接続機能と Q# 言語機能を提供します。 ただし、Web では、Python、Qiskit、または Cirq プログラムはサポートされていません。

VS Code の QDK 拡張機能は自分に適していますか?

VS Code は、Q# および OpenQASM 量子プログラムの記述、実行、デバッグに役立つ CodeLens と IntelliSense を含む機能豊富な環境です。 コーディング経験があり、Q# を詳しく調べる場合は、VS Code が適しています。

次の表は、VS Code でできることとできないことを示しています。

次のことを実行できます。 次のことはできません。 必要なもの:
  • Q# プログラムと OpenQASM プログラムを実行します。
  • コード サンプルを読み込みます。
  • プログラムをデバッグします。
  • プログラムと結果を保存します。
  • コンパイラ のエラー メッセージを表示します。
  • Azure Quantum ワークスペースに接続します。
  • 量子回路を視覚化する。
  • リソース推定機能を使用します。
  • サブスクリプションとワークスペースを管理します。
  • 量子ジョブを管理します。
  • 量子コンピューティング プロバイダーとプランを選択します。

Jupyter Notebook

QDK には豊富な qdk Python ライブラリがあり、.py Python ファイルまたはJupyter Notebookで Q# プログラムを開発できます。 QDK Python ライブラリでは、Qiskit、Cirq、PenyLane などの他の量子言語もサポートされています。

qdk Python ライブラリには、量子プログラムの開発とAzure Quantumジョブの管理に役立ついくつかのモジュールが含まれています。 たとえば、qsharp モジュールを使用すると、Jupyter Notebookで Q# コードを記述できます。azure モジュールを使用すると、量子ワークスペースに接続し、ジョブをAzure Quantumに送信できます。

qdk Python ライブラリとモジュール機能の概要については、PyPi Web サイトの QDK プロジェクトの説明を参照してください。

PythonとJupyter Notebookは私にとって正しいですか?

Jupyter Notebookは、Pythonコードを記述し、出力をすべて 1 つの開発環境で視覚化するのに便利です。 Pythonで開発し、複数の量子プログラミング言語のサポートが必要な場合は、QDK Python ライブラリとJupyter Notebookが適しています。

次の表は、PythonとJupyter Notebookでできることとできないことを示しています。

次のことを実行できます。 次のことはできません。 必要なもの:
  • 複数の量子プログラミング言語で開発します。
  • プログラムと結果を保存します。
  • Azure Quantum ワークスペースに接続します。
  • 量子回路を視覚化する。
  • リソース推定機能を使用します。
  • サブスクリプションとワークスペースを管理します。
  • 量子ジョブを管理します。
  • 量子コンピューティング プロバイダーとプランを選択します。

Azure portal

Azure portal は、Microsoft Azure クラウド コンピューティング プラットフォームのメインのインターフェイスです。 ポータルから、Azure Quantum ワークスペースを作成して量子プログラムを実行し、quantum ハードウェア プロバイダーにジョブを送信し、ジョブの結果をAzure Quantumストレージ アカウントに格納できます。 サブスクリプション、アクティビティ、クレジット使用量、クォータ、アクセス制御を管理することもできます。

Azure portal は自分に適していますか?

Azure portal から、チーム メンバーや学生など、ユーザーのグループに量子ワークスペースへのアクセス権を付与できます。 ジョブとサブスクリプションを管理したり、請求書を確認したり、さまざまな量子プロバイダーを試したりする場合は、Azure ポータルが適しています。

次の表は、Azure portal でできることとできないことを示しています。

次のことを実行できます。 次のことはできません。 必要なもの:
  • 量子ワークスペースを作成します。
  • サブスクリプションとワークスペースを管理します。
  • ワークスペースのアクセス キーをコピーします。
  • 量子ジョブを管理します。
  • プログラムと結果を保存します。
  • 量子コンピューティング プロバイダーとプランを選択します。
  • 量子プログラムの開発
  • 量子回路と結果を視覚化します。
  • プログラムのリソース見積もりを計算します。
  • Azure サブスクリプション。
  • Azure Quantum ワークスペース。

Q# 学習用のリソース

Q# プログラミング言語を学習して調べるには、次のリソースを使用します。

  • Azure Quantum ラーニング パス: 量子コンピューティングに関心があるが、どこから始めればいかわからない場合は、このラーニング パスを使用します。 一連の対話型モジュールを通じて、量子コンピューティングと、Q# と QDK を使用してAzure Quantumで量子ソリューションを開発する方法について学習します。
  • Quantum Katas: 量子コンピューティングとプログラミングについて、これらの自己ペースのチュートリアルと共に学習します。それぞれに関連する理論と Q# 演習を使用して、知識をテストします。
  • Q# コード サンプル: これらのすぐに使用できる Q# サンプルを使用して、初めての量子ソリューションを構築します。 量子アルゴリズム、リソース推定、言語コンストラクト、Jupyter ノートブックの 4 つの領域をカバーします。
  • QDK プレイグラウンド: Q# で記述された一般的な量子アルゴリズムについて説明します。 プレイグラウンドは VS Code for the Web でホストされており、QDK で事前に構成されているため、何もインストールする必要はありません。