首页> 中国专利> 量子计算仿真中的受控非门并行化

量子计算仿真中的受控非门并行化

摘要

提供了有助于量子计算仿真中的受控非门并行化的技术。一种系统可以包括存储计算机可执行组件的存储器和执行存储在所述存储器中的计算机可执行组件的处理器。计算机可执行组件可以包括选择器组件,所述选择器组件可以选择第一量子位和第二量子位。所述第一量子位可以是控制量子位。所述计算机可执行组件还可以包括并行化组件和复制组件,所述并行化组件可以用所述第二量子位重排序所述第一量子位,所述复制组件可以在由所述所述并行化组件进行重排序期间仿真受控非门。

著录项

  • 公开/公告号CN113168582A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201980080089.8

  • 发明设计人 堀井洋;千叶瞳;

    申请日2019-11-22

  • 分类号G06N10/00(20060101);G06F9/54(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人酆迅;姚杰

  • 地址 美国纽约阿芒克

  • 入库时间 2023-06-19 11:55:48

说明书

背景技术

由于量子计算系统的大小,即使使用强大的计算机,直接仿真量子计算也是具有挑战性的。例如,Smelyanskiy1等人讨论了“在经典计算机上实现量子仿真器,其可以仿真一般的单量子位门和双量子位受控门”。“参见Smelyanskiy1等,”qHiPSTER:量子高效软件测试环境“,2016,arXiv:1601.07195v2[Quant-ph],摘要。此外,Smelyanskiy1等人讨论了“多个单节点和多节点优化,包括向量化、多线程、高速缓存阻塞以及与通信的重叠计算”的性能。参见同上。

然而,这些仿真可能是低效的,因为其涉及执行时间(例如,执行仿真的计算所需的时间)。由于所需的存储空间量,这些仿真也可能是低效的。因此,存在改进量子计算仿真的机会。

发明内容

以下给出了概述以提供对本发明的一个或多个实施例的基本理解。本概述不旨在标识关键或重要元素,或描绘本发明的特定实施例的任何范围或权利要求的任何范围。其唯一目的是以简化形式呈现概念,作为稍后呈现的更详细描述的序言。在本文描述的本发明的实施例中,提供了有助于量子计算仿真中的受控非门并行化的系统、计算机实现的方法、装置和/或计算机程序产品。

根据本发明的一个实施例,一种系统可以包括存储计算机可执行组件的存储器和执行存储在所述存储器中的计算机可执行组件的处理器。计算机可执行组件可以包括复制组件,所述复制组件在量子位重排序过程中仿真受控非门。计算机可执行组件还可以包括分析组件,所述分析组件基于在量子位重排序期间由复制组件仿真的受控非门来执行存储器访问平衡。因此,可以提供减轻和/或减少量子存储器的碎片访问的优点。此外,另一优点可以是,可以减轻和/或减少线程局部性的低效率。

根据本发明的另一个实施例,一种计算机实现的方法可以包括由操作性地耦合到处理器上的系统在量子位重排序期间来仿真所述受控非门。所述计算机实现的方法还可以包括由所述系统基于在所述量子位重排序期间仿真所述受控非门来执行存储器访问平衡。因此,可以提供减轻和/或减少低效的线程局部性和/或量子存储器的碎片访问的益处。

根据本发明的另一实施例,在此提供了一种有助于受控非门的量子计算仿真的计算机程序产品。所述计算机程序产品可以包括具有其中包含程序指令的计算机可读存储介质。所述程序指令可以由处理器执行以使所述处理器在量子位重排序期间仿真所述受控非门。所述程序指令还可以使所述处理器基于在所述量子位重排序期间被仿真的受控非门来执行存储器访问平衡。因此,可以实现提供量子存储器的分段访问的减轻和/或减少的优点。此外,可以实现提供对低效线程局部性的减轻和/或减少的优点。

本发明的另一个实施例涉及一种方法,该方法可以包括通过操作性地耦合到处理器上的系统来选择第一量子位和第二量子位,其中所述第一量子位是控制量子位。所述方法还可以包括通过所述系统用所述第二量子位对所述第一量子位重排序。在所述重排序期间可以仿真受控非门。这种方法的优点包括迁移和/或减少量子存储器的分段访问和/或减轻和/或减少低效的线程局部性。

本发明的另一个实施例涉及一种计算机程序产品,所述计算机程序产品有助于改进受控非门的量子计算仿真,同时避免控制量子位的不平衡的存储器访问,所述计算机程序产品包括一种计算机可读存储介质,所述计算机可读存储介质具有包含其中的程序指令,所述程序指令是由处理器执行以使所述处理器选择所述控制量子位和非控制量子位,其中所述非控制量子位和所述控制量子位是不同的量子位。程序指令还可以使所述处理器用所述非控制量子位对所述控制量子位进行重排序,并且在用所述非控制量子位对所述控制量子位进行重排序时仿真受控非门。这种计算机程序产品的优点是,可以减轻和/或减少量子存储器的低效的线程局部性和/或碎片访问。

附图说明

图1A是包括平衡存储器访问的非均匀存储器访问体系结构和高速缓存

图1B是包括由于低效线程局部性而导致的不平衡存储器访问的非均匀存储器访问架构和高速缓存线的示意性表示。

图1C是包括由于分段访问而导致的不平衡存储器访问的非均匀存储器访问架构和高速缓存线的示意性表示。

图2是受控非门仿真结果的示意性表示。

图3是根据本发明一个实施例的位重排序实例。

图4是根据本发明一个实施例的有助于在量子计算仿真中受控非门并行化的系统的框图。

图5是根据本发明的一个实施例的实现量子位的选择以用于存储器访问平衡的系统的框图。

图6是根据本发明的一个实施例的有助于在量子计算仿真中的受控非门并行化的计算机实现的方法的流程图。

图7是根据本发明的一个实施例的有助于选择一个或多个位来协助量子位重排序的计算机实现的方法的流程图。

图8是根据本发明的一个实施例的有助于存储器访问平衡尝试的评估的计算机实现的方法的流程图。

图9是根据本发明的一个实施例的有助于在量子计算仿真中受控非门并行化的计算机实现的方法的流程图。

图10是其中有助于本发明的各实施例的操作环境的框图。

具体实施方式

以下详细描述仅是说明性的,而不是要限制本发明的实施例和/或其应用或使用。此外,并不意图受前面的背景技术或发明内容部分或具体实施方式部分中呈现的任何明示或暗示的信息的约束。

现在参考附图描述本发明的实施例,其中相同的附图标记始终用于表示相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的实施例的更透彻理解。然而,在各种情况下,显然可以在没有这些具体细节的情况下实践本发明的实施例。

在量子计算中,受控非门(CNOT或C-NOT)是可以使用CNOT门和单量子位旋转的组合来仿真到各种精确度的量子门。量子门(或量子逻辑门)是对少量量子位进行操作的基本量子电路。量子门是可逆门,并且是量子电路的构建块。

量子计算机的q量子位的状态由复数类型的2

量子门可以由酉矩阵表示。各种量子门可以在一个或两个量子位的空间上操作。可以通过2

从非均匀存储器访问(NUMA)体系结构和高速缓存线的角度来看,CNOT的仿真可能产生不平衡的存储器访问。例如,不平衡的存储器访问可能基于低效的线程局部性和/或碎片访问。

更详细地,CNOT可修改量子计算仿真中一半的状态。控制位q

图1A示出了NUMA体系结构和包括平衡存储器访问的高速缓存线的示意性表示100,其中每个线程访问本地存储器。在本实例中,存储器分配是在NUMA0和NUMA1之间。对于所示的实例,可以存在32个状态,并且这是一个5量子位实例。为了仿真量子计算机,可以利用复数类型的矩阵,并且对于所示的实例,存在用于表示5量子位量子计算机的32个量子复数值。如图所示,第一组框102(例如,所示的前16个状态)表示NUMA0,而第二组框104(例如,所示的后16个状态)表示NUMA1。框可以包括相应的复数值。例如,第一框具有复数值00001。

NUMA0的线程亲和性由第一组箭头106表示,NUMA1的线程亲和性由第二组箭头108表示。此外,高速缓存线由箭头110表示。

CNOT操作可以利用两个量子位。对于CNOT操作,例如可交换一半的状态。可以利用以下公式来交换量子位,其中CX是CNOT门,而q是量子位。

CX q[a]q[b]:若第a位为1,则交换第b位 公式1

使用上述图1A的公式得到CX q[3]q[2]。因此,图1A的一个或多个线程访问本地存储器,其包括平衡的存储器访问。

图1B示出NUMA体系结构和高速缓存线的示意性表示112,该高速缓存线包括由于低效线程局部性而导致的不平衡存储器访问。使用公式1得到图1B的CX q[4]q[2],这产生了低效的线程局部性的问题。这个结果是由于q

图1C示出了NUMA体系结构和高速缓存线的示意性表示116,该高速缓存线包括由于分段访问而导致的不平衡的存储器访问。在图1C的情况下,使用公式1得到CX q[0]q[2],如四组箭头118-124所示。在这种情况下,q

图2示出了受控非门仿真的结果的示意性表示200。目标位202(例如,编号为0到29的30个目标位)表示在X轴上,控制位204(例如,编号为0到29的30个控制位)表示在Z轴上,并且经过时间206(以秒为单位)表示在Y轴上。示意性表示是具有4个NUMA节点和128字节高速缓存行的30量子位仿真。

如参考图1B所讨论的,在框208内示出了低效线程局部性。基于30个控制位小于或等于log2(NUMA的数量)或30个控制位<=log2(NUMA的数量),可能导致这个问题。本发明通过实现量子计算的量子位重排序来解决低效线程局部性的问题,以避免不平衡的存储器访问,同时仿真CNOT门,并且同时减轻和/或减少低效线程局部性,从而导致更有效率的线程局部性。

如关于图1C所讨论的分段访问的问题在框210内示出。这可以基于控制位小于log2(高速缓存行大小)或控制位小于log2(高速缓存行大小)而引起。本发明通过实现量子计算的量子位重排序解决了碎片访问的问题,以避免不平衡的存储器访问,同时仿真CNOT门,并且同时减轻和/或减少量子存储器的碎片访问。

本文所讨论的各个方面可以改变量子寄存器分配,以最小化碎片访问和低效线程局部性。例如,图3示出了根据本发明一个实施例的位重排序实例。

在300处示出的是第一量子寄存器分配。应用于第一量子位(例如,位索引0)的可以是第一门,它是第一X门302;第二门,其是CNOT门304;第三门,其为第二X门306,及第一测量308。第二测量310可以在第二量子位(例如,位索引1)上。在312处示出的是第二量子寄存器分配,其是第一量子寄存器分配的重新分配(或重排序)。例如,该第一量子位和该第二量子位可以被交换。

作为示例,以下简单算法可用于位重排序。量子位可以在寄存器中随机分配,并且可以计算低效存储器状态的数量。可以确定低效存储器访问的最小数量,并且可以执行量子位重排序。可以确定是最有效的量子位重排序。注意,尽管已经描述了示例算法,但是可以利用其他算法,并且所公开的方面不限于该示例。

在量子计算中,当测量量子寄存器时,其状态(0或1)被传递到经典寄存器。即使运行时间改变量子电路中量子位的分配,通过保持经典寄存器的分配,电路的结果是等效的。本文描述的实施例包括有助于CNOT并行化的系统、计算机实现的方法和计算机程序产品。例如,如本文所讨论的,可以执行位重排序以最小化等于或高于(量子位的数量)-log2(NUMA节点的数量)的控制量子位。可以附加地或替换地执行本文讨论的位重排序以最小化低于log2(NUMA节点的数量)的控制量子位。

图4是根据本发明的一个实施例的有助于在量子计算仿真中受控非门并行化的系统400的框图。本公开中所解释的系统(例如,系统400等)、装置或过程的各方面可以构成在(一个或多个)机器内包含的(一个或多个)机器可执行组件,例如,在与一个或多个机器相关联的一个或多个计算机可读介质(或介质)中包含的。当由一个或多个机器(例如,计算机、计算设备、虚拟机等)执行时,这样的组件可以使机器执行所描述的操作。

系统400可以是包括处理器和/或可以能够与有线和/或无线网络有效和/或操作地通信的任何类型的组件、机器、设备、设施、装置和/或仪器。可构成系统400的组件、机器、装置、设备、设施和/或仪器可包括平板计算设备、手持式设备、服务器类计算机器和/或数据库、膝上型计算机、笔记本计算机、台式计算机、蜂窝电话、智能电话、消费电器和/或仪器、工业和/或商业设备、手持式设备、数字助理、多媒体因特网使能的电话、多媒体播放器等。

系统400可以是与多种技术相关联的量子计算系统,这些技术例如但不限于量子电路技术、量子处理器技术、量子计算技术、人工智能技术、医学和材料技术、供应链和物流技术、金融服务技术、和/或其他数字技术。系统400可以采用硬件和/或软件来解决本质上是高度技术性的、非抽象的、并且不能作为人类的一组精神动作来执行的问题。所执行的过程中的一些过程可以由一个或多个专用计算机(例如,一个或多个专用处理单元、具有量子计算组件的专用计算机等)执行以执行与机器学习有关的定义的任务。

系统400和/或系统400的组件可被用来解决由于上述技术、计算机体系结构等的进步而引起的新问题。系统400可以提供对量子计算系统、量子电路系统、量子处理器系统、人工智能系统和/或其他系统的技术改进。系统400还可以通过改进该量子处理器的处理性能、处理效率、处理特性、定时特性、和/或功率效率来提供对量子处理器(例如,超导量子处理器)的技术改进。

系统400可以包括复制组件402、并行化组件404、处理组件406、存储器408和/或存储410。存储器408可以存储计算机可执行组件和指令。处理组件406(例如,处理器)可以促进由复制组件402、并行化组件404和/或其他系统组件执行指令(例如,计算机可执行组件和对应的指令)。复制组件402、并行化组件404、处理组件406、存储器408和/或存储410中的一个或多个可以彼此电耦合、通信耦合和/或操作性耦合,以执行系统400的一个或多个功能。

复制组件402可以接收量子电路数据412作为输入数据。例如,量子电路数据412可以是量子电路的机器可读描述。量子电路可以是用于与量子门的序列相关联的一个或多个量子计算的模型。在一个示例中,量子电路数据可以包括指示描述量子电路的文本格式语言(例如,QASM文本格式语言)的文本数据。例如,文本数据可以例如以文本方式描述与一个或多个量子位相关联的量子电路的一个或多个量子位门。

至少部分地基于输入数据(例如,量子电路数据412),复制组件402可以在量子位重排序期间仿真受控NOT门(例如,CNOT门304)。此外,并行化组件404可以基于在量子位重排序期间由复制组件402仿真的受控非门来执行存储器访问平衡。并行化组件404可以输出存储器访问平衡的结果作为输出数据414。并行化组件404可以执行存储器访问平衡以减少和/或最小化量子存储器的碎片访问(如关于图1C和图2所讨论的)。另外,或者作为替代,在实现方式中,并行化组件404可以执行存储器访问平衡以减少和/或最小化低效的线程局部性(如参考图1B和图2所讨论的)。

并行化组件404可以执行存储器访问平衡,并且可以基于与人工智能的原理相关联的分类、相关性、推论和/或表达式来生成输出数据414。例如,并行化组件404以及其他系统组件可以采用自动分类系统和/或自动分类过程来确定选择哪个量子位作为控制位、选择哪个量子位作为目标位、何时选择一个或多个其他位作为控制位和/或目标位、存储器访问平衡是否成功等等。在一个例子中,并行化组件404可以采用基于概率和/或统计的分析(例如,分解成分析效用和成本)来学习和/或生成关于一个或多个量子位的选择和应当应用于一个或多个量子位的对应平衡的推理。在一个方面,并行化组件404可以包括推理组件(未示出),该推理组件可以部分地利用基于推理的方案来促进学习和/或生成与量子位的选择和/或存储器访问平衡的结果相关联的推理,以便实现减少和/或最小化量子存储器的碎片访问和/或减少和/或最小化线程局部性,从而进一步增强并行化组件404的自动化方面。

并行化组件404可以采用任何合适的基于机器学习的技术、基于统计的技术和/或基于概率的技术。例如,并行化组件404可以采用专家系统、模糊逻辑、SVM、隐马尔可夫模型(HMM)、贪婪搜索算法、基于规则的系统、贝叶斯模型(例如,贝叶斯网络)、神经网络、其他非线性训练技术、数据融合、基于效用的分析系统、采用贝叶斯模型的系统等。在另一方面,并行化组件404可以执行与量子位选择和/或存储器访问平衡相关联的一组机器学习计算。例如,并行化组件404可以执行一组聚类机器学习计算、一组逻辑回归机器学习计算、一组决策树机器学习计算、一组随机森林机器学习计算、一组回归树机器学习计算、一组最小二乘机器学习计算、一组基于实例的机器学习计算、一组回归机器学习计算、一组支持向量回归机器学习计算、一组k均值机器学习计算、一组谱聚类机器学习计算、一组规则学习机器学习计算、一组贝叶斯机器学习计算、一组深Boltzmann机器计算、一组深置信网络计算和/或一组不同的机器学习计算,以确定存储器访问平衡的方式和/或存储器访问平衡的结果。

应当认识到,系统400(例如,复制组件402和/或并行化组件404,以及其他系统组件)在复制组件402在量子位重排序期间仿真受控NOT门的基本上同时执行量子位选择、存储器访问平衡(或重新平衡)和/或生成存储器访问平衡的结果,这不能由人类执行(例如,大于单个人类头脑的能力)。例如,在某个时间段上由系统400(例如,复制组件402和/或并行化组件404)处理的数据的量、处理的数据的速度和/或处理的数据类型可以比在相同时间段上由单个人类头脑处理的量、速度和数据类型更大、更快和不同。系统400(例如,复制组件402和/或并行化组件404)还可以完全可操作以执行一个或多个其他功能(例如,完全通电、完全执行等),同时还执行上述量子电路分析和/或脉冲信号生成过程。此外,由系统400(例如,复制组件402和/或并行化组件404)生成并协调的输出数据414可以包括用户无法人工获得的信息。例如,被用来促进存储器访问平衡和/或生成和输出数据414的量子电路数据412中包括的信息的类型、与量子电路数据412相关联的各种信息和/或量子电路数据412的优化可以比可以被人工获得并且由用户处理的信息更复杂。

图5是根据本发明的一个实施例的实现用于存储器访问平衡的量子位的选择的系统500的框图。

系统500可以包括系统400的一个或多个组件和/或功能,反之亦然。本文讨论的各个方面可用于改进CNOT门的量子计算仿真以避免(例如,减轻和/或减少)q

系统500可以包括选择器组件502,其可以选择用于量子位重排序的第一位和第二位。第一位可以是控制位。在实例中,选择器组件502可以基于确定第一位是等于或高于包括量子位的数量减去非均匀存储器访问节点的数量的二进制对数(log2)的和的位来选择第一位。在另一实例中,选择器组件502可以基于确定第一位是小于多个非均匀存储器访问节点的二进制对数(log2)的位来选择第一位。在又一实例中,选择器组件502可基于确定第二位不同于第一位且不是目标位来选择第二位,其中第一位作为控制位。选择器组件502还可以选择其他量子位。

系统500还可以包括评估组件504,其可以确定并行化组件404执行的存储器访问平衡是成功还是不成功。因此,评估组件504可确定是否存在存储器访问改进,或是否缺乏存储器访问改进。例如,评估组件504可以分析存储器访问平衡以确定是否实现了控制量子位的减少和/或最小化,该控制量子位等于或高于包括量子位的数量减去非均匀存储器访问节点的数量的第一二进制对数(log2)的和。在另一个实例中,评估组件504可以分析存储器访问平衡以确定是否实现了控制量子位的减少和/或最小化,这些控制量子位小于非均匀存储器访问节点的数量的第二二进制对数(log2)。

系统500中还可以包括布置组件506,其可以实现用于量子计算的量子位重排序,其中布置组件506可以利用第二位对第一位进行重排序。此外,基于评估组件504确定量子位重排序和/或存储器访问平衡是成功的(例如,实现了以上结果),布置组件506可以用第三位(和/或后续位)对第一位和/或第二位重排序。例如,评估组件504(或另一个系统组件)可以确定存在更多的量子位应该被重排序,并且因此,如在此所讨论的,第三位(和/或后续位)可以被重排序,直到不存在应该被重排序的附加量子位,如由评估组件504(或另一个系统组件)所确定的。

此外,基于评估组件504确定存在存储器访问改进,选择器组件502可以选择另一个量子位作为控制量子位或作为目标量子位。并行化组件404可以基于在第二(或后续)量子位重排序期间由复制组件402仿真的CNOT门来执行另一存储器访问平衡。

如果评估组件504的确定是量子位重排序和/或存储器访问平衡不成功(例如,以上结果未实现),则复原组件508可以复原(最近的)量子位重排序。

此外,基于评估组件504确定存在存储器访问改进的缺乏,选择器组件502可以选择另一个量子位作为控制量子位或作为目标量子位。并行化组件404可以基于在第二(或后续)量子位重排序期间由复制组件402仿真的CNOT门来执行另一存储器访问平衡。如上所述,评估组件504(或另一个系统组件)可以确定存在更多的量子位应该被重排序,并且因此,如在此所讨论的,可以对第三位(和/或后续位)进行重排序,直到如由评估组件504(或另一个系统组件)所确定的,不存在应该被重排序的附加量子位。

图6是根据本发明的实施例的有助于在量子计算仿真中受控非门并行化的计算机实现的方法600的流程图。

在方法600的602处,操作地耦合到处理器的系统可以在量子位重排序期间(例如,经由复制组件402)仿真受控非门。此外,在方法600的604处,该系统可以基于在量子位重排序期间对受控非门的仿真(例如,经由并行化组件404)来执行存储器访问平衡。存储器访问平衡可以最小化量子存储器的碎片访问。另外或替代地,存储器访问平衡可使线程局部性最小化。

图7是根据本发明的一个实施例的有助于选择一个或多个位来协助量子位重排序的计算机实现的方法700的流程图。

方法700在702处开始,此时包括处理器的系统可(例如,经由选择器组件502)选择第一位和至少第二位。根据各种实现方式,可以选择第一位和至少第二位用于量子位重排序,并且第一位可以是控制位。

在实例中,第一位的选择可以基于确定第一位是等于或高于包括量子位的数量减去非统一存储器访问节点的数量的二进制对数(log2)的和的位。在另一实例中,可基于确定第一位是小于非一致存储器访问节点的数量的二进制对数(log2)的位来选择第一位。在又一实例中,对第一位的选择可以基于确定第二位不同于第一位并且不是目标位,其中第一位作为控制位。

在704,当系统可以在量子位重排序期间(例如,经由复制组件402)仿真受控非门时,方法700继续。此外,在方法700的706,系统可以执行存储器访问平衡(例如,经由并行化组件404)。在存储器访问平衡期间,可仿真受控非门。

图8是根据本发明的一个实施例有助于存储器访问平衡尝试的评估的计算机实现的方法800的流程图。

在第一量子位重排序期间(例如,经由复制组件402)操作性地耦合到处理器的系统仿真受控非门时,方法800在802开始。此外,在804处,该系统可以基于在该第一量子位重排序期间对该受控非门的仿真来执行第一存储器访问平衡(例如,经由并行化组件404)。

在方法800的806处,可以确定第一存储器访问平衡是否成功(例如,经由评估组件504)。如果确定是第一存储器访问平衡不成功(“否”),则在808,该系统可以复原第一量子位重排序(例如,经由复原组件(reversal component)508)。如果确定是第一存储器访问平衡成功(“是”),或者在806处的复原之后,方法800可以在810处继续,并且该系统可以在第二量子位重排序期间(例如,经由并行化组件404)仿真受控非门。

方法800可在812处继续,确定第二存储器访问平衡是否成功(例如,经由评估组件504)。如果不成功(“否”),则方法800可以返回到806并且可以复原第二量子位重排序(例如,经由复原组件508)。如果成功(“是”),或者在第二量子位重排序的复原之后,并且基于存在更多量子位要重排序,方法800可以在810处继续,并且可以在一个随后的量子位重排序期间(例如,通过并行化组件404)仿真该受控非门。在812处的确定、在806处的复原、和/或在810处的仿真可以继续,直到做出不存在需要根据各种实现方式重排序的另外的量子位的确定。

图9是根据本发明一个实施例的有助于在量子计算仿真中受控非门并行化的计算机实现的方法900的流程图。

方法900在902处开始,此时包括处理器的系统可以选择第一位,其可以是控制位q

在方法900的904处,系统可以选择第二位,其可以是位q(例如,经由选择器组件502)。第二位的选择可基于确定多个位中的一位不是第一位(例如,不是控制位q

在方法900的906处,可以由系统尝试用第二位重排序第一位例如,(用位q重排序控制位q

如果确定低效尚未得到改善(“否”),则方法900可在910处继续,并且最后的重排序可被复原(例如,经由复原组件508)。例如,最后的重排序可以被复原为先前的重排序。在最后重排序的复原之后,或者如果在908处的确定是已经改进了低效(“是”),则方法900可以在912处继续确定是否应当实现附加的重排序(例如,经由评估组件504)。例如,执行附加重排序的确定可基于是否存在可被重排序的附加位。

如果不执行附加的重排序(“否”),则方法900可以在914处停止。然而,如果应执行附加的重排序(“是”),那么所述方法可在902处继续,其中选择第一位(例如,可重新使用控制位)。然而,在一些实现中,902处的选择可以是可用作控制位的另一位。应当理解,在912处执行另一(或后续)重排序的确定可以是递归的。例如,在选择控制位(例如,第一位)和另一位(例如,第二位或后续位)之后,可以执行重排序,并且可以确定是否应当执行另一重排序。

如这里所讨论的,可以提供一种系统、计算机实现的方法、计算机程序产品或本发明的其他实施例,其可以有助于受控非门的量子计算仿真。例如,一种计算机程序产品可以包括一种计算机可读存储介质,该计算机可读存储介质具有包含在其中的程序指令,这些程序指令是由一个处理器可执行的以便致使该处理器在量子位重排序期间仿真该受控非门并且基于在该量子位重排序过程中仿真的该受控非门来执行存储器访问平衡。

在实例中,程序指令可以使处理器基于确定第一位是等于或高于包括量子位的数目减去非统一存储器访问节点的数目的第二二进制对数(log2)的和的位来选择第一位,其中第一位是控制位。或者,所述程序指令可致使所述处理器基于确定第一位是小于所述非一致存储器访问节点的数目的第二进制对数(log2)的位而选择所述第一位。根据一些实施方案,所述程序指令可致使所述处理器基于所述第二位不同于所述第一位且并非目标位的确定而选择第二位,其中所述第一位作为所述控制位。

此外,如在此所讨论的,可以提供一种系统、计算机实现的方法、计算机程序产品、或其他实施例,它们可以有助于改进一个受控非门的量子计算仿真,同时避免个控制量子位的不平衡的存储器访问。例如,一种计算机程序产品可以包括一种计算机可读存储介质,该介质具有包含在其中的程序指令,这些程序指令是由一个处理器可执行的以便致使该处理器选择该控制量子位和一个非控制量子位,其中该非控制量子位和该控制量子位是不同的量子位,用该非控制量子位对该控制量子位重排序,并且在用该非控制量子位对该控制量子位重排序时仿真受控非门。

在示例性实施方式中,程序指令可以使处理器减少控制量子位,其等于或高于量子位的第一数量减去非统一存储器访问节点的第二数量的第一二进制对数(log2)。根据另一实例实现,程序指令可以使处理器减少控制量子位,该控制量子位低于非均匀存储器访问节点的数量的第二二进制对数(log2)。

为了解释的简单起见,将计算机实现的方法描绘和描述为一系列动作。可以理解和明白,本发明不受所示动作和/或动作次序的限制,例如,动作可以按各种次序和/或并发地发生,并且可以与本文未呈现和描述的其它动作一起发生。此外,并非所有示出的动作都是实现根据所公开的主题的计算机实现的方法所必需的。另外,本领域技术人员将理解和明白,计算机实现的方法可以替换地经由状态图或事件被表示为一系列相互关联的状态。另外,还应当理解,下文中以及贯穿本说明书所公开的计算机实现的方法能够被存储在制品上,以便于将这些计算机实现的方法传输和转移到计算机。如本文所使用的术语制品旨在涵盖可从任何计算机可读设备或存储介质访问的计算机程序。

为了提供本发明的各个方面的上下文,图10以及以下讨论旨在提供对其中可实现本发明的各个方面的合适环境的一般描述。图10示出了其中可便于本发明的各实施例的操作环境1000的框图。参考图10,操作环境1000还可以包括计算机1012。计算机1012还可以包括处理单元1014、系统存储器1016和系统总线1018。系统总线1018将包括但不限于系统存储器1016的系统组件耦合到处理单元1014。处理单元1014可以是各种可用处理器中的任一种。双微处理器和其它多处理器体系结构也可用作处理单元1014。系统总线1018可以是若干类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用任何各种可用总线体系结构的局部总线,这些总线体系结构包括但不限于工业标准体系结构(ISA)、微通道体系结构(MSA)、扩展ISA(EISA)、智能驱动电子设备(IDE)、视频电子标准协会(VESA)、局部总线(VLB)、外围部件互连(PCI)、卡总线、通用串行总线(USB)、高级图形端口(AGP)、火线(IEEE 1394)、和小型计算机系统接口(SCSI)。系统存储器1016还可以包括易失性存储器1020和非易失性存储器1022。基本输入/输出系统(BIOS)包含诸如在启动期间在计算机1012内的元件之间传输信息的基本例程,它被存储在非易失性存储器1022中。作为说明而非限制,非易失性存储器1022可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存或非易失性随机存取存储器(RAM)(例如,铁电RAM(FeRAM))。易失性存储器1020还可以包括RAM,其充当外部高速缓冲存储器。作为说明而非限制,RAM可以以许多形式获得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接Rambus RAM(DRRAM)、直接Rambus动态RAM(DRDRAM)和Rambus动态RAM。

计算机1012还可包括可移动/不可移动、易失性/非易失性计算机存储介质。例如,图10示出了盘存储1024。盘存储1024还可包括但不限于,诸如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡、或记忆棒等设备。盘存储1024还可包括单独的存储介质或与其它存储介质组合的存储介质,其它存储介质包括但不限于,诸如紧致盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)等光盘驱动器。为了便于将盘存储1024连接到系统总线1018,通常使用诸如接口1026等可移动或不可移动接口。图10还描绘了充当用户和在合适的操作环境1000中描述的基本计算机资源之间的中介的软件。这样的软件还可以包括例如操作系统1028。可存储在盘存储1024上的操作系统1028用于控制和分配计算机1012的资源。系统应用程序1030利用操作系统1028通过例如存储在系统存储器1016或盘存储1024上的程序模块1032和程序数据1034对资源的管理。应当理解,本公开可以用各种操作系统或操作系统的组合来实现。用户通过输入设备1036把命令或信息输入到计算机1012中。输入设备1036包括但不限于诸如鼠标、跟踪球、指示笔、触摸垫等定点设备、键盘、话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、TV调谐卡、数码相机、数码摄像机、web摄像头等。这些和其它输入设备通过系统总线1018经由接口端口1038连接到处理单元1014。接口端口1038包括,例如,串行端口、并行端口、游戏端口、以及通用串行总线(USB)。(一个或多个)输出设备1040使用与(一个或多个)输入设备1036相同类型的端口中的一些端口。因此,例如,USB端口可用于向计算机1012提供输入,并从计算机1012向输出设备1040输出信息。提供输出适配器1042来说明存在某些输出设备1040,如监视器、扬声器和打印机,以及其它输出设备1040,它们需要专用适配器。作为示例而非限制,输出适配器1042包括提供输出设备1040和系统总线1018之间的连接方法的显卡和声卡。应当注意,其它设备和/或设备的系统提供输入和输出能力,诸如远程计算机1044。

计算机1012可使用至一个或多个远程计算机,诸如远程计算机1044的逻辑连接在网络化环境中操作。远程计算机1044可以是计算机、服务器、路由器、网络PC、工作站、基于微处理器的电器、对等设备或其它常见的网络节点等,且通常还可包括相对于计算机1012所描述的许多或所有元件。为了简洁起见,仅存储器存储设备1046与远程计算机1044一起示出。远程计算机1044通过网络接口1048被逻辑地连接到计算机1012,然后经由通信连接1050被物理地连接。网络接口1048包括有线和/或无线通信网络,例如局域网(LAN)、广域网(WAN)、蜂窝网络等。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网、令牌环等。WAN技术包括,但不限于,点对点链路、像综合业务数字网(ISDN)及其变体那样的电路交换网络、分组交换网络、以及数字用户线(DSL)。通信连接1050是指用于将网络接口1048连接到系统总线1018的硬件/软件。虽然为了清楚地说明,通信连接1050被示为在计算机1012内部,但是它也可以在计算机1012外部。仅出于示例性目的,用于连接到网络接口1048的硬件/软件还可以包括内部和外部技术,诸如包括常规电话级调制解调器、电缆调制解调器和DSL调制解调器的调制解调器、ISDN适配器和以太网卡。

本发明可以是任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(或多个介质),其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。

计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。

计算机可读存储介质的非穷举的列表包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的方法。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作动作,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

尽管以上在运行在一个和/或多个计算机上的计算机程序产品的计算机可执行指令的一般上下文中描述了本主题,但本领域的技术人员将认识到,本公开也可结合其它程序模块来实现。通常,程序模块包括执行任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域的技术人员可以理解,本发明的计算机实现的方法可以用其它计算机系统配置来实施,包括单处理器或多处理器计算机系统、小型计算设备、大型计算机、以及计算机、手持式计算设备(例如,PDA、电话)、基于微处理器的或可编程的消费或工业电子产品等。所示的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。然而,本公开的一些方面,如果不是所有方面,可以在独立计算机上实践。在分布式计算环境中,程序模块可以在本地和远程存储器存储设备中。

如本申请中所使用的,术语“组件”、“系统”、“平台”、“接口”等可以指代和/或可以包括计算机相关的实体或与具有一个或多个特定功能的操作机器相关的实体。这里公开的实体可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用程序和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。在另一示例中,相应组件可从其上存储有各种数据结构的各种计算机可读介质执行。这些组件可以经由本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号(例如,来自一个组件的数据,该组件经由该信号与本地系统、分布式系统中的另一个组件进行交互和/或通过诸如因特网之类的网络与其它系统进行交互)。作为另一个示例,组件可以是具有由电气或电子电路操作的机械部件提供的特定功能的装置,该电气或电子电路由处理器执行的软件或固件应用程序操作。在这种情况下,处理器可以在装置的内部或外部,并且可以执行软件或固件应用的至少一部分。在另一个示例中,组件可以是通过电子组件而不是机械部件来提供特定功能的装置,其中电子组件可以包括处理器或其他方法以执行至少部分地赋予电子组件的功能的软件或固件。在一方面,组件可经由虚拟机来仿真电子组件,例如在云计算系统内。

此外,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另外指定,或者从上下文中清楚,否则“X采用A或B”旨在表示任何自然的包含性排列。也就是说,如果X使用A;X采用B;或者X采用A和B两者,则在任何前述实例下都满足“X采用A或B”。此外,除非另外指定或从上下文中清楚是指单数形式,否则如在本说明书和附图中使用的冠词“一个(a)”和“一个(an)”一般应被解释为表示“一个或多个”。如本文所使用的,术语“示例”和/或“示例性的”用于表示用作示例、实例或说明。为了避免疑惑,本文公开的主题不受这些示例限制。此外,本文中描述为“示例”和/或“示例性”的任何方面或设计不一定被解释为比其它方面或设计优选或有利,也不意味着排除本领域普通技术人员已知的等效示例性结构和技术。

如在本说明书中所采用的,术语“处理器”可以指基本上任何计算处理单元或设备,包括但不限于单核处理器;具有软件多线程执行能力的单处理器;多核处理器;具有软件多线程执行能力的多核处理器;具有硬件多线程技术的多核处理器;平行平台;以及具有分布式共享存储器的并行平台。另外,处理器可以指被设计为执行本文描述的功能的集成电路、专用集成电路(ASIC)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑控制器(PLC)、复杂可编程逻辑器件(CPLD)、分立门或晶体管逻辑、分立硬件组件或其任意组合。此外,处理器可以采用纳米级架构,例如但不限于基于分子和量子点的晶体管、开关和门,以便优化空间使用或增强用户设备的性能。处理器也可以实现为计算处理单元的组合。在本公开中,诸如“存储”、“数据库”以及与组件的操作和功能相关的基本上任何其他信息存储组件之类的术语被用来指代“存储器组件”、在“存储器”中体现的实体或包括存储器的组件。应了解,本文所描述的存储器和/或存储器组件可为易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。作为说明而非限制,非易失性存储器可以包括ROM、PROM、EPROM、EEPROM、闪存或非易失性RAM(例如,FeRAM,易失性存储器可以包括RAM,例如其可以充当外部高速缓存存储器。另外,本文公开的系统的存储器组件或计算机实现的方法旨在包括但不限于包括这些和任何其它合适类型的存储器。

以上描述的内容仅包括系统和计算机实现的方法的示例。当然,不可能为了描述本公开而描述组件或计算机实现的方法的每个可想到的组合,但是本领域的普通技术人员可以认识到,本公开的许多进一步的组合和置换是可能的。此外,就在详细描述、权利要求书、附录和附图中使用术语“包括(including)”、“具有(has)”、“拥有(possesses)”等来说,这些术语旨在以与术语“包含(comprising)”在权利要求书中用作过渡词时所解释的类似的方式为包含性的。已经出于说明的目的呈现了对各种实施例的描述,但是不旨在是穷举的或限于所公开的实施例。在不背离本发明范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择本文所使用的术语是为了最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或为了使本领域的其他普通技术人员能够理解本文所公开的本发明的实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号