Help us understand the problem. What is going on with this article?

Q#言語で簡単に、量子コンピューティングをDockerで実行する

Q# は、Microsoftが開発している量子コンピューティング用プログラミング言語です。

Q# プログラミング言語 - Microsoft Quantum | Microsoft Docs

2020年現在、私のような一般のプログラマには量子コンピュータを使ってプログラミングする方法はありません。しかし Q# には量子コンピューティングのシミュレーション機能が含まれており、また Q# はOSSとして開発されているため、Q# を使うことで誰でも量子コンピューティングを体験できます 。Q# の実行環境はDocker Imageでも提供されていて、WindowsはもちろんLinux上でも実行できます。

なお Q# のプログラム自体は既存の"古典的な"コンピュータ用プログラミング言語(C言語、Go言語、Lazy K等)とは全く異なる体型を持っていて、一般の古典的プログラマには超絶に難しいのですが、ただ Q# を動かすだけなら簡単にできます。Q# の文法や機能などは本稿では一切説明しません。私もまだ一切分からないからです

環境

  • Docker 19.03.4
  • Q# 0.10.1912.501
  • Python 3.7.5

Q# プログラムの記述

こちらが Q# のHello Worldプログラムです。MyNamespace.Mainというoperationを定義しています。

main.qs
namespace MyNamespace {
  operation Main () : Unit {
    using (register = Qubit()) {
      Microsoft.Quantum.Intrinsic.Message("Hello, Q#");
    }
  }
}

Q# は、他の古典的プログラミング言語から呼び出して利用します。
下記はPythonからMain operation を呼び出す例です。

main.py
print("Hello, Python!")

import qsharp
qsharp.get_workspace_operations()

from MyNamespace import Main

Main.simulate()

Dockerで Q# 実行環境の構築

Q# の実行には本来Python等のセットアップも必要で面倒なのですが、全部入りのdocker iamgeがMicrosoftの Container Registryから提供されているため、簡単に実行できます。

Dockerfile
FROM mcr.microsoft.com/quantum/iqsharp-base:latest

WORKDIR /app
COPY . ./
docker-compose.yml
version: '3'
services:
  q:
    build: .
    volumes:
      - ./:/app

実行

上記Dockerfikedocker-compose.ymlファイルを作成した後にbuildすれば、Q# が動きます。

$ docker-compose build
$ docker-compose run q python main.py

Hello, Python!Hello, Q#とが両方表示されれば成功です。

Git管理する場合は、gitignoreにobj/を登録しましょう。

.gitignrore
obj/

以上で Q# を動かすことができました。

まとめ

Q# は簡単に動かすことができます。量子コンピューティングの時代は目前まで来ています。

もし Q# や量子コンピューティングに興味を持ったら、上記の実行環境を片手にMicrosoftのドキュメントを読んでください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした