国内外量子计算软件和量子计算语言

拈花ヽ惹草 提交于 2020-02-29 12:05:09

1.量子计算软件

国外量子计算软件

1.pyquil

pyquil 是美国的量子计算公司 Rigetti 开发的,可以实现量子线

路的计算模拟、含噪声的量子逻辑门计算模拟,量子芯片的云端运行等功能。Pyquil 虽然比较小众,功能相对较少,但上手比较简单。

2.Qiskit

Qiskit 是一个开放源代码量子计算软件开发框架,利用当今的量子处理器开展研究,教育和商业等工作。Qiskit 由四个相互协作以实现量子计算的元素组成。Qiskit Terra 为 Qiskit 软件栈提供了基础。Terra 采用模块化结构,简化了电路优化和后端扩展的添加。Qiskit Aer 为 Qiskit 软件栈提供了一个高性能模拟器框架。Qiskit Ignis 是一个用于理解和缓解量子电路和系统中噪声的框架。Qiskit Aqua 包含一个跨域量子算法库,可以在其上构建用于近期量子 计算的应用程序。

3.Quantum Development Kit(QDK)

Microsoft 提供了 Quantum Development Kit(量子程序开发套件,简称 QDK),以便进行量子编程。QDK 包括:

Q#:微软推出的一种新的高级量子编程语言。Q#具有与 Visual Studio 和 Visual Studio Code 的丰富集成以及与 Python 编程语言的互操作性。企业级开发工具提供了在 Windows,macOS 或 Linux 上进行量子编程的最快途径。

应用程序:以 Python 或.NET 语言编写,用于运行 Q#编写的量子运算程序。

用于促进开发的工具:用户可根据不同的开发环境,执行不同的安装,以进行量子程序开发。

 

4、Cirq

Cirq 是 Google 专为 NISQ 算法打造的框架,允许开发者为特定的量子处理器编写量子算法,为用户提供了对量子电路 (Quantum Circuits)的精确控制,为编写和编译量子电路,其数据结构经过专门  优化,让开发者能更加充分地利用 NISQ 架构。Cirq 支持在模拟器上运行这些算法,旨在通过云轻松与未来的量子硬件或更大的模拟器集成。

国内量子计算软件

1、QPanda

QPanda 是由本源量子开发的一个高效、便捷的量子计算开发工具库,可以用于构建、运行和优化量子算法,支持全振幅量子计算模拟、单振幅量子计算模拟和部分振幅量子计算模拟,也可用于模拟含噪声的量子逻辑门计算。同时,QPanda 通过量子逻辑门优化,量子程序适配量子芯片拓扑结构,量子程序编译等功能,实现了可把QPanda 编写的量子程序编译到不同量子计算平台。除此之外, QPanda 也集成了很多主流的量子算法,是量子计算学习及量子算法验证的有力工具。

2、HiQ

华为 HiQ 是用于量子计算的开源软件框架。它旨在提供使用经典硬件或实际量子设备来促进发明,实施,测试,调试和运行量子算法的工具。它提供经典量子混合编程的可视化方案和高性能的 C++并行和分布式模拟器后端,并集成高性能优化器和较为丰富的算法库。

 

 

表 1-1 量子计算软件的模拟计算功能对比

 

全振幅虚拟机

单振幅虚拟机

部分振幅

虚拟机

含噪声虚

拟机

分布式计

GPU 计算

模拟

pyquil

qiskit

QDK

CirQ

HiQ

QPanda

表 1-2 量子计算软件其他功能对比

 

量子线路

量子逻

量子程序

基于复杂

量子程

量子

量子程

云平台

化学

字符画

辑门优

适配不同

判断条件

序适配

程序

序资源

计算后

模拟

 

的量子计

的控制流

芯片架

分层

和性能

台接入

 

 

 

算平台

量的程序

 

统计

 

 

pyquil

qiskit

QDK

CirQ

HiQ

QPanda

 

2.高级量子编程语言

​​​​​​​国外高级量子编程语言

1、Q#

Q#是一种算法定义语言,它利用丰富的量子-经典相互作用可以很容易地表达相位估计和量子化学算法;它是一种典型的领域特征语言,仅用于描述在量子芯片上可能发生的操作,对于在传统 CPU 上执行的操作,Q#的编程模型规定需要一门经典编程语言来描述。

 

2、Quipper

Quipper 是 Haskell 中嵌入的一种强类型的函数量子编程语言,它可以描述高级电路并允许混合过程式和声明式编程风格的语法。

3、LIQui|>

基于 F#的 LIQui|>(Liquid)语言提供了大量的高级操作来简化量子编程,如受控门与反计算的自动实现。 它的编译器可自动实现优化、容错翻译、量子电路打印等。

4、ScaffCC / Scaffold

ScaffCC / Scaffold 利用 LLVM 基础架构嵌入在 C / C ++中,它在量子电路描述、操作、分解和优化上提供了强大的功能,但在描述量子和经典模块之间的关系上显得模糊。

5、QWIRE

QWIRE 是一种定义量子电路的语言,在任意经典宿主语言中可以操作量子电路,具有高表现力和高度模块化的特征,反映出 QRAM计算模型,无论宿主语言是什么,QWIRE 都是安全和强规范化的。

​​​​​​​国内高级量子编程语言

1、QRunes

QRunes 提供了一个完备的 HACQ 类型系统,规范了量子编程的边界,保证了量子程序编译执行的正确性。健全的语法规则用来协调和约束量子操作、经典操作。安全的语义用来融合量子计算和经典计算之间的语义差异。编译方式为运行时编译,并且可扩展、可重构。

 

表 2-1 高级量子编程语言特征对比

 

量子线路操作

完备的

类型系统

语义规则

可扩展性

运行时

编译

 

Q#

 

Quipper

 

LIQui|>

ScaffCC /

Scaffold

 

QWIRE

 

QRunes

 

 

源自于本源量子的量子调研。仅供学习参考;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!