量子计算机可以使用哪些编程语言?


53

从这个问题中,我得出了主要的量子计算编程语言是Q#QISKit

还有哪些其他编程语言可用于量子计算机编程?选择特定的产品有某些好处吗?

编辑:我正在寻找编程语言,而不是模拟器。模拟器模拟事物。编程语言是一种编写指令的方法(用于实际对象或用于仿真器)。可能只有一种语言可用于多个仿真器,反之亦然。


我想指出的是,这里公认的答案中基本上没有一种语言可以与现有的量子计算机实际运行。可能更有意义:1)编辑问题以使您清楚地表明,您正在要求无法编译以针对现有硬件运行的语言,或者2)接受不同的答案。
DanielSank

1
@DanielSank我接受了Wikipedia列表,​​因为我认为该列表将被更新为包括实际上在硬件上运行的语言。假设Wikipedia继续拥有该页面,它将作为最佳响应。
Pro Q

1
@ProQ-我的答案有一个小小的更新。另外,我已经弄清楚我的答案不是剪切/粘贴,而是已验证链接。我已经修复了断开的链接。我添加了一个重要的贡献者的网站。-我会不时回来,以确保这个答案是“大约很棒”。有关回答和维护的详细信息已解决。我的答案中的某些语言确实在可以购买的硬件上运行,并且经常使用。感谢您对ProQ的信任。
罗布

还有用Julia编写的Yao(人类可扩展的高效量子算法设计),github.com/QuantumBFS/Yao.jl。而在这里在这里你会发现一个比较。
skan,

Answers:


35

量子计算机编程语言的维基百科列表

(此答案不是该网页的副本,它是更新的并且带有经过验证的链接。在某些情况下,添加了作者的论文或网站链接。)

网站Quantum Computing Report的工具网页上列出了十二个链接,其中一些是新的,有些是重复上述列表的。

另请参见QuanTiki的网页:“ QC模拟器列表 ”,其中包含基于C / C ++,CaML,OCaml,F#以及基于GUI,Java,JavaScript,Julia,Maple,Mathematica,Maxima的大量模拟器和编程语言。 ,Matlab / Octave,.NET,Perl / PHP,Python,Scheme / Haskell / LISP / ML和其他在线服务,它们提供计算器,编译器,模拟器和工具包等。

选择特定的产品有某些好处吗?

如果您打算使用一台特定的量子计算机,那么人们希望制造商开发的编程语言既最适合该特定机器,又得到了良好的支持。

选择一种具有较大关注度的语言意味着有更多可用的论坛,并希望有更多的错误修复和支持。

不幸的是,这使得一些出色的利基产品难以获得用户基础。试图找到一种在各种平台上都具有强大/表现力并受支持的语言是诀窍,答案是一种意见ATM。

Ryan LaRose在“ 门级量子软件平台概述和比较 ”(2018年7月6日)中提供了对四个软件平台(Forest(pyQuil),QISKit,ProjectQ和Quantum Developer Kit)的评估。


更新:

Google的Cirq和OpenFermion-Cirq:“ Google的AI博客-宣布Cirq:NISQ算法的开源框架 ”。

D-Wave的Leap and Ocean SDK允许在云环境中访问D-Wave 2000Q™系统,并且可以使用2000+量子位量子退火机免费测试和运行工作负载,前提是所使用的核心算法已进入开源池。申请登录D-Wave的Leap In网页。

Rigetti Computing的Quantum Cloud Service(QCS)提供了Quantum机器映像,虚拟化的编程和执行环境,该环境预先配置了Forest 2.0,可访问128量子位计算机的多达16量子位。

请继续关注有关富士通的Digital Annealer的信息,该架构能够执行比常规计算机快约10,000倍的计算。如果它们最终提供了与真正的量子计算机交叉兼容的开发环境,那么这两段将保留在该答案中,否则我将删除它们。

尽管富士通的硅芯片本质上不是量子芯片,但富士通已与1Qbit合作开发所谓的“ 量子启发式AI云服务 ”,无论其数字退火炉是否像鸭子一样qua(像D-Wave一样退火,使用兼容的代码)有待观察。访问此处以访问Fujitsu Digital Annealer技术服务

宾夕法尼亚大学的QWIRE合唱团)是一种量子电路语言和形式验证工具,它具有GitHub网页

评论如下:Cirq,Cliffords.jl,dimod,dwave系统,FermiLib,Forest(pyQuil和Grove),OpenFermion,ProjectQ,PyZX,QGL.jl,Qbsolv,Qiskit Terra和Aqua,Qiskit教程和Qiskit.js,论文提供了Qrack,Quantum Fog,Quantum ++,Qubiter,Quirk,reference-qvm,ScaffCC,Strawberry Fields,XACC,最后是XACC VQE,该文章由Mark Fingerhuth提供,“ 量子计算中的开源软件 ”(2018年12月21日), TomášBabej和Peter Wittek。

我将不时返回此答案进行更新,而不会引起过多的麻烦



与“编程”相关的新闻分类:IBM宣布下个月将提供53台Qubit计算机,供公众使用。
罗布

28

门模型硬件供应商已经建立了自己的底层语言:

这些具有更高级别的python sdk可用:

Rigetti还将其语言包装在一个更高级别的库中,以调用名为Grove的预构建应用程序。

微软已经开发了Q#来与他们现有的模拟器以及最终的物理硬件一起运行。

由于上述语言是特定于供应商的语言,所以主要的好处是您可以在他们的计算机上运行量子程序。

在供应商之外,特定语言是Scaffold,由普林斯顿研究人员开发。这种语言很有趣,因为它包括一个用于分析程序以确定成本,性能潜力和可扩展性的工具链

编辑:Project Q是另一个框架,可让您使用可以在附带的模拟器上运行的Python开发程序。

橡树岭国家实验室(Oak Ridge National Labs)已开始进行名为XACC的项目,该项目旨在提取特定于供应商的代码,以使用户能够访问各种硬件平台,而不必以每种特定于供应商的语言来复制代码。


3
projectq.ch也值得一提。
詹姆斯·伍顿

1
我喜欢这个答案,因为它说明了可以在现有硬件上实际运行的语言。
DanielSank

5

甚至看看Quipper,一种功能性的Quantum编程语言。具有单子语义,内置功能可逆量子计算,分层电路支持等等!也用于实际操作中–用于LaFlamme 计算Dirac方程解的算法。


3

我将包括IBM的Composer。感觉不像是编程,因为您没有得到所有的错误,错误和功能,但是它显然会将您在闸门上的指令转换为QASM并在真实的IBM模拟器或真实的IBM量子计算机上运行(选择用户的)。


1

不幸的是,Quantiki上的列表很老,而且没有得到很好的维护。由于量子态势在不断发展,即使仅将所有量子编程语言都列为一个问题的答案也是不可持续的。例如,谷歌刚刚发布了Cirq,这是一种用于嘈杂中级量子(NISQ)计算机的新量子编程框架,由于几天前才宣布,因此上述任何答复均未提及。

为了解决这个问题,并作为对QC StackExchange上另一个问题的回应,我在GitHub上列出了一系列开源软件项目,其中还包括对积极开发的量子编程语言和框架的全面概述。该列表由社区积极维护,我们不断添加新项目。


2
这看起来是一个很棒的资源。谢谢!我想知道是否还有另一个不只是开源的类似项目清单。
Pro Q

1
@ProQ说实话,我认为开放源代码列表涵盖了超过95%的量子软件领域。几乎没有任何具有公共访问权限的封闭源代码包,而且您也不会在意在没有公共访问权限的情况下在某些公司内部使用的量子软件。
Mark Fingerhuth
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.