Azure Quantumを使ってみる
2022-12-02
azblob://2022/12/02/eyecatch/2022-12-02-try-to-azure-quantum-000_0.jpg

今回はAzure上で量子コンピュータを使うことができる、Azure Quantumの使ってみた記事です。
量子コンピュータに関する詳しい説明は割愛します...  詳細はMicrosoftのドキュメントなどを参照ください。

流れ

Azure Quantum ワークスペースの作成
Azure Quantum ノートブックの作成
プログラムの実行

Azure Quantum ワークスペースの作成

まずはAzure PortalでAzure Quanatumのリソースにアクセスし、ワークスペースを作成します。
このときに簡易作成か高度な作成のどちらを選択するか聞かれますが、今回はお試しなので簡易作成で行います。

任意のリソース名とリージョンを選択して作成をクリックするとワークスペースが作成されます。今回はEastUSリージョンで行いました。
リソースグループ名はAzureQuantum 固定になります。

 

ノートブックの作成

作成されたワークスペースを開き、左のNotebookを選択、 表示されるMy Notebookを選択します。Add Newを押すと新規ノートブックを作成できます。
今回はQ#言語を用いてプログラムを作成していくのでIQ#を選択します。名前の欄はよしなに入れましょう。

作成されたノートブックを開くと、接続文字列がデフォルトで入れられているのでこちらを押すと使用可能なQPUが出力されます。

%azure.target 使いたいQPU 

のコードブロックを作成し、実行することで使用するQPUを選択できます。今回は ionq.simulator を使って実行したいと思います。 (ionq.qpu を使いたかったのですが人気のQPUのため実行時間が結構かかるので...)

今回はこちらのプログラムを使って実行します。プログラムはこちらを参考にしました。このコードブロックを実行すると関数が定義されます。

open Microsoft.Quantum.Canon;
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Math;
open Microsoft.Quantum.Convert;

operation GenerateRandomBit() : Result {
    use q = Qubit(); // 量子ビットの割り当て
    H(q); // H操作を行い、量子を重ね合わせる
    let r = M(q); // 量子ビットの測定を行う

    return r; 

}

次に

 %azure.execute GenerateRandomBit 

を実行し、この関数を実行します。

実行すると結果が表示されます。今回は量子ビットの観測を行ったので、どの程度の確率で1と0が出力されるのかのヒストグラムが出力されています。
今回は量子ビットを重ね合わせて実行したので1と0が50%の確率で出るようになっています。

もし処理結果が出なかった場合は

%azure.status

を実行、もしくは左ブレードのジョブ管理をクリックすることでジョブのステータスを確認することができます。

まとめ

AzureQuantumを使ってAzure上から量子コンピュータを使うことができました。意外と簡単に使うことができたので使う機会があれば使いたいと思います。(量子コンピュータを使うほど高度な問題を解く予定がないので今後使うかは微妙ですが)

余談

本当は量子コンピュータを使った乱数生成の記事を書こうと思っていたのですがドキュメントに

注意

現在このコード スニペットは、呼び出し可能な ResultArrayAsInt完全な計算プロファイルを持つ QPU が必要であるため、どの使用可能な Azure Quantum ハードウェア ターゲットでも実行できません。

https://learn.microsoft.com/ja-jp/azure/quantum/tutorial-qdk-quantum-ra…

と書かれていたので頓挫しました。将来的に実行できるようになったらこちらもまた機会を見て書きたいですね。