量子コンピューターで利用できるプログラミング言語は何ですか?


53

この質問から、私は主要な量子コンピューティングプログラミング言語がQ#QISKitであることを収集しました

量子コンピューターのプログラミングに使用できる他のプログラミング言語は何ですか?特定のものを選択することには特定の利点がありますか?

編集:エミュレーターではなく、プログラミング言語を探しています。エミュレータは物事をシミュレートします。プログラミング言語は、命令を記述する方法です(実際のオブジェクト用またはエミュレーター用)。複数のエミュレーターで機能する単一の言語がある場合もあれば、その逆の場合もあります。


ここで受け入れられた回答に記載されている言語は、実際には既存の量子コンピューターに対して実際には実行できないことを指摘したいと思います。1)既存のハードウェアに対して実行するためにコンパイルできない言語を要求していることを明確にするために質問を編集するか、2)別の回答を受け入れる方が合理的かもしれません。
ダニエルサンク

1
@DanielSank Wikipediaリスト1を受け入れました。これは、リストが実際にハードウェアで実行される言語を含むように更新されると想定したためです。Wikipediaが引き続きそのページを保持していると仮定すると、これが最良の応答として機能します。
プロQ

1
@ProQ-私の答えにマイナーアップデートがあります。さらに、私の答えはカット/ペーストではなく、リンクを検証したことを明確にしました。リンク切れを修正しました。重要な寄稿者のウェブサイトを追加しました。-時々戻って、この答えが「ほぼ素晴らしい」ことを確認します。回答と維持の詳細が扱われています。私の答えのいくつかの言語は、購入可能なハードウェアで実行され、定期的に使用されています。あなたの信仰ProQに感謝します。
ロブ

また、Julia(github.com/QuantumBFS/Yao.jl)で書かれたYao(人間向けの拡張可能な効率的な量子アルゴリズム設計)もあります。そして、ここここで比較を見つけることができます。
スカン

回答:


35

量子コンピュータープログラミング言語のウィキペディアリスト

(この回答はそのWebページのコピーではなく、より更新され、検証済みのリンクが使用されています。場合によっては、著者の論文またはWebサイトのリンクが追加されます。)

ウェブサイトQuantum Computing Reportには、 12個以上のリンクを含むTools Webページがあり、一部は新しいリストもう1つは上記のリストを繰り返します。

QuanTikiのWebページ「QCシミュレーターのリスト」も参照してください。C/ C ++、CaML、OCaml、F#、およびGUIベース、Java、JavaScript、Julia、Maple、Mathematica、Maximaに基づくシミュレーターおよびプログラミング言語の膨大なリスト、Matlab / Octave、.NET、Perl / PHP、Python、Scheme / Haskell / LISP / ML、および電卓、コンパイラ、シミュレータ、ツールキットなどを提供するその他のオンラインサービス

特定のものを選択することには特定の利点がありますか?

特定の量子コンピューターの使用を計画している場合、メーカーが開発したプログラミング言語がその特定のマシンに最適であり、十分にサポートされていることを期待します。

次の大きい言語を選択すると、利用可能なフォーラムが増え、バグ修正とサポートが増えることを意味します。

残念ながら、それはユーザーベースを獲得するために苦労するいくつかの素晴らしいニッチ製品を残します。強力で表現力があり、さまざまなプラットフォームでサポートされている1つの言語を見つけようとするのがコツです。答えは意見ATMです。

4つのソフトウェアプラットフォームの評価:Forest(pyQuil)、QISKit、ProjectQ、およびQuantum Developer Kitは、Ryan LaRoseによって「ゲートレベルの量子ソフトウェアプラットフォームの概要と比較」(2018年7月6日)で提供されています。


アップデート:

GoogleのCirqとOpenFermion-Cirq:「GoogleのAIブログ-Cirqの発表:NISQアルゴリズムのオープンソースフレームワーク」。

D-WaveのLeap and Ocean SDKは、使用されているコアアルゴリズムがオープンソースプールに入ると仮定して、ワークロードを無料でテストおよび実行するための2000+キュービット量子アニーリングマシンへのアクセスを備えたクラウド環境のD-Wave 2000Q™システムへのアクセスを可能にします。D-WaveのLeap In Webページでログインに適用します。

Rigetti ComputingのQuantum Cloud Service(QCS)は、Quantum Machine Image、Forest 2.0で事前構成された仮想化プログラミング、実行環境を提供し、128キュビットコンピューターの最大16キュビットにアクセスします。

富士通のデジタルアニーラー、従来のコンピューターよりも約10,000倍高速に計算を実行できるアーキテクチャに関する情報をお楽しみに。最終的に真の量子コンピューターと互換性のある開発環境を提供する場合、これらの2つのパラグラフはこの回答に残ります。それ以外の場合は削除します。

彼らのシリコンチップではないが、自然富士通における量子と提携している1Qbit「と記載されているものを開発するためにクアンタムは、AIのクラウドサービスをインスピレーションを得た彼らのかどうか、」デジタルアニールは、アヒルのように(D-Waveのようなアニールを、鳴く互換性のあるコードを使用しています)見られたままで。富士通デジタルアニーラーテクニカルサービスにアクセスするには、こちらをご覧ください。

ペンシルバニア大学のQWIRE合唱団)は、量子回路言語および形式検証ツールであり、GitHub Webページがあります。

レビュー:Cirq、Cliffords.jl、dimod、dwave-system、FermiLib、Forest(pyQuil&Grove)、OpenFermion、ProjectQ、PyZX、QGL.jl、Qbsolv、Qiskit Terra and Aqua、Qiskit Tutorials、およびQiskit.js、 Qrack、Quantum Fog、Quantum ++、Qubiter、Quirk、reference-qvm、ScafCC、Strawberry Fields、XACC、そして最後にXACC VQEが論文で提供されています:「量子コンピューティングのオープンソースソフトウェア」(2018年12月21日)、Mark Fingerhuth、トマーシュ・バベジ、ピーター・ウィッテク。

過度にぶつかることなく、随時この回答に戻って更新を行います。



ある種の「プログラミング」関連ニュース:IBMは、一般向けに53 Qubitコンピューターを来月発表します
ロブ

28

ゲートモデルのハードウェアベンダーは、独自の低レベル言語を構築しています。

これらには、より高いレベルのpython SDKが用意されています。

Rigettiはまた、Groveと呼ばれる事前に構築されたアプリケーションを呼び出すために、より高いレベルのライブラリに言語をラップしています。

マイクロソフトは、既存のシミュレーター、そして最終的には物理ハードウェアに対して実行するQ#を開発しました。

上記の言語はベンダー固有であるため、主な利点は、コンピューターで量子プログラムを実行できることです。

ベンダー固有の言語以外には、プリンストンの研究者によって開発されているScaffoldがあります。この言語には、プログラムを分析してコスト、パフォーマンスの可能性、およびスケーラビリティの可能性を判断するためのツールチェーンが含まれているため、興味深いものです。

編集:Project Qは、含まれているシミュレーターで実行できるPythonを利用したプログラムを開発できる別のフレームワークです。

Oak Ridge National Labsは、ベンダー固有のコードを抽象化して、各ベンダー固有の言語でコードを複製することなく、ユーザーがさまざまなハードウェアプラットフォームにアクセスできるようにすることを目的としたXACCと呼ばれるプロジェクトの作業を開始しました。


3
projectq.chも言及に値します。
ジェームズウートン

1
既存のハードウェアに対して実際に実行できる言語を説明しているため、この回答が気に入っています。
ダニエルサンク


3

IBMのComposerを含めます。バグやエラー、機能をすべて入手できるわけではないため、プログラミングのようには感じませんが、ゲートの指示をQASMに明確に変換し、実際のIBMシミュレーターまたは実際のIBM量子コンピューターで実行します(選択はユーザーの)。


1

残念ながら、Quantikiのリストはかなり古く、よく管理されていません。量子環境は常に進化しているため、この質問に対する単一の回答にすべての量子プログラミング言語をリストすることさえも持続可能ではありません。たとえば、GoogleはCirqをリリースしました。これは、数日前に発表されて以来、上記の回答のいずれにも掲載されていない、ノイズのある中間スケール量子(NISQ)コンピューター用の新しい量子プログラミングフレームワークです。

この問題に対処し、QC StackExchangeに関する別の質問の回答として、GitHubのオープンソースソフトウェアプロジェクトの厳選されたリストを開始しました。これには、積極的に開発された量子プログラミング言語とフレームワークの包括的な概要も含まれています。このリストはコミュニティによって積極的に管理されており、常に新しいプロジェクトを追加しています。


2
これは素晴らしいリソースのようです。ありがとうございました!単なるオープンソースではないプロジェクトのリストが他にもあるのだろうか。
プロQ

1
@ProQ正直に言うと、オープンソースのリストは量子ソフトウェア空間の95%以上をカバーしていると思います。パブリックアクセスを備えたクローズドソースパッケージはほとんどなく、パブリックアクセスのない企業内で内部で使用される量子ソフトウェアを気にする必要はありません。
マークフィンガーハス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.