LoginSignup
0
1

量子ソフトウェア開発環境のまとめ 2024年版 (量子アセンブリ言語)

Last updated at Posted at 2024-02-22

量子ソフトウェア開発環境について俯瞰したいと思ってまとめ記事を作成しました。次の内容で分割した連載記事になる予定です。

  1. 量子アセンブリ言語
  2. 量子プログラミング言語
  3. 量子SDK
  4. 量子クラウドコンピューティング

この記事では「量子アセンブリ言語」を紹介します。比較表で量子アセンブリ言語の違いをまとめてあります。
それぞれの言語ごとに論文へのリンクと ベル状態(Bell state) のコードサンプルを載せています。

量子アセンブリ言語とは

量子アセンブリ言語とは量子コンピュータやそのシミュレータを動かすためのプログラミング言語でハードウェアには直接依存しません。量子アセンブリ言語を使って量子回路を操作したり値を測定するコードを記述します。

量子アセンブリ言語の比較

主要な量子アセンブリ言語を開発年順に並べました。

量子アセンブリ言語 サポート団体 開発年 ライセンス 実行環境(シミュレータ)
QMASM D-wave 2016 BSD-ish D-Wave Ocean
Quil Rigetti 2016 APL2.0 qvm
OpenQASM IBM 2017 APL2.0 IBM Q Emulator
cQASM QuTech 2018 APL2.0 QX emulator
Blackbird Xanadu 2019 APL2.0 Strawberry Fields simulator

量子アセンブリ言語 (Quantum instruction sets)

QMASM

QMASM は D-wave が開発した量子アセンブラ。量子アニーリング型コンピュータで組み合わせ最適化問題を解くための言語。論文 は 2016年に公開されました。
量子アニーリング型のためコードサンプルなし

Quil

QuilRigetti がサポートしているアセンブリ言語。2016年に 論文 があります。
PyQuil で Quil のプログラムを生成して quilc でコンパイルします。qvm でシミュレーションできます。

Quil のコード

H 0
CNOT 0 1

OpenQASM

OpenQASMIBM Q が対応しているアセンブリ言語。現状では v3 のドラフトを策定中。OpenQASM v1OpenQASM v2 の論文がそれぞれ公開されています。

OpenQASM 2.0 による Bell state のコードサンプル

OPENQASM 2.0;
include "qelib1.inc";

qreg q[2];
creg c[2];

reset q[0];
h q[0];
reset q[1];
cx q[0],q[1];
measure q[0] -> c[0];
measure q[1] -> c[1];

cQASM

cQASMQuTech がサポートしてる量子アセンブリ言語。2018年に cQASM v1.0: Towards a Common Quantum Assembly Language の論文が公開されている。libqasm という名前のライブラリで提供されていて CPython の API があります。

cQASM による Bell state のコードサンプル

qubits 2

.prepare
    prep_z q[0:1]

.entangle
    H q[0]
    CNOT q[0], q[1]

.measurement
    measure_all

Blackbird

BlackbirdXanadu がサポートするアセンブリ言語。フォトニックモードを使います。2019年に公開された 論文 があります。

Blackbird を使った Bell state のサンプルコード

version 1.0
target X8_01 (shots=1)

Vac | 0
Vac | 1

BSgate(pi/4, pi) | (0, 1)

Rgate(pi/2) | 1

MeasureFock() | 0
MeasureFock() | 1

参考文献

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1