量子计算时代,你会选择国产编程工具吗?

OriginQ 本源量子 今天




量子计算编程是什么?跟经典计算编程区别在哪?很多人以为量子编程只是简单地将现在的程序运行更快的一种方法。这种观点是片面的,量子编程与现有的程序在根本上就是完全不同的。
01
量子计算编程是怎么一回事

量子计算编程参照了经典机编程发展的某些做法,它指的是人为编辑能够在量子计算机上运行的指令序列(称为量子程序)的过程,量子指令集用于将高级算法转换为可以在量子处理器上执行的物理指令,这些指令一般会在特定的硬件平台运行,例如超导量子计算机或离子阱量子计算机。量子编程语言有助于使用高级构造表达量子算法。

量子计算编程的发展在当前的现状,是领先于量子计算机硬件发展的,因为量子计算本质上可以粗略认为是结合量子物理而组成的一系列的矩阵运算。受益于经典计算时代的积累,当前量子计算行业的研究者,希望量子计算编程软件的发展能够参照某些经典计算编程的做法,提前做好量子计算编程的准备。因此,量子计算编程语言及量子计算编程框架的发展具有一定积极意义。

目前,全世界主要的量子编程框架可以参考下图。大家熟知的可能有IBM的Qiskit 、Rigetti的Forrest、Google的Open Fermion Criq、Microsoft的QDK。国内,有本源量子的QPanda,还有华为的HiQ等。

图片
02
主要的量子计算编程框架对比

由上表可以看出,QPanda支持半导体和超导两条技术路线,而国际上只有荷兰的QuTech是支持两条技术路线的;QPanda支持C++和python两种经典语言类型,而国际上大多只支持python一种经典语言;QPanda的虚拟机类型也是全球先进的五种类型,包含全振幅、单振幅、部分振幅、含噪声,以及张量网络。

03
国内首个自主研发的量子计算编程框架

为了让用户使用平台开发出更为多样的量子算法与量子程序,本源量子团队开发了量子编程框架QPanda与量子编程语言QRunes。
QPanda作为本源量子计算系列软件的基础库,为OriginIR、Qurator、量子计算服务提供核心部件,可以用于构建、运行和优化量子算法。
图片

图片来源:本源量子

QPanda为量子计算编程提供了一个完善的编译、测试验证环境,利用QPanda量子计算框架,量子计算软件开发人员可以省去很多繁琐的基础步骤,使用已经封装好的量子代码库、算法程序快速地进行二次开发,以完成自己的开发目标。
图片

图片来源:本源量子

04
QPanda亮点功能

1、支持主流量子计算比特门,提供足够的量子线路组成元素

  • 支持主流的17个量子计算单门、7个量子计算双门
  • 所有逻辑门均进行了API封装,可直接调用
  • 所有逻辑门提供转置共轭操作

2、支持模块化的量子线路构建

  • 在比特数量比较多,量子算法比较复杂的情况下,可能我们需要把多个比较小的量子线路组成成一整个大的量子程序
  • QPanda可以以一种比较方便的模式去构建这种模块

3、支持经典+量子计算混合程序编写

  • 量子程序设计用于量子程序的编写与构造,一般地, 可以理解为一个操作序列。由于量子算法中也会包含经典计算,因而业界设想普适性量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责执行量子计算
  • QPanda将量子程序的编程过程视作经典程序运行的一部分,在整个外围的宿主机程序中,一定包含创建量子程序的部分

4、支持多达5种业内领先的量子计算虚拟机

  • 在真正的量子计算机没有成型之前,需要使用量子虚拟机承担量子算法、量子应用的验证的问题,QPanda现在支持全振幅量子虚拟机、单振幅量子虚拟机、部分振幅量子虚拟机、含噪声量子虚拟机以及张量网络量子虚拟机
  • 全振幅量子虚拟机一次可以模拟计算出量子态的所有振幅,计算方式支持CPU、单线程计算和GPU,可以在初始化时配置,使用方式是完全一样的,只是其计算效率不同
  • 在真实的量子计算机中,受制于量子比特自身的物理特性,常常存在不可避免的计算误差。为了能在量子虚拟机中更好的模拟这种误差,在QuantumMachine的基础上, QPanda2带来了含噪声量子虚拟机。含噪声量子虚拟机的模拟更贴近真实的量子计算机,我们可以自定义支持的逻辑门类型,自定义逻辑门支持的噪声模型, 通过这些自定义形式,我们使用QPanda2开发量子程序的现实应用程度将更高
  • 全振幅一次模拟计算就能算出量子态的所有振幅,单振幅一次模拟计算只能计算出2的n次方个振幅中的一个。然而全振幅模拟量子计算时间较长,计算量随量子比特数指数增长, 在现有硬件下,无法模拟超过49量子比特。通过单振幅量子虚拟机技术可以模拟超过49比特,同时模拟速度有较大提升,且算法的计算量不随量子比特数指数提升
  • 部分振幅量子虚拟机的基本思想是将大比特的量子程序拆分成若干个小比特量子程序,每个小比特量子线路使用全振幅算法计算
  • 当量子系统的自旋个数增加时,量子态系数的个数随指数增加,称为指数墙问题,这一障碍限制了传统全振幅模拟器的最大模拟自旋数和模拟性能。但是可通过张量网络处理这一问题,从而绕过指数墙障碍,在张量网络中,我们对量子系统的模拟,包括量子逻辑门操作和测量操作,均可以通过对于张量的缩并与分解来实现。将量子态分解成等式右边的表示形式,对于量子线路中部分量子逻辑门操作,可以将全局问题转化为局部的张量处理问题,从而有效地降低了时间复杂度和空间复杂度

5、支持本源量子云服务

  • 在复杂的量子线路模拟中有必要借助于高性能计算机集群或真实的量子计算机,用云计算的方式替代本地计算,在一定程度上减轻用户的计算成本,获得更好的计算体验
  • pyqpanda封装了量子云虚拟机,可以向本源量子的计算服务器集群或真实量子芯片发送计算指令,并获取计算结果

6、支持量子程序与QASM相互转化、支持量子程序转化为Quil、支持量子程序序列化、支持量子程序与OriginIR相互转化、支持量子程序匹配拓扑结构

  • 通过量子程序转化QASM模块,你可以解析通过QPanda构建的量子程序,将其中包含的量子比特信息以及量子逻辑门操作信息提取出来,得到按固定格式存储的QASM指令集
  • 通过量子程序转化QASM模块,你可以解析QASM文本文件,将其中的量子逻辑门操作信息提取出来,得到QPanda 2内部可操作的量子程序
  • QPanda提供了一个将量子程序转换为Quil指令集的工具类,Quil可以从一个很低级的层次直接描述量子程序、量子算法,它的地位类似于经典计算机中的硬件描述语言或者汇编语言
  • QPanda定义一种协议将量子程序序列化为二进制数据,方便量子程序的存储与传输
  • 量子计算设备存在量子比特之间的有限连接,使得只能在有限的量子位对上应用两个量子位门。 量子程序应用到目标设备时,必须转换原始的量子程序以适应硬件限制,让双量子比特门中的两个量子比特能够满足物理拓扑结构,从而让双量子位门正常作用; 当前解决方案中多数需要在无法相互作用的两个量子比特间插入额外的SWAP操作,以便将逻辑量子位“移动”到它们可以相互作用的位置。 我们称这种解决方法为量子程序匹配拓扑结构

7、支持主流量子算法

  • 在特定情况下,量子计算机中需要实现基本的四则运算。量子加法器及衍生出来的量子四则运算可以满足这些计算需求
  • QPanda提供了量子加减乘除四则运算接口

量子计算近年来愈发火热,但就目前而言,本源量子仍然是国内唯一一家具有全栈式开发能力的量子计算公司。2017年由中科院量子信息实验室郭光灿郭国平教授及其学生共同创立。本源量子以“为国人创造真实可用的量子计算机”为宗旨,建立了全面的量子芯片、量子低温、量子测控、量子软件、量子应用、量子云、量子教育业务板块。截止2020年,本源量子在全球量子计算专利领域排名第七。

QPanda是国内首个自主研发的量子计算编程框架,大家可访问下方地址进行体验。
地址:http://www.originqc.com.cn/QPanda/download.html

如有你在使用QPanda的过程中遇到任何问题,欢迎在本源量子开源社区进行提问,我们会有专人解答疑问。

我们的QPanda是开源项目,希望大家在github上多多支持,多多star、fork

地址:https://github.com/OriginQ/QPanda-2

本文转自本源量子开源社区
更多深度内容,敬请关注
本源量子开源社区
https://forum.originqc.com.cn/
图片
延伸阅读

图片