QPanda 2.0 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
QPanda 2.0 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: GPL
开发语言: C/C++
操作系统: 跨平台
收录时间: 2018-09-21
提 交 者: 逍遥蓝云

QPanda 2.0 SDK(Quantum Panda 2.0 Software Development Kit)是由本源量子推出的开源量子程序开发工具包。其支持主流的量子逻辑门操作,并且可对不同平台下的量子程序进行针对性优化,可适配多种量子芯片。QPanda 2.0 使用C++语言作为经典宿主语言,并支持以QRunes和QASM书写的量子语言。

目前,QPanda 2.0支持本地仿真运行模式,最高可支持到32位,它集成了量子虚拟机,封装了主流的量子算法。可在无芯片支持的情况下验证量子应用的可靠性和有效性。加上增加了控制流的概念使得量子程序可进行逻辑判断,从而符合高级语言的编程习惯。

在QPanda里,总共由三个过程组成:初始化生成、编译和运行。

初始化:初始化生成是允许用户设计不同的量子线路来处理对应需要解决的问题。

编译:而编译则是允许用户重写它们以在不同的后端运行(比如模拟器,量子芯片,不同公司的量子芯片等)。

运行:即是收集结果的过程,对于运行后的数据采集,取决于程序本身的设计需求去做相应的存储或者转化,运行的结果,也依赖于解决问题的需要而定。有的问题,可能需要依赖上一个量子程序运行结果才能执行下一个量子程序,诸如此类。

QPanda的设计思想

考虑到量子计算的蓬勃发展和未来的广泛应用,QPanda 2.0做了很多前瞻性的设计。所以QPanda在设计时做了以下考虑:

  1. 全系列兼容

QPanda 的目标是兼容所有量子计算机。底层量子计算机现在由于正处快速发展期,所以芯片、测控等实现细节都不确定。QPanda简化并规避了诸多量子计算机的物理细节而为用户提供了标准化的接口。通过QPanda构建的量子计算机,本身是通过经典的程序语言对其进行交互,所以它可以被用于任意的云量子计算机,本地量子计算机,或者是实验中的量子原型机。通过QPanda构建的量子应用则不会受到硬件变动的影响。

  1. 标准架构

QPanda提供了标准化的量子程序(Quantum Program)架构。架构者认为,在量子机器(Quantum Machine)中执行的程序和在经典计算机中执行的程序应该彻底区分开来,特别是涉及到经典控制的部分。物理上,芯片的退相干(Decoherence)时间极为短暂,这使得量子程序中的控制流并非在狭义的CPU中完成,而更有可能会采用极低延时的FPGA或其它嵌入式器件作为其测控系统实现。我们认为,量子机器包含了量子芯片与其测控系统,一个量子程序被视作是对一个原子的操作,直到执行完毕才返回结果给经典计算机。 量子程序的架构包含:量子逻辑门、量子线路、量子分支程序和量子循环程序。在QPandaa里这几种元素均以接口的形式被提供,我们提供了一组这些接口的实现类作为基础的数据接口。用户可以重写这些接口并将实现类进行注册,系统会选择用户的类对默认实现类进行覆盖,并且保持其它结构的不变。

  1. 标准化量子机器模型

我们提供了标准化的量子机器模型。通常,量子程序是静态加载到量子机器里,并且量子程序本身也是被静态地构建的。这意味我们可以在量子程序被执行前,对量子程序进行静态检查和分析,获取其中的信息(而非执行它)。能检查的要素例如:量子比特是否越界,经典寄存器是否超过硬件允许的范围等等。而能进行的预处理则包含:任意的量子程序被替换到对应真实芯片的拓扑结构和基本逻辑门集合上(硬件兼容),量子程序的运行时长判断,量子程序的优化等等。 量子机器模型还定义了量子程序的标准构建过程。例如从量子比特池中申请空闲比特,从内存中申请空间,将程序加载到量子机器中,或者在已有的量子程序中附加一段新的量子程序。和量子程序的部分类似,量子机器本身的任何架构也是接口化的,用户也可以对接口进行覆写以应对不同硬件的需求。

QPanda项目总共包括:

  • QPanda SDK:

用于编写量子程序和应用程序的 C++宿主语言工具包。它使用户能够方便连接和执行量子程序。

  • QRunes:

QRunes是本源量子制定的一套量子计算指令集。

  • QRunes(QASM) Generator:

QRunes(QASM) Generator 是一个支持以函数调用方式生成QRunes指令的C++库。

提供了QPanda软件的使用细节,以及一些常见算法的案例。包括算法概要,对应的量子线路图,对应的QPanda代码等,旨在指导用户快速正确的使用QPanda。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

QPanda 2.0 的相关资讯

还没有任何资讯

QPanda 2.0 的相关博客

How(5) are(2) you(0)

故事里有好人也有坏人 故事里有好事也有坏事 故事里有多少是是非非 故事里有多少非非是是 故事里的事说是就是不是也是 故事里...

Linux中变量#,#,@,0,0,1,2,2,*,$$,$?的含义

$# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $@...

求解x²-2=0(x>0)的近似解算法

问题:求解x²-2=0(x>0)的近似解算法 算法分析:利用二分法来求。基本思想是:把函数f(x)的零点区间[a,b]“一分为二”(也就是...

Romo was 0 for 2. This was the first time in hi...

The first-place Toronto Rock placed five players on the East roster on Wednesday as the National Lacrosse League anno...

zipgateway-2-61-0的安装

http://zts.sigmadesigns.com/documentation/zipgateway-2-61-0-docs 能够在ubuntu上打开pyzip Installing on Ubuntu Linux ...

特殊变量($0、$1、$2、 $?、 $# 、$@、 $*)

特殊变量($0、$1、$2、 $?、 $# 、$@、 $*) shell编程中有一些特殊的变量可以使用。这些变量在脚本中可以作为全局变量来使用...

shell 重定向0,1,2

0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信...

requests从0到0.9--2--图片下载

我们今天用五行代码来下载一张图片 首先我们需要一张图片链接 我已经给大家准备好了 http://pic31.nipic.com/20130801/116047...

QPanda 2.0 的相关问答

还没有任何问答,马上提问

评论 (8)

加载中
什么时候有量子计算机操作系统了,再研究吧
2019/04/08 15:31
回复
举报
rz
我是谁?我在哪?我要干什么?
2018/10/21 13:53
回复
举报
对不起,我也不应该膨胀
2018/10/21 13:39
回复
举报
膨胀了,这种新闻我都敢点开看了。
2018/10/21 13:36
回复
举报
膨胀点有好处,万一看懂了呢
2018/10/02 17:58
回复
举报
膨胀了,这种新闻我都敢点开看了。
2018/09/30 11:10
回复
举报
膨胀了,这种新闻我都敢点开看了。
2018/09/30 11:07
回复
举报
大家不要在量子计算上花费时间,这个技术会像可控核聚变一样,发展缓慢,如同海市蜃楼,可望而不可即,永远还缺25年时间。 相反,量子通信成功近在眼前。 美国国运也将尽了,这个科技树点歪了。
2018/09/30 09:42
回复
举报
更多评论
8 评论
18 收藏
分享
返回顶部
顶部