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 |
√ |
√ |
√ |
√ |
√ |
源自于本源量子的量子调研。仅供学习参考;
来源:CSDN
作者:量子小白
链接:https://blog.csdn.net/Li060703/article/details/104570753