国内外量子计算软件介绍
概述
量子计算被认为是一种对未来具有颠覆性影响的新型计算模式,量子计算机的发展也十分迅速。量子计算机由于量子比特的相干叠加和纠缠性,以及量子电路的可逆性,与传统计算机相比,在计算速度和能耗方面具有非常巨大的优势。未来,将在人工智能、数据搜索、生物制药、金融等方面产生极大的应用价值。
量子计算软件是连接用户与量子计算硬件设备的桥梁,量子计算机的高效运行和使用,离不开量子软件的支撑。量子软件须满足量子计算底层物理原理和算法逻辑,具有较强专业性和特异性,对于量子技术的发展和应用起到至关重要的作用。由于量子计算软件的专业门槛较高,交叉学科的研发人员还十分匮乏,目前还处于生态体系建立的早期阶段,开放化和开源成为量子计算软件发展的主要趋势。下面将对目前国内外量子计算软件的主要代表进行分别介绍。
1。量子计算软件介绍
量子计算软件对于量子计算的发展和应用起到至关重要的作用。量子计算软件可以分为基础运行软件、计算开发软件、应用服务软件以及通用系统软件等类型。
基础运行类软件
作为量子计算机的核心控制类软件,与硬件紧密相关,是量子计算软件技术的发展核心,也是上层软件开发和应用功能的实现基础。
计算开发类软件
提供了研究量子算法、开发量子应用的工具体系,包含量子编程语言和量子软件开发工具。量子编程框架类软件主要用来编写运行在量子计算机中的量子算法和程序,经过封装后还可提供常用的量子计算组件和量子算法库,进行量子程序的快速开发;量子软件开发工具与量子计算硬件对接,提供统一表示量子算法程序的数据及接口。
应用服务类软件
是量子技术走向应用的关键,匹配行业应用需求解决特定领域问题,通过上层编程开发,为不同应用领域提供业务与服务,主要包括解决算法、应用程序及云端人机交互环境。量子应用服务软件,提供了面向多个领域的量子计算云平台技术应用套件,包括解决特定问题的算法和应用程序,同时在云端提供了人机交互的应用环境,其中量子化学、量子机器学习和量子组合优化类是其中较为典型的应用服务软件。
量子计算行业应用探索加速,刺激应用服务类软件不断涌现,并趋于多样化,从而有助于降低量子计算云平台使用门槛,对行业用户群体形成虹吸效应。量子计算应用套件,可加快量子计算云平台资源的应用服务开发,支持开发人员将经典和量子任务分发到适当的系统,使得任务能够匹配到适合的硬件资源,同时结合量子处理器的计算规模和能力,对任务进行分段处理,实现计算资源优势互补。
通用系统类软件
用于实现量子资源系统化管理和自动任务调度,保证量子计算任务高效执行,屏蔽量子计算软硬件的差异性,简化量子计算操控和使用,未来有望加速量子计算高效运行,实现计算资源共建共享。
2。国外内量子计算开发软件
2。1Qiskit
Qiskit是由IBM开发的一款量子编程软件,是一款可用于编写、模拟和运行量子程序的全栈库。该软件工具套件的功能性持续增加,目前能让使用者打造量子计算程序,并让它们在IBM真实的量子处理器或是可在在线存取的量子仿真器上执行。目前主要应用于当今的量子处理器开展研究,教育和商业等工作。
Qiskit也是一个开源SDK,可在电路,算法和应用模块级别与量子计算机一起使用。Qiskit由4个相互协作以实现量子计算的元素组成。其分别是:
A)Terra,为Qiskit软件栈提供了基础。Terra采用模块化结构,简化了电路优化和后端扩展的添加;允许在量子门和脉冲级别编程。
B)Aer,为Qiskit软件栈提供了一个高性能模拟器框架。Aer运行量子化学、优化问题和人工智能中使用的算法的高级编程,通过演示经典处理器在多大程度上可以模拟量子计算,帮助我们了解经典处理器的局限性。
C)Ignis,是一个用于理解和缓解量子电路和系统中噪声的框架。Ignis能够检查错误并改进门的实现,致力于消除噪声和错误并开辟一条新道路。Ignis也能够为用户提供代码,可以在给定最少的用户输入参数的情况下轻松生成用于特定实验的电路。
D)Aqua,包含一个跨域量子算法库,可以在其上构建用于近期量子计算的应用程序。可用于研究用经典设备模拟量子计算的局限性,是构建量子计算机算法的地方。
Qiskit为量子电路层级的程序提供一组程序代码工具,赋予远程访问的后台设备执行与管理的功能。下图为Qiskit的运作原理:
Qiskit的用户工作流程主要为以下四个步骤:
构建:设计一个待解决问题的量子电路。
编译:为特定的量子服务编译电路。
运行:在指定的量子服务上运行编译电路。
分析:计算汇总统计数据并可视化实验结果。
以下为整个工作流程的示例
第1步:导入包importnumpyasnpfromqiskitimportQuantumCircuitfromqiskit。providers。aerimportQasmSimulatorfromqiskit。visualizationimportplothistogram
第2步:初始化变量circuitQuantumCircuit(2,2)
第3步:添加门通过添加门(操作)来操作电路的寄存器。circuit。h(0)circuit。cx(0,1)circuit。measure(〔0,1〕,〔0,1〕)
第4步:可视化电路circuit。draw()
第5步:模拟实验importnumpyasnpfromqiskitimportQuantumCircuit,transpilefromqiskit。providers。basicaerimportQasmSimulatorPy。。。
第6步:可视化结果plothistogram(counts)
2。2Cirq
Cirq是GoogleQuantumAI团队发布的一个开源Python框架。即使没有量子物理学背景的开发者,也能够用Cirq创建能够在模拟器上运行的量子算法,同时也为开发者提供了对量子电路的精确控制、经过优化的数据结构,可用于编写和编译这些量子电路。为了编写和编译量子电路,Cirq的数据结构是专门优化过的,能够让开发者更加充分地利用NISQ架构。另外,Cirq支持在本地模拟器上运行这些算法,并可以轻松地与量子硬件或更大的规模的云端模拟器集成起来,为实验成果提供了很好的延续性。
Cirq算法框架在Apache2协议下开源的,可以自由修改或嵌入到任何商业或开源软件包中。可以通过官方网站安装它:
1。安装cirq:pippythonmpipinstallupgradepippythonmpipinstallcirq
2。在cirq。contrib中安装功能的依赖项:pythonmpipinstallcirqcore〔contrib〕
3。运行一个简单的示例检查程序是否安装成功:
HelloQubitimportcirqPickaqubit。qubitcirq。GridQubit(0,0)Createacircuitcircuitcirq。Circuit(cirq。X(qubit)0。5,SquarerootofNOT。cirq。measure(qubit,keym)Measurement。)print(Circuit:)print(circuit)Simulatethecircuitseveraltimes。simulatorcirq。Simulator()resultsimulator。run(circuit,repetitions20)print(Results:)print(result)
输出示例:Circuit:(0,0):X0。5M(m)Results:m11000111111011001000
2。3HiQ
HiQ是由华为开发的量子计算模拟器云服务平台,包括基于华为云经典算力构建的量子计算模拟器及量子编程框架。其旨在提供使用经典硬件或实际量子设备来促进发明,实施,测试,调试和运行量子算法的工具。HiQ提供了经典量子混合编程的可视化方案和高性能的C并行和分布式模拟器后端,并集成高性能优化器和较为丰富的算法库。
HiQ量子计算云平台提供三种在线量子模拟编程环境,包括:
JupyterNotebook
JupyterNotebook是一个基于Web的交互式开发环境,内置开源量子计算框架MindQuantum镜像,可以在开发环境中编写代码、方程式和叙述文本的脚本等,为开发者提供友好、轻量的编程体验。
CloudIDE
CloudIDE是面向云原生的轻量级WebIDE,内置HiQ量子计算插件。支持2U8GB独占容器模式以及56U896GB大规模集群任务模式,为开发者提供极速、智能的量子编程体验。
HiQComposer
量子线路图形编程环境HiQComposer。HiQComposer是在线图形化量子线路编程环境,提供全振幅模拟器,开发者无需安装软件,打开浏览器选择任意开发环境即可开始量子计算编程之旅,开发者可自由拖拽量子门搭建量子线路。
2。4ProjectQ
ProjectQ是由苏黎世联邦理工学院开发的一款使用Python编程语言实现的量子计算的开源软件框架,具有能够针对各种类型硬件的编译框架、具有仿真能力的高性能量子计算机模拟器以及各种编译器插件。ProjectQ可以将这些程序转换为任何类型的后端,允许用户在IBMQuantumExperience芯片、AQT设备、AWSBraket或IonQ服务提供的设备上运行量子程序,可在经典计算机上模拟量子程序,并在更高的抽象级别上模拟量子程序,还可将量子程序导出为电路,此外还可用于获取资源估算。
ProjectQ的目标是提供一种强大且方便的编程框架,促进使用经典计算机硬件或实际的量子设备进行测试、调试和运行量子算法。而ProjectQ实现这一目标的保障,建立在其四个核心原则上:
1。开放和免费:ProjectQ在Apache2。0开源协议发布;
2。简单的学习曲线:ProjectQ使用Python语言实现编译,Python目前已经在量子领域被广泛使用,因此十分方便上手;
3。易拓展性:由于编译器和后端都是模块化实现的,任何人都可以为编译器、嵌入式领域特定语言和库做出贡献;
4。代码质量高:ProjectQ的代码库遵循较高的行业标准,包括常规的代码审查,持续的集成测试以及广泛的代码文档等等。
ProjectQ编译器框架如图所示,它是模块化的,允许通过结合现有的或者新的组件来构建编译器。编译框架由一个主编译器引擎组成,通过一个所谓的编译器引擎链发送电路来执行用户定义的编译步骤序列。每个编译器引擎操纵电路以例如减少运行量子程序所需的门或量子比特的数量。堆栈下方的引擎变得更加特定于后端,并负责将逻辑电路映射到后端布局。
以下为ProjectQ的安装方式:
(1)运行代码进行安装pythonmpipinstalluserprojectq
(2)克隆下载此存储库(例如,到您的home目录)并运行cdhomeprojectqpythonmpipinstalluser。
在实际使用中,用户可以使用高级别的领域特定语言(domainspecificlanguage、DSL)编写量子程序嵌入在Python中。具体使用方法可以看一下示例:defAddConstant(eng,quint,c):withCompute(eng):QFTquintadditioninthephases:phiadd(quint,c)Uncompute(eng)
经过上述步骤后,量子程序会被发送到模块化编译前端MainEngine中。编译器是由单独的编译引擎组成的,它能将代码转换为各种后端支持的低级指令集,比如量子硬件的接口、高性能的量子模拟器和仿真器,以及电路绘制器和资源计数器等等。
后端上,ProjectQ集成了一个量子仿真器,允许通过使用经典的方式模拟量子算法,从而获得更快的处理速度。对于低层次的模拟,ProjectQ有一个优于其他模拟器的新模拟器,已经通过了实际硬件测试,可以在IBMQuantumExperience上运行量子算法。
2。5QuTrunk
启科量子自主研发一款量子编程框架QuTrunk,为量子编程开发提供了一个通用的软件环境。QuTrunk使用Python作为宿主语言,利用Python的语法特性实现针对量子程序的DSL(领域专用语言),所有支持Python编程的IDE均可安装使用QuTrunk。
QuTrunk基于量子逻辑门、量子线路等概念提供量子编程所需的各类API。这些API分别由相应的模块实现,比如QCircuit实现量子线路功能,Qubit实现量子比特,Qureg实现量子寄存器,Comand对应每个量子门操作的指令,Backend代表运行量子线路的后端模块,gate模块实现了各类基础量子门操作。同时QuTrunk还可以作为其他上层量子计算应用的基础,比如:量子算法、量子可视化编程、量子机器学习等。
目前QuTrunk以QuSprout作为后端。QuSprout也是启科量子自研的一款基于经典计算资源的量子计算模拟软件,支持支持多线程、多节点、GPU加速,也可预安装在QuBox中。QuTrunk为量子编程工作提供了量子编程框架,建立起一套统一的量子编程规范,进而实现量子程序开发的降本增效。启科量子目前正在筹备QuTrunk项目的开源计划,旨在通过产品开源的方式促进量子计算软件技术的发展与普及。
QuTrunk下载及安装
下载QuTrunk量子编程框架:
下载链接为:
http:github。comqudoorqutrunk
QuTrunk当前提供whl包和源码两种类型的安装包,用户根据对应的平台和系统版本选择对应whl软件包下载。
安装QuTrunk
2。5。1whl包安装
各系统版本的安装方法如下:
1)whl下载到本地安装
打开终端,cd切换到下载目录,命令行执行:pip3。10installqutrunk0。1。9py3noneany。whl
2)直接pip安装pip3。10installqutrunk
2。5。2源码安装方法
(1)MacOS
首先,确认安装CC编译器和编译工具,打开终端执行gccversion可以查询是否安装,一般MacOS上都默认已经安装。另外还需要安装cmake,在终端直接执行:pip3。10installcmake
编译依赖安装完后,再切换到下载目录,解压并开始编译安装qutrunk:tarzxvfqutrunk0。1。9。tar。gzcdqutrunk0。1。9python3。10setup。pyinstall
(2)Ubuntu
首先,安装cc编译器:sudoaptinstallbuildessential
然后,安装cmake编译工具:sudoaptinstallcmake
最后,在编译安装qutrunk:tarzxvfqutrunk0。1。9。tar。gzcdqutrunk0。1。9python3。10setup。pyinstall
(3)Windows
先安装C编译器:下载安装visualstudio2022,选择社区版本,安装界面勾上C编译环境,完成vs安装。然后安装再cmake,根据本地安装的python版本选择对应的命令安装,例如python3。10环境拿下,使用命令行执行:pip3。10installcmake
最后编译安装,解压下载的源码安装包,进入到解压目录下,执行:python3。10setup。pyinstall
2。5。3QuTrunk安装完成检查
Qutrunk安装完成后可以执行如下命令验证安装是否成功,版本是否准确,命令各平台通用:pip3。10showqutrun
2。6QuantumDevelopmentKit
QuantumDevelopmentKit(QDK)是微软研发且开源的一款量子开发工具包,以便进行量子编程。QDK包括Q量子编程语言和编译器、入门示例和教程,以及量子程序的模拟器和资源估计器,QDK还包括VS和VSCode的开发环境扩展,以及与Jupyter平台的集成。
Quantum开发工具包是用于AzureQuantum的开发工具包。可使用Q、Qiskit或Cirq生成并运行量子应用程序,以在量子硬件上运行,或生成解决方案,以执行在Azure上的经典硬件上运行的优化求解器。以下为其内容:
开发要在各种环境中运行的量子应用程序
以Python或。NET语言编写,用于运行Q编写的量子运算程序。
Q
Q是Microsoft的一种以量子为中心的高级别编程语言,它提供直观的新式量子程序开发方法。可使用它在算法和应用程序级别帮助你聚焦工作,创建量子程序。Q具有与VisualStudio和VisualStudioCode的丰富集成以及与Python编程语言的互操作性。企业级开发工具提供了在Windows,macOS或Linux上进行量子编程的最快途径。
用于促进开发的工具
用户可根据不同的开发环境,执行不同的安装,以进行量子程序开发。Quantum开发工具包包括与VisualStudio、VisualStudioCode、JupyterNotebooks的功能丰富的集成。可在笔记本和命令行中自行使用Q编程语言,或者通过Python和。NET的互操作性使用主机语言。可将现有量子工作流与对Qiskit和Cirq的支持进行集成。使用AzureQuantum优化Python包优化解决方案。
安装QDKforVisualStudioCode
此步骤可安装QDK并将扩展添加到VisualStudioCode,以支持使用Q开发量子算法。
(1)打开VisualStudioCode。
(2)转到适用于VisualStudioCode的MicrosoftQuantum开发工具包,选择安装,然后按照安装步骤操作。
验证安装
若要验证安装,请创建基本的Q应用程序,如下所示。
安装Quantum项目模板
1。在VisualStudioCode的视图菜单中,选择命令面板。
2。进入Q:安装命令行项目模板。弹出窗口显示在右下角,即表示模板安装成功:
创建项目
1。在视图菜单中,选择命令面板。
2。进入Q:创建新项目。
3。选择独立控制台应用程序。
4。选择用于保存项目的目录,例如主目录。输入QuantumHello作为项目名称,然后选择创建项目。
5。在右下角显示的弹出窗口中,选择打开新项目:
6。在视图菜单中选择资源管理器。
可看到两个文件:QuantumHello。csproj和Program。qs。
csproj文件定义了项目设置。Program。qs包含用于在控制台显示消息的基本Q程序。namespaceQuantumHello{openMicrosoft。Quantum。Canon;openMicrosoft。Quantum。Intrinsic;EntryPoint()operationHelloQ():Unit{Message(Helloquantumworld!);}}
运行程序
运行程序验证是否已正确设置所有内容。使用dotnet实用工具运行Q程序。
1。在视图菜单中,选择终端或集成终端。
2。运行dotnetrun。dotnetrun
3。该程序将显示以下消息:Helloquantumworld!
成功运行Q程序。
参考链接:
1。https:projectq。readthedocs。ioenlatest
2。https:qiskit。orgdocumentationintrotutorial1。html
3。http:projectq。chfeatures
薄荷怎么养,盆栽薄荷养殖技巧都在这里薄荷是很常见的可食用的植物,无论从气味还是味道上,都可以给人一种非常清爽的感觉,那薄荷怎么养呢?今天我们来了解一下吧。现在养花草的人很多,薄荷也是很多人会喜欢的绿植,虽然……
养猫禁忌新手养猫都需要知道猫是很多人会选择养的宠物,但不是所有人都知道养猫还有禁忌的,今天我们来了解一下养猫禁忌吧。猫是一种很可爱,有时候会很温柔粘人,但有时候也会抓人,那喜欢养猫的你知道养猫有什……
杜鹃花家庭养殖方法,养殖注意事项你需要知道杜鹃花又叫做映山红、山石榴,杜鹃花是一种很名贵的花卉,具有较高的观赏价值,今天我们来了解一下杜鹃花家庭养殖方法吧。杜鹃花在我国是十大名花之一,排行第六,可见杜鹃花在我国的……
怎么教幼犬坐下握手,教你狗狗训练小技巧训练狗狗千万不要心急,要一步一步的慢慢来,今天我们来了解一下怎么教幼犬坐下握手吧。狗狗是很多人会养的宠物,也有很多热会训练狗狗做各种动作,那今天我们来看看怎么教幼犬坐下握……
人民币,迈出关键一步文韬略哥变化,正在发生。今天,据财联社消息,俄罗斯天然气公司宣布,中国采购俄天然气将改用人民币和卢布支付。要知道,俄罗斯现在的石油和煤炭出口中国,都已改用人民……
小朋友们怎样与宠物相处大人应该让小朋友知道的这几件事如今很多家庭都是只有一个小孩,在孩子成长过程中难免会出现孤独感,让孩子和宠物一起长大确实可以解决孩子的孤独感,而且还可以让孩子从小就懂得尊重和爱护动物。在孩子太小的时候,他们的……
这5种花,不要钱也不能养,皆有毒性,不看后悔哦转眼间秋天就要到来,温度一天比一天低,也正是花卉盆栽养护的最佳时间。然而选花不能看着什么好看就买什么,有些花卉开花很好看,但是不适合养在家里,比如:有些花卉植物净化空气效果很好……
宠物狗有泪痕怎么办,4种狗狗去泪痕的方法狗狗逐渐成了人类最最好的伴侣,成为了家庭中的一员,不过狗狗有一个问题就是它会有泪痕,特别丑,而且有时候还是天生的,这是需要带狗狗去做手术治疗。今天来了解一下宠物狗有泪痕怎么办吧……
文竹黄叶了怎么办,简单几招轻松搞定黄叶问题文竹枝叶延展,茎干挺拔,造型优美,深受大家喜欢,但文竹黄叶的问题也让很多人苦恼,文竹黄叶了怎么办呢?来了解一下吧。很多人都会喜欢在家中或者办公室摆放植物,文竹是很常见的观……
盆栽草莓怎么种植种植盆栽草莓的注意事项盆栽草莓怎么种植?草莓种的来源有二类,一是用种子种出来,二是直接用苗种。家庭盆栽,可在入秋后,把从母株上长出来的,就像小吊兰那样的幼株剪下来,花盆里加入一些有机肥作基肥,将幼株……
养老保险的个人账户收益较高从2016年底开始,养老保险基金委托社保基金进行投资运营。2020年,基本养老保险基金权益投资收益额1135。77亿元,投资收益率10。95;基本养老保险基金自2016年12月……
绿萝出现黄叶怎么办,绿萝出现黄叶的原因及解决办法绿萝是一种生命力比较顽强的植物,也被人们称为生命之花,绿萝四季常绿,是优良的观叶植物,但有人养的绿萝会出现黄叶的问题,这是怎么回事呢?怎么解决呢?绿萝对净化空气有很大的作……