一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

针对量子-经典混合算法的标签识别分割方法、装置及存储介质与流程

2022-02-22 08:54:38 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种针对量子-经典混合算法的标签识别分割方法、装置及存储介质。


背景技术:

2.云计算是一种服务交付模式,即云服务供应商通过虚拟化技术构建数据中心作为资源共享池并负责运维,用户只需通过互联网访问计算资源,按需使用,按量付费。根据提供云计算的底层基础设施不同可分为经典云和量子云:经典云基于经典服务器部署虚拟计算资源池,通过大规模集群提高算力,目前已从数据中心扩展到靠近数据源或用户的边缘侧提供算力,支持工业视觉检测、社区感知管理、云游戏、4k高清直播等算力需求巨大且时延敏感的业务,但存在执行计算密集型算法时效率不高和内存墙的限制问题;量子云作为包含量子计算资源的新型云计算模式,基于量子处理器(量子芯片或量子仿真器)强大的并行计算特性,能够存储的信息密度更高,而且在解决特定计算困难问题上具有指数级的性能提升,已经在量子化学模拟、组合优化求解、网络加密安全等经典计算很难解决的应用场景实现突破,并在人工智能领域具有潜在的强大计算能力,但目前量子硬件系统还未实现产业落地。就计算的本质来讲,量子云和经典云只是底层基础设施的计算载体物理性质不同而有差别,都可针对不同应用场景进行产业赋能。
3.量子-经典混合策略是经典计算机调用量子系统或进行关键计算的一种决策。由于量子算法也是经典语言编写的操作量子逻辑门的指令程序,包含了经典计算,因此将来真正的量子计算机应该是混合结构的,包含了执行量子程序实现量子计算的量子系统部分和执行经典计算与控制的经典计算机部分,经典计算机会向量子系统发送计算任务的指令序列,量子系统执行指令序列获得测量结果并保存到经典寄存器上,之后再以经典信息的方式反馈给用户,整个过程由云计算平台连接和协调。量子-经典混合编程即是将量子算法的编程过程视作经典程序运行的一部分,比如vqe(variational quantum eigensolver,变分量子特征求解器)算法、qaoa(quantum approximation optimization algorithm,量子近似优化算法)算法、qae(quantum assisted eigensolver,量子辅助特征求解器)算法等,通过经典语言定义量子算符,通过量子系统估计试验态期望值、再通过经典计算机的优化器程序寻找近似最优解,是典型的基于混合策略的量子-经典混合算法。
4.当前经典云已从基于大型数据中心的中心云扩展到靠近数据源或用户侧的边缘云,而量子云目前只有个别的大型互联网企业、量子计算初创公司和科研院所能够搭建,提供只包含纯量子计算资源的在线量子芯片或量子仿真器的测试服务,在量子云和经典云的结合上研究很少。随着量子计算硬件和量子-经典混合算法的发展,量子神经网络、量子人工智能等大量应用场景要求量子计算和经典计算的协同工作,量子处理器和经典芯片之间需要大量且频繁的通信。目前的量子云平台执行量子-经典混合算法任务是按算法逻辑结构顺序运行,执行量子程序时经典芯片处于空闲状态,调用经典芯片执行经典程序又需要
本地设置,不仅造成计算资源的浪费,也会造成量子处理器和经典芯片之间的数据延迟过大,甚至丧失原本的量子优势。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种针对量子-经典混合算法的标签识别分割方法、装置及存储介质,完成了量子-经典混合算法的自动识别分割,实现了量子程序和经典程序的同时执行,提高了计算资源的利用效率。
6.一方面,提供一种针对量子-经典混合算法的标签识别分割方法,所述方法包括:
7.接收量子-经典混合算法源代码,对所述源代码进行分割,得到量子程序和经典程序;
8.运行所述量子程序和所述经典程序,同时执行量子计算任务和经典计算任务。
9.在其中一个实施例中,
10.所述源代码中的标识符具有标签;遍历所述源代码,对所述标识符的标签进行识别,根据识别结果将所述源代码分割为量子算法代码段和经典算法代码段。
11.在其中一个实施例中,
12.对所述量子算法代码段和经典算法代码段进行补全操作,得到完整可编译的量子程序和经典程序。
13.在其中一个实施例中,
14.若所述量子算法代码段和所述经典算法代码段中一方含有另一方运行结果所定义的局部变量,则从寄存器中调用对方的运行结果后再进行编译。
15.在其中一个实施例中,
16.计算所述量子程序和所述经典程序的计算任务负载,根据所述负载动态分配量子计算资源和经典计算资源,然后将所述量子程序和所述经典程序发送到编译器进行编译。
17.在其中一个实施例中,
18.将所述量子程序和所述经典程序分别编译为量子指令集和经典指令集,根据所述量子指令集和所述经典指令集分别执行量子计算任务和经典计算任务,将计算结果存储在寄存器中。
19.在其中一个实施例中,
20.采用标签识别分割协议对所述源代码进行分割,所述标签识别分割协议为平台即服务paas层云操作系统的核心协议,在代码编译之前执行所述标签识别分割协议。
21.在其中一个实施例中,
22.所述量子-经典混合算法包括变分量子特征求解器算法vqe、量子近似优化算法qaoa、量子辅助特征求解器算法qae;所述标识符包括变量名、类名、函数名。
23.另一方面,提供了一种针对量子-经典混合算法的标签识别分割装置,所述装置包括:
24.分割模块,用于接收量子-经典混合算法源代码,对所述源代码进行分割,得到量子程序和经典程序;
25.执行模块,用于运行所述量子程序和所述经典程序,同时执行量子计算任务和经典计算任务。
26.又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
27.接收量子-经典混合算法源代码,对所述源代码进行分割,得到量子程序和经典程序;
28.运行所述量子程序和所述经典程序,同时执行量子计算任务和经典计算任务。
29.上述针对量子-经典混合算法的标签识别分割方法、装置及存储介质,通过对混合算法的源代码中标识符的标签进行分割,得到量子程序和经典程序,完成量子-经典混合算法的自动识别分割;通过同时执行量子程序和经典程序,提高了计算资源的利用效率。
附图说明
30.图1为本发明的标签识别分割方法流程示意图;
31.图2为采用本发明的标签识别分割方法实现量子计算任务和经典计算任务同时执行的流程图;
32.图3为采用本发明的标签识别分割方法后的vqe算法计算分子基态能量流程图;
33.图4为本发明的标签识别分割装置的结构框图。
具体实施方式
34.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
35.在一个实施例中,如图1所示,提供一种针对量子-经典混合算法的标签识别分割方法,所述方法包括:
36.s102:接收量子-经典混合算法源代码,对所述源代码进行分割,得到量子程序和经典程序。
37.具体地,接收量子-经典混合算法源代码,源代码都为经典语言编写,可支持c、c 、python等编程语言。用户可通过量子-经典混合云平台用户门户的混合编程界面输入混合算法源代码。量子算法代码支持量子线路拖拽生成和代码直接输入两种形式,嵌套经典算法代码中。混合算法源代码传输到云操作系统,输入到量子-经典混合算法标签识别分割协议进行分割。
38.其中,源代码中的标识符具有标签,这些标签表示源代码中哪些是量子算法代码,哪些是经典算法代码。通过对标签进行分割,得到量子程序和经典程序。
39.s104:运行所述量子程序和所述经典程序,同时执行量子计算任务和经典计算任务。
40.具体地,分割完成后输出的是完整可运行的量子程序和经典程序,从虚拟计算资源池中调度所需要的量子计算资源和经典计算资源,同时执行量子计算任务和经典计算任务。
41.上述针对量子-经典混合算法的标签识别分割方法,通过对混合算法的源代码中标识符的标签进行分割,得到量子程序和经典程序,完成量子-经典混合算法的自动识别分割;通过同时执行量子程序和经典程序,提高了计算资源的利用效率。
42.在其中一个实施例中,
43.所述源代码中的标识符具有标签;遍历所述源代码,对所述标识符的标签进行识别,根据识别结果将所述源代码分割为量子算法代码段和经典算法代码段。
44.具体地,源代码标识符(包括变量名、类名、函数名等)设置标签加以区分,比如命名时添加“_q”表示量子算法代码,“_c”表示经典代码,不添加则表示共用代码。
45.遍历源代码,对标识符的标签进行识别,若识别到_q则表示量子算法代码;识别到_c则表示经典算法代码;如未识别到标签,则为共有代码。通过上述分割,将源代码分割为量子算法代码段和经典算法代码段。
46.在其中一个实施例中,
47.对所述量子算法代码段和经典算法代码段进行补全操作,得到完整可编译的量子程序和经典程序。
48.具体地,根据上下文将共有代码、调用的宏命令、第三方库命令等填充到相应代码段特定位置,构成完整可编译的量子程序和经典程序。
49.在其中一个实施例中,
50.若所述量子算法代码段和所述经典算法代码段中一方含有另一方运行结果所定义的局部变量,则从寄存器中调用对方的运行结果后再进行编译。
51.具体地,如果量子算法代码段中有经典算法代码段计算结果所定义的局部变量,或经典算法代码段中有量子算法代码段测量结果所定义的局部变量,可设置从经典寄存器中调用对方计算结果后再编译。
52.在其中一个实施例中,
53.计算所述量子程序和所述经典程序的计算任务负载,根据所述负载动态分配量子计算资源和经典计算资源,然后将所述量子程序和所述经典程序发送到编译器进行编译。
54.本步骤为调度阶段,通过计算量子程序和经典程序的计算任务负载,分配和部署量子计算资源和经典计算资源,然后将量子程序和经典程序发送到编译器进入编译阶段,可以完成量子-经典混合算法的自动识别分割和动态调度分配计算资源,实现量子程序和经典程序同时执行。
55.在其中一个实施例中,
56.将所述量子程序和所述经典程序分别编译为量子指令集和经典指令集,根据所述量子指令集和所述经典指令集分别执行量子计算任务和经典计算任务,将计算结果存储在寄存器中。
57.具体地,参见图2,将量子程序编译为量子指令集,将经典程序编译为经典指令集。
58.量子处理器(真实量子芯片或量子虚拟机)根据量子指令集执行量子计算任务,测量计算结果,存储在经典寄存器中;经典处理器(cpu或经典虚拟机或经典物理机)根据经典指令集执行经典计算任务,计算结果同样存储在经典寄存器中。
59.若量子程序中需要经典程序运行结果所定义的局部变量,或经典程序中有量子程序测量结果所定义的局部变量,则计算结果传输回量子程序或经典程序,进行下一次计算;否则反馈回云计算平台进行可视化或直接反馈回用户。
60.在其中一个实施例中,
61.采用标签识别分割协议对所述源代码进行分割,所述标签识别分割协议为平台即
服务paas层云操作系统的核心协议,在代码编译之前执行所述标签识别分割协议。
62.具体地,针对量子-经典混合算法的标签识别分割协议位于混合算法源代码输入到代码编译之前,可作为paas(platform as a service,平台即服务)层云操作系统的核心协议之一,整合到量子-经典混合云平台,实现面向量子-经典混合算法的量子计算任务和经典计算任务同时执行功能。
63.在其中一个实施例中,
64.所述量子-经典混合算法包括变分量子特征求解器算法vqe、量子近似优化算法qaoa、量子辅助特征求解器算法qae;所述标识符包括变量名、类名、函数名。
65.具体地,参考图3,以下以vqe算法为例,说明如何根据本发明的标签识别分割协议将量子-经典混合算法分割为量子程序和经典程序。
66.vqe算法,即变分量子特征值求解算法(variational quantum eigensolver),是一种典型的量子-经典混合算法,用于找到一个矩阵h(通常是一个较大矩阵)的特征值,当这个算法用在量子模拟时,h就是某系统的哈密顿量。vqe算法可用于量子化学模拟,即将真实化学体系的哈密顿量映射到量子比特上,通过调制参数和演化时间,找到能够反映真实体系的本征态和本征能量。vqe算法计算分子基态能量分为如下几个步骤:
67.第一步,调用量子化学计算包psi4,通过升降算符定义分子一次量子化哈密顿量;
68.第二步,使用j-w变换或b-k变换,转换为用泡利算符表示的二次量子化哈密顿量;
69.第三步,初始化初态制备含参数的试验态
70.第四步,构造量子线路,利用量子处理器通过量子期望估计方法计算试验态的期望值en;
71.第五步,将期望值放入到经典计算机的优化器程序中,若|e
n-e
n-1
|不小于阈值l(或者未达到优化最大步骤),优化器会修改参数再从第三步开始重复。否则就得到当前状态下的最优化期望值,即该分子的基态能量。
72.从当前vqe算法计算分子基态能量的步骤可以看出,参数优化为经典计算任务,量子计算任务集中在制备试验态和计算期望值en上,通过量子线路转为为量子算法代码嵌套进经典算法代码中,构成量子-经典混合算法。
73.利用本实施例提出的标签识别分割协议,针对需经过多次优化的vqe算法,通过给源代码的标识符设置标签,比如泡利算符类哈密顿量函数、试验态函数、期望函数设置“_q”标签,分子哈密顿量函数、优化器函数设置“_c”标签,参数作为共有的全局变量,分割成包含制备试验态与计算期望值en的量子程序,和包含参数优化器程序的经典程序。执行量子程序输出期望值mn发送到经典程序,执行经典程序输出优化后的参数又发送回量子程序,直到期望值en满足判断条件。
74.该协议通过混合算法源代码分割,将执行量子程序时经典程序等待的空闲时间,或者执行经典程序时量子程序等待的空闲时间,以及计算结果从量子处理器发送到经典处理器的通信时间,或者计算结果从经典处理器发送到量子处理器的通信时间,都应用到执行量子程序或经典程序的工作时间,实现量子计算任务和经典计算任务的同时执行,提高
计算资源的利用效率。
75.应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
76.在一个实施例中,如图4所示,提供一种针对量子-经典混合算法的标签识别分割装置,所述装置包括:
77.分割模块401,用于接收量子-经典混合算法源代码,对所述源代码进行分割,得到量子程序和经典程序;
78.执行模块402,用于运行所述量子程序和所述经典程序,同时执行量子计算任务和经典计算任务。
79.在其中一个实施例中,
80.所述源代码中的标识符具有标签;所述分割模块401还用于遍历所述源代码,对所述标识符的标签进行识别,根据识别结果将所述源代码分割为量子算法代码段和经典算法代码段。
81.在其中一个实施例中,所述分割模块401还用于:
82.对所述量子算法代码段和经典算法代码段进行补全操作,得到完整可编译的量子程序和经典程序。
83.在其中一个实施例中,
84.若所述量子算法代码段和所述经典算法代码段中一方含有另一方运行结果所定义的局部变量,则从寄存器中调用对方的运行结果后再进行编译。
85.在其中一个实施例中,所述分割模块401还用于:
86.计算所述量子程序和所述经典程序的计算任务负载,根据所述负载动态分配量子计算资源和经典计算资源,然后将所述量子程序和所述经典程序发送到编译器进行编译。
87.在其中一个实施例中,所述分割模块401还用于:
88.将所述量子程序和所述经典程序分别编译为量子指令集和经典指令集,根据所述量子指令集和所述经典指令集分别执行量子计算任务和经典计算任务,将计算结果存储在寄存器中。
89.在其中一个实施例中,所述分割模块401还用于:
90.采用标签识别分割协议对所述源代码进行分割,所述标签识别分割协议为平台即服务paas层云操作系统的核心协议,在代码编译之前执行所述标签识别分割协议。
91.在其中一个实施例中,
92.所述量子-经典混合算法包括变分量子特征求解器算法vqe、量子近似优化算法qaoa、量子辅助特征求解器算法qae;所述标识符包括变量名、类名、函数名。
93.关于针对量子-经典混合算法的标签识别分割装置的具体限定可以参见上文中对于针对量子-经典混合算法的标签识别分割方法的限定,在此不再赘述。上述针对量子-经典混合算法的标签识别分割装置中的各个模块可全部或部分通过软件、硬件及其组合来实
现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
94.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
95.接收量子-经典混合算法源代码,对所述源代码进行分割,得到量子程序和经典程序;
96.运行所述量子程序和所述经典程序,同时执行量子计算任务和经典计算任务。
97.在一个实施例中,计算机程序被处理器执行时实现以下步骤:
98.遍历所述源代码,对所述标识符的标签进行识别,根据识别结果将所述源代码分割为量子算法代码段和经典算法代码段;其中所述源代码中的标识符具有标签。
99.在一个实施例中,计算机程序被处理器执行时实现以下步骤:
100.对所述量子算法代码段和经典算法代码段进行补全操作,得到完整可编译的量子程序和经典程序。
101.在一个实施例中,计算机程序被处理器执行时实现以下步骤:
102.若所述量子算法代码段和所述经典算法代码段中一方含有另一方运行结果所定义的局部变量,则从寄存器中调用对方的运行结果后再进行编译。
103.在一个实施例中,计算机程序被处理器执行时实现以下步骤:
104.计算所述量子程序和所述经典程序的计算任务负载,根据所述负载动态分配量子计算资源和经典计算资源,然后将所述量子程序和所述经典程序发送到编译器进行编译。
105.在一个实施例中,计算机程序被处理器执行时实现以下步骤:
106.将所述量子程序和所述经典程序分别编译为量子指令集和经典指令集,根据所述量子指令集和所述经典指令集分别执行量子计算任务和经典计算任务,将计算结果存储在寄存器中。
107.在一个实施例中,计算机程序被处理器执行时实现以下步骤:
108.采用标签识别分割协议对所述源代码进行分割,所述标签识别分割协议为平台即服务paas层云操作系统的核心协议,在代码编译之前执行所述标签识别分割协议。
109.在其中一个实施例中,
110.所述量子-经典混合算法包括变分量子特征求解器算法vqe、量子近似优化算法qaoa、量子辅助特征求解器算法qae;所述标识符包括变量名、类名、函数名。
111.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
112.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
113.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献