一种量子虚拟机的制作方法

文档序号:15853458发布日期:2018-11-07 10:33阅读:198来源:国知局
一种量子虚拟机的制作方法

本申请涉及量子计算技术领域,更具体地说,涉及一种量子虚拟机。

背景技术

量子计算机(quantumcomputer)是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。当某个装置处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。量子计算机的概念源于对可逆计算机的研究。研究可逆计算机的目的是为了解决计算机中的能耗问题。

量子计算机运行的程序我们称之为量子程序,目前,针对量子程序的设计和验证过程仍然在传统的计算机的中央处理器(cpu,centralprocessingunit)或图形处理器(graphicsprocessingunit,gpu)内来完成,由于这些处理器的运行架构与量子计算机的运行方式存在一定的差异,使得在这些处理器中难以高效地运行量子程序,因此,需要一种针对量子程序的量子虚拟机。



技术实现要素:

为解决上述技术问题,本申请提供了一种量子虚拟机,以实现高效运行量子程序的目的。

为实现上述技术目的,本申请实施例提供了如下技术方案:

一种量子虚拟机,用于运行量子程序,所述量子虚拟机包括:控制模块和与所述控制模块连接的多个量子处理模块;其中,

所述量子处理模块包括第一上限参数,所述第一上限参数为所述量子处理模块运行量子程序的量子比特的上限;

所述控制模块用于接收待处理量子程序,控制至少一个所述量子处理模块运行所述待处理量子程序,并接收所述待处理量子程序的运行结果。

可选的,多个所述量子处理模块之间彼此连接。

可选的,所述量子处理模块包括控制单元和运算单元;

其中,所述运算单元包括一个存储单元和多个运算节点,所述存储单元包括第二上限参数,所述第二上限参数为所述运算单元运行量子程序的量子比特的上限;所述运算单元的所有运算节点的第二上限参数之和等于所述第一上限参数;

所述控制单元用于接收所述控制模块分发的量子任务,并控制多个所述运算节点运行所述控制模块分发的量子任务,并将所述控制模块分发的量子任务的运行结果存储在所述存储单元中。

可选的,所述控制模块具体用于,接收待处理量子程序,将所述待处理量子程序作为一个量子任务分配给一个所述量子处理模块运行,并接收所述量子处理模块运行所述量子任务的运行结果;

接收所述待处理量子程序,将所述待处理量子程序分解为多个量子任务分发给多个所述量子处理模块运行,接收并汇总多个所述量子处理模块运行分发的量子任务的运行结果。

可选的,所述控制模块接收所述待处理量子程序,将所述待处理量子程序分解为多个量子任务分发给多个所述量子处理模块运行,接收并汇总多个所述量子处理模块运行分发的量子任务的运行结果具体用于,

接收所述待处理量子程序;

根据所述待处理量子程序的大小和所述第二上限参数,将所述待处理量子程序分解为多个量子任务,并将分解获得的多个量子任务分发给多个所述量子处理模块并行运行,每个所述量子任务的量子比特小于或等于所述第二上限参数;

接收并汇总多个所述量子处理模块运行分发的量子任务的运行结果。

可选的,所述控制模块根据所述待处理量子程序的大小和所述第二上限参数,将所述待处理量子程序分解为多个量子任务,并将分解获得的多个量子任务分发给多个所述量子处理模块并行执行具体用于,

获取所述待处理量子程序的未执行量子指令;

判断获取的未执行量子指令是否为结束标志指令,如果是,则结束所述待处理量子程序的运行;

如果否,则分解获取的未执行量子指令,以获得多个量子任务,将获得的多个量子任务分发给多个所述量子处理模块并行运行,在所有所述量子处理模块将分发的量子任务运行完毕后,获取所述量子处理模块的运行结果,并返回获取所述待处理量子程序的未执行量子指令的步骤。

可选的,所述量子虚拟机还包括与所述控制模块和多个所述量子处理模块均连接的第一通讯接口。

可选的,所述控制模块还用于通过所述第一通讯接口接收读取请求指令,并根据所述读取请求指令读取所述量子处理模块运行所述待处理量子程序的运行结果。

可选的,所述控制模块还包括第二通讯接口,所述控制模块还用于通过第二通讯接口与外部计算设备连接。

从上述技术方案可以看出,本申请实施例提供了一种量子虚拟机,该量子虚拟机由控制模块和多个量子处理模块构成,可以通过控制模块接收待处理量子程序,并控制一个或多个量子处理模块来运行待处理量子程序,由于所述量子虚拟机无需同时进行其他的运算任务,并且可以根据待处理量子程序分配一个或多个量子处理模块来运行该待处理量子程序,实现了高效运行量子程序的目的。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请的一个实施例提供的一种量子虚拟机的结构示意图;

图2为本申请的另一个实施例提供的一种量子虚拟机的结构示意图;

图3为本申请的一个实施例提供的利用所述量子虚拟机运行待处理量子程序的流程示意图;

图4为本申请的又一个实施例提供的一种量子虚拟机的结构示意图;

图5为本申请的再一个实施例提供的一种量子虚拟机的结构示意图;

图6为本申请的一个实施例提供的控制模块接收所述待处理量子程序,将所述待处理量子程序分解为多个量子任务分发给多个所述量子处理模块运行,接收并汇总多个所述量子处理模块运行分发的量子任务的运行结果的具体流程示意图;

图7为本申请的一个实施例提供的控制模块根据所述待处理量子程序的大小和所述第二上限参数,将所述待处理量子程序分解为多个量子任务,并将分解获得的多个量子任务分发给多个所述量子处理模块并行执行的具体流程示意图;

图8为本申请的一个可选实施例提供的一种量子虚拟机的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供了一种量子虚拟机,如图1所示,用于运行量子程序,所述量子虚拟机100包括:控制模块10和与所述控制模块10连接的多个量子处理模块20;其中,

所述量子处理模块20包括第一上限参数,所述第一上限参数为所述量子处理模块20运行量子程序的量子比特的上限;

所述控制模块10用于接收待处理量子程序,控制至少一个所述量子处理模块20运行所述待处理量子程序,并接收所述待处理量子程序的运行结果。

所述量子虚拟机100中的控制模块10和各个量子处理模块20均可以通过经典集成电路工艺构建形成,该量子虚拟机100的目的是提供一个模拟量子计算机的专用装置,为高效运行量子程序提供可能。

所述控制模块10与多个所述量子处理模块20均连接的架构有利于使控制模块10能够根据待处理量子程序的具体情况,来分配一个或多个量子处理模块20来运行该待处理量子程序,有利于实现量子程序的高效运行。

另外,所述量子处理模块20的第一上限参数与量子处理模块20的内存容量有关,第一上限参数每增加1,所述量子处理模块20的内存容量就需要增加一倍。

量子程序是用于控制量子计算机的程序,通常量子程序可以分为量子程序指令或量子程序指令序列,两者的基本单元均是量子逻辑门指令或者测量指令。量子虚拟机100的内部需要根据量子力学理论通过矩阵运算模拟量子程序中的量子逻辑门指令和测量指令的执行过程,其中该矩阵运算可以通过并行计算来实现,所述量子虚拟机100内部的控制模块10和多个量子处理模块20的架构是一种适用于该矩阵运算的并行结构,因此,所述控制模块10可以将待运行量子程序分配到一个或多个量子处理模块20中进行运行,从而加速量子程序的运行过程,提升量子程序的运行效率。

可选的,如图2所示,所述控制模块10还包括第二通讯接口30,所述控制模块10还用于通过第二通讯接口30与外部计算设备连接。

在实际应用过程中,如图3所示,可以在外部计算设备中编写待运行量子程序,然后将待处理量子程序加载到所述量子虚拟机100中,所述量子虚拟机100对该待处理量子程序进行运行后,向外部计算设备返回待处理量子程序的运行结果。

所述量子虚拟机100和外部计算设备的通信均依靠所述第二通讯接口30来实现。

在上述实施例的基础上,在本申请的一个实施例中,如图4所示,多个所述量子处理模块20之间彼此连接。

彼此连接的多个量子处理模块20是实现量子处理模块20之间的通信,从而协同并行运行待处理量子程序的基础。

可选的,如图5所示,所述量子处理模块20包括控制单元21和运算单元;

其中,所述运算单元包括一个存储单元22和多个运算节点23,所述存储单元22包括第二上限参数,所述第二上限参数为所述运算单元运行量子程序的量子比特的上限;所述运算单元的所有运算节点23的第二上限参数之和等于所述第一上限参数;

所述控制单元21用于接收所述控制模块10分发的量子任务,并控制多个所述运算节点23运行所述控制模块10分发的量子任务,并将所述控制模块10分发的量子任务的运行结果存储在所述存储单元22中。

需要说明的是,为了能够清楚的显示所述量子处理模块20的结构,图5中仅示出了一个运算节点23,但在实际应用过程中,所述量子处理模块20中一般包括多个运算节点23,因此,附图5仅用于示例说明量子处理模块20的可能构成。

每个所述运算节点23需要支持基本的数学运算,例如加减乘除四则运算、三角函数运算、指数函数运算和移位运算等。

下面的一些实施例具体说明了所述控制模块10接收待处理量子程序,控制至少一个所述量子处理模块20运行所述待处理量子程序,并接收所述待处理量子程序的运行结果的具体过程。

例如在本申请的一个实施例中,所述控制模块10具体用于,接收待处理量子程序,将所述待处理量子程序作为一个量子任务分配给一个所述量子处理模块20运行,并接收所述量子处理模块20运行所述量子任务的运行结果;

接收所述待处理量子程序,将所述待处理量子程序分解为多个量子任务分发给多个所述量子处理模块20运行,接收并汇总多个所述量子处理模块20运行分发的量子任务的运行结果。

当所述待处理量子程序的量子比特小于或等于所述第一上限参数时,可以将所述待处理量子程序交由一个所述量子处理模块20运行,也可以交由多个所述量子处理模块20运行;

而在当所述待处理量子程序的量子比特大于所述第一上限参数时,必须对所述待处理量子程序进行分解,以分配给两个或两个以上的量子处理模块20运行。

在本申请的另一个实施例中,如图6所示,所述控制模块10接收所述待处理量子程序,将所述待处理量子程序分解为多个量子任务分发给多个所述量子处理模块20运行,接收并汇总多个所述量子处理模块20运行分发的量子任务的运行结果具体用于,

s601:接收所述待处理量子程序;

s602:根据所述待处理量子程序的大小和所述第二上限参数,将所述待处理量子程序分解为多个量子任务,并将分解获得的多个量子任务分发给多个所述量子处理模块20并行运行,每个所述量子任务的量子比特小于或等于所述第二上限参数;

s603:接收并汇总多个所述量子处理模块20运行分发的量子任务的运行结果。

此外,本申请的又一个实施例提供了一种所述控制模块10根据所述待处理量子程序的大小和所述第二上限参数,将所述待处理量子程序分解为多个量子任务,并将分解获得的多个量子任务分发给多个所述量子处理模块20并行执行的具体流程,如图7所示,包括:

s701:获取所述待处理量子程序的未执行量子指令;

s702:判断获取的未执行量子指令是否为结束标志指令,如果是,则结束所述待处理量子程序的运行;

如果否,则分解获取的未执行量子指令,以获得多个量子任务,将获得的多个量子任务分发给多个所述量子处理模块20并行运行,在所有所述量子处理模块20将分发的量子任务运行完毕后,获取所述量子处理模块20的运行结果,并返回获取所述待处理量子程序的未执行量子指令的步骤。

需要说明的是,所述结束标志指令是待处理量子程序的最后一个指令,标志着待处理量子程序的完结。因此,在当未执行量子指令为结束标志指令时,则结束所述待处理量子程序的运行。

在上述实施例的基础上,在本申请的一个可选实施例中,如图8所示,所述量子虚拟机100还包括与所述控制模块10和多个所述量子处理模块20均连接的第一通讯接口40。

所述第一通讯接口40的存在使得所述量子处理模块20在运行各自收到的量子任务后,工作人员可以通过所述第一通讯接口40获取该量子任务的运行结果,以验证待处理量子程序的运行正确性。

需要说明的是,本申请实施例提供的量子虚拟机100可以执行多种量子算法,包括shor质因数分解算法和grover搜索算法等。此外,所述量子虚拟机100还可以执行经典-量子混合算法,经典-量子混合算法的执行过程为:量子处理模块20的运算单元执行控制单元21分发的任务时,对控制单元21产生反馈,控制单元21根据反馈信息来决定运算节点后续任务。比如执行hhl算法,hhl算法是一种解线性方程组的量子算法,hhl算法中间包含经典-量子混合指令,在执行hhl算法时,中间过程一个测量结果会对后续操作产生影响,所以需要在这个中间过程就将测量结果返回控制单元21,控制单元21根据返回的测量结果确定后面的操作指令,通过这种方式执行完hhl算法。

综上所述,本申请实施例提供了一种量子虚拟机100,该量子虚拟机100由控制模块10和多个量子处理模块20构成,可以通过控制模块10接收待处理量子程序,并控制一个或多个量子处理模块20来运行待处理量子程序,由于所述量子虚拟机100无需同时进行其他的运算任务,并且可以根据待处理量子程序分配一个或多个量子处理模块20来运行该待处理量子程序,实现了高效运行量子程序的目的。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1