マイクロソフトは2017年9月の「Ignite 2017」で、量子ゲート方式を採用した量子コンピュータの開発を進めていることを明らかにし、併せてVisual Studioで使える量子ゲート方式の量子コンピュータ向けプログラミング言語「Q#」を発表しました。12月には、Q#を使って量子コンピューティングを行うための開発キット(Quantum Development Kit)の無償提供を開始しています。
この開発キットには、Q#言語とコンパイラー、ライブラリのほか、皆様がお使いのx64 Windows PCでデバッグできる量子コンピュータのシミュレータ、Visual Studio 2017をQ#用に整備する拡張機能が含まれています。
今回は、この開発キットを使って、1.Q#開発環境を整備する手順、2.量子コンピューティングの手始めとなる「量子もつれを測定可能にする」手順を紹介します。
1.1 環境のセットアップ
現状では、Quantum Development Kitは、64Bit OSのみ提供されています。加えて、CPUはAVX(Advanced Vector Extensions)拡張命令をサポートしている必要があります。
Intel系のプロセッサでは、2011 Q1以後に出荷を開始した、Sandy Bridge以後のプロセッサが該当します。AMD系のプロセッサでは、2011 Q4以後に出荷を開始した、Bulldozer以後のプロセッサが該当します。
よって、インストールするOSは、Windows 7 SP1以後の64Bit対応版の最新アップデート版が必要となります。
- Windows Server 2016: Standard Datacenter
- Windows 10
- Windows 8.1
- Windows Server 2012 R2
- Windows 7 SP1
1.2 Azure Dev Test Labs
筆者は、環境準備が面倒だったので、Azure Dev Test Labsを使って、Windows 10がインストールされた検証マシン環境を準備しました。検証後の環境保持や自動起動、自動停止などに使うことができるのでとても便利です。
1.3 Visual Studio 2017のインストール
以下のURLからVisual Studio 2017のインストールを行います。
https://www.visualstudio.com/ja/downloads/
学生の方、オープンソースソフトウェアの開発、個人の開発者であれば、Visual Studio Community 2017を無料で使うことができます。筆者は以下をインストール時に選択しました。
- ユニバーサルWindowsプラットフォーム開発
- .NETデスクトップ開発
- ASP.NETとWeb開発
- Azureの開発
- .NET Coreクロスプラットフォーム開発
1.3 量子コンピューティングSDKのダウンロード
マイクロソフトのこちらのサイトから量子コンピューティングのSDKをダウンロードしましょう。ダウンロード後にQsharpVSIX.vsixをダブルクリックして、セットアップを行います。
1.4 サンプルプロジェクトのダウンロード
Microsoft Quantum Development Kit Samples and Librariesとして、GitHubでプロジェクトが公開されています。まずは、このプロジェクトをダウンロードするか、Cloneしましょう。Gitを使いなれた方はCloneするとよいでしょう。
今回はダウンロードして、Quantum-master.zipを適当なディレクトリに展開しました。
1.5 プロジェクトの起動
展開したら、QsharpLibraries.slnをダブルクリックして、プロジェクトを開きます。 この際に、必要な環境がそろってなかった場合のチェックが行われ、インストールが促されますので、その場合はVisual Studioに足りない機能を追加してください。
1.6 量子コンピューティングSDKの確認
必要な機能が追加されたら、再度プロジェクトを開きます。
右のソリューションエクスプローラーからSamples > 0. Introductionフォルダを開いてください。その中に「TeleportationSample」のプロジェクトがあります。これは量子テレポーテーションを検証するプロジェクトです。このプロジェクトを右クリックして、Set as Startup Projectで実行プロジェクトに指定します。
指定が終わったら、F5キーを押して実行してみましょう。コンパイルが終わり量子テレポーテーションの結果が表示されたら、環境の準備はできています。