QPanda 2.0 量子计算 SDK

程序名称:QPanda 2.0

授权协议: GPL

操作系统: 跨平台

开发语言: C/C++

QPanda 2.0 介绍

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。

QPanda 2.0 官网

http://www.originqc.com.cn/QPanda/download.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


OpenFunix 是由我从零开始写的一个内核项目。 OpenFunix 是一个全新的操作系统内核。
女娲内核,用中文版C"习语言"写的简单操作系统内核,代码实现全中文书写..
Linux-Insides 是一系列 Linux 内核的展示。它通过分享 Linux 内核的内部知识来增加人们对 Linux 内核或者其他低级别主题的兴趣。
Alibaba Kernel起源于亚洲最大的电子商务网站——阿里巴巴。它基于 RHEL6 源代码,包含了阿里巴巴所需的一些更新和新功能。更多的信息和文档,请参阅http://kernel.taobao.org
Genode操作系統框架擴展現有的內核(如微內核或程序) ,並提供一個統一的API應用程序。目前, L4/Fiasco和Linux的支持。
TencentOS Kernel 是腾讯针对云的场景研发的服务器操作系统。 TencentOS Kernel(又名 Tencent Linux,简称 Tlinux)是腾讯针对云的场景研发的 Linux
Bickley是一个元数据管理API和框架,由三个主要部分组成: l Libkozo —— Kozo是围绕TDB库的数据库抽象。
Oracle Linux: Unbreakable Enterprise Kernel (UEK),顾名思义,是 Oracle Linux 企业发行版的内核源码。
Fiwix is an operating system kernel based on the Unix architecture and fully focused on being Linux compatible. It is designed exclusively for educational
cgroups(控制组)是Linux内核的一个功能,用来限制报告和分离一个进程组的资源(CPU、内存、磁盘输入输出等)。这个工作是由Google的工程师(主要是Paul
Win2-7 Pack 是一个用于将 GNOME 桌面变身成 Windows 7 的 all-in-one 转换包,其中包括 Windows 7
VWM 是一个可扩展的在控制台下实现的窗口管理器。
这是 Windows 上的 KDE 桌面环境的移植版本哦。
Really Slick ScreenSavers GLX Port 是一些最初为Windows到GLX编写的极好的OpenGL 屏幕保护程序的一部分。它意在和一个现在的屏幕保护后台程序(如xscreensaver)一起使用。
Paper Pilots 是一款 Linux 下的 3D 屏幕保护程序 (非开源) ,可以定制超过 20 中不同的屏幕配置。
Docky是从GNOME Do项目剥离出来的一个Dock软件,最初即为GNOME Do的“Docky”模式。
AfterStep是一个Unix或Linux下的X窗口管理器工具,AfterStep使得Linux的外观很象NeXTSTEP,而且还有些增强功能。如果你是使用X11或者fvwm的话,不妨用AfterSetup来对您的桌面进行设置。
通过KDEWin,我们可以在Windows上体验 KDE的GUI及专门为Windows编译的KDE应用程序.自由软件团队KDE 的产品中包括用于 Linux
GNOME Do 与 Katapult 和 GNOME Launch Box 很相似,它能根据用户键入的内容进行自动匹配,从而快速打开系统中已有的程序、文件、书签等。不仅如此,GNOME Do 还包括插件,从而能够做更多事。
Really Slick Screensavers 是透過 OpenGL 3D 技術所設計的 十一個螢幕保護程式 ,以現今大家的電腦硬體配備來說,基本上都有支援 OpenGL