掌桥专利:专业的专利平台
掌桥专利
首页

量子电路设计

文献发布时间:2023-06-19 10:32:14


量子电路设计

技术领域

本发明总体上涉及量子电路(例如,量子处理器),并且更具体地涉及量子电路设计。

背景技术

量子计算采用量子物理学来编码信息,而不是基于晶体管的二进制数字技术。例如,量子电路可以采用根据量子物理的叠加原理和量子物理的纠缠原理操作的量子位(例如,量子位)。量子物理的叠加原理允许每个量子位同时表示“1”的值和“0”的值。量子物理状态的纠缠原理允许叠加中的量子位彼此相关。例如,第一值(例如,值“1”或值“0”)的状态可取决于第二值的状态。这样,量子电路可以采用量子位而不是基于晶体管的二进制数字技术来编码信息。然而,与常规的二进制数字装置相比,量子电路的设计总体上是困难的和/或耗时的。这样,可以采用用户接口来协助量子电路的设计。在一个实例中,道格拉斯等人,在美国专利公开号2018/0246848披露了“量子处理器的拓扑或硬件图形是可修改的,例如在嵌入问题之前,例如通过创建多个量子位链,其中每个链作为单个或逻辑量子位运行以在该量子处理器上施加逻辑图形。用户界面(UI)允许用户选择适于嵌入特定问题或问题类型的拓扑,提供定义期望拓扑的参数,或者提供或指定问题图或问题定义,基于处理器的系统从该问题图或问题定义确定或选择要施加的适当拓扑或逻辑图。”然而,使用常规用户接口(例如像道格拉斯等人所披露的用户接口)来设计量子电路是困难和/或耗时的。

发明内容

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

根据一个实施例,一个系统可以包括量子编程组件和可视化组件。该量子编程组件可以管理量子编程过程,以便为量子处理器生成拓扑数据,该拓扑数据表明与该量子处理器相关联的量子位的集合的物理拓扑。该可视化组件可以产生用于该拓扑数据的可视化数据,该可视化数据包括被安排为对应于该量子位的集合的物理拓扑的平面切片元件的集合。平面切片元件的集合可以指示在与量子编程处理相关联的时间步骤处执行的一个或多个操作。与常规的量子处理器设计技术相比,该系统可以提供不同的优点。在某些实施例中,该系统可以在量子处理器的量子编程算法中提供改进的视觉对称性和/或改进的模式检测。在一个实施例中,可视化组件可以提供节点的集合和与该平面切片元件的集合相关联的边的集合。该节点的集合可以代表该量子位的集合。该边的集合可以代表来自该量子位的集合的量子位之间的连接的集合。在另一个实施例中,该可视化可以是第一可视化数据,并且该可视化组件可以生成第二可视化数据,用于与该量子编程过程相关联的汇编代码。在又一个实施例中,该可视化组件可以平行于与该量子编程过程相关联的第二可视化数据通过用户界面来显示与该组平面切片元素相关联的第一可视化数据。在某些实施例中,一个交互组件可以通过该可视化数据与该量子编程过程之间的用户界面来提供交互。在一个实施例中,该交互组件可以基于该可视化数据的修改来修改该量子编程过程。在另一个实施例中,该交互组件可以基于与该用户界面相关联的滚动动作来修改与该量子编程过程相关联的可视化数据或汇编代码。在又一个实施例中,该交互组件可以基于与该量子编程过程相关联的汇编代码的修改来修改该可视化数据。在某些实施例中,该可视化组件可以为不同的量子处理器产生不同的拓扑。在某些实施例中,该可视化组件可以通过基于云的量子计算平台生成该可视化数据。在某些实施例中,可视化组件可以经由数字视频处理来渲染可视化数据。在某些实施例中,该可视化组件可以生成该可视化数据以减少用于与该量子处理器相关联的设计过程的处理量。

根据另一个实施例,提供了一种计算机实现的方法。该计算机实施的方法可以包括通过可操作地耦合到处理器上的系统管理量子编程处理以产生用于量子处理器的拓扑数据,该拓扑数据指示与该量子处理器相关联的量子位的集合的物理拓扑。该计算机实施的方法还可以包括由该系统为该拓扑数据产生可视化数据,该可视化数据包括被安排为对应于该量子位的集合的物理拓扑的平面切片元件的集合,其中,所述平面切片元件的集合指示在与所述量子编程处理相关联的时间步骤处执行的一个或多个操作。此外,该计算机实施的方法可以包括通过该系统在该可视化数据与该量子编程过程之间通过用户界面提供交互。与传统的量子处理器设计技术相比,该计算机实施的方法可以提供不同的优点。在某些实施例中,该计算机实施的方法可以在量子处理器的量子编程算法中提供改进的视觉对称性和/或改进的模式检测。在实施例中,计算机实现的方法还可以包括由系统响应于确定交互满足所定义的标准而修改可视化数据。在另一个实施例中,该计算机实施的方法还可以包括由该系统响应于确定该交互满足所定义的标准而修改该量子编程过程。在又一个实施例中,通过用户界面提供交互可以包括使与该量子编程过程相关联的可视化数据和汇编代码的至少一部分同步。在又一个实施例中,通过该用户接口提供该交互可以包括减少用于与该量子处理器相关联的设计过程的处理量。

根据又另一个实施例,用于促进与量子处理器交互的一种计算机程序产品可以包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令。该程序指令可以由一个处理器执行并且使该处理器通过该处理器管理一个量子编程过程,以便为量子处理器生成拓扑数据,该拓扑数据指示与该量子处理器相关联的量子位的集合的一个物理拓扑。该程序指令还可以引起该处理器通过该处理器为该拓扑数据产生可视化数据,该可视化数据包括被安排为对应于该量子位的集合的物理拓扑的平面切片元件的集合,其中所述平面切片元件的集合指示在与所述量子编程处理相关联的时间步骤处执行的一个或多个操作。此外,所述程序指令可以引起该处理器通过该处理器通过该可视化数据与同该量子编程过程相关联的汇编代码之间的用户界面来提供交互。与常规的量子处理器设计技术相比,该计算机程序产品可以提供不同的优点。在某些实施例中,该计算机程序产品可以在量子处理器的量子编程算法中提供改进的视觉对称性和/或改进的模式检测。在实施例中,程序指令还可以使处理器响应于确定交互满足所定义的标准而由处理器修改可视化数据。在另一个实施例中,这些程序指令还可以使该处理器响应于确定该交互满足所定义的标准而由该处理器修改与该量子编程过程相关联的汇编代码。

附图说明

图1示出了根据本文描述的一个或多个实施例的包括量子合成器组件的示例、非限制性系统的框图。

图2示出了根据本文描述的一个或多个实施例的另一个示例、非限制性系统的框图,该系统包括量子合成器组件。

图3示出了根据本文描述的一个或多个实施例的又一个示例、非限制性系统的框图,该系统包括一个量子合成器组件和量子处理器说明。

图4示出了根据本文描述的一个或多个实施例的与显示设备和服务器相关联的示例非限制性系统。

图5示出了根据本文描述的一个或多个实施例的示例、非限制性用户界面。

图6示出了根据本文描述的一个或多个实施例的另一个示例、非限制性用户界面。

图7示出了根据本文描述的一个或多个实施例的示例、非限制性计算机实施的方法的流程图,该方法用于促进与量子处理器的可视化和/或交互。

图8示出了可以在其中促进本文描述的一个或多个实施例的示例非限制性操作环境的框图。

图9示出了根据本发明的一个或多个实施例的示例、非限制性云计算环境的框图。

图10示出了根据本发明的一个或多个实施例的示例、非限制性抽象模型层的框图。

具体实施方式

以下详细描述仅是说明性的并且不旨在限制实施例和/或实施例的应用或用途。此外,没有意图被在前面的背景技术或概述部分中或在具体实施方式部分中呈现的任何表达或暗示的信息所约束。

现在参考附图来描述一个或多个实施例,其中,贯穿全文,相同的参考标号用于指代相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对一个或多个实施例的更透彻的理解。然而,显而易见的是,在不同情况下,可以在没有这些具体细节的情况下实践一个或多个实施例。

应当理解,尽管本公开包括关于云计算的详细描述,但本文所述教导内容的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。

云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便、按需的网络访问,所述可配置计算资源可以用最小的管理努力或与服务提供者的交互来快速配置和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。

特性如下:

按需自助服务:云消费者可按需自动地单方面供应计算能力,诸如服务器时间和网络存储,而无需与服务提供者的人类交互。

广泛的网络接入:能力在网络上是可用的并且通过标准机制来访问,所述标准机制促进由异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。

资源池:将提供者的计算资源池化以使用多租户模型服务于多个消费者,其中根据需要动态地分配和重新分配不同的物理和虚拟资源。存在位置独立性的意义,因为消费者通常对所提供资源的确切位置不具有控制或知识,但可能能够在较高抽象层级(例如,国家、州或数据中心)处指定位置。

快速弹性:可以快速且弹性地提供能力(在一些情况下,自动地)以快速缩小并且快速释放以快速放大。对于消费者,可用于供应的能力通常显得不受限制,并且可以在任何时间以任何数量购买。

测量的服务:云系统通过利用适于服务类型(例如,存储、处理、带宽和活动用户账户)的某种抽象级别的计量能力来自动控制和优化资源使用。可监视、控制和报告资源使用,从而为所利用的服务的提供者和消费者两者提供透明度。

业务模型如下:

软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至个体应用能力的底层云基础结构,可能的例外是有限的用户特定的应用配置设置。

平台即服务(PaaS):向消费者提供的能力是在云基础结构上部署消费者创建或获取的应用,所述应用是使用提供者所支持的编程语言和工具来创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础结构,但是具有对所部署的应用以及可能的应用托管环境配置的控制。

基础设施即服务(IaaS):提供给消费者的能力是提供消费者能够部署和运行可包括操作系统和应用的任意软件的处理、存储、网络和其他基本计算资源。消费者不管理或控制底层云基础结构,而是具有对操作系统、存储、所部署的应用的控制,以及对所选联网组件(例如,主机防火墙)的可能有限的控制。

部署模型如下:

私有云:云基础结构仅为组织操作。它可由组织或第三方管理,并且可存在于场所内或场所外。

社区云:云基础结构由若干组织共享并且支持具有共享的关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可由组织或第三方管理,并且可存在于场所内或场所外。

公共云:使云基础结构对公众或大型产业组可用并且由销售云服务的组织拥有。

混合云:云基础架构是两个或更多个云(私有、社区或公共的)的组成,这些云保持唯一实体但通过标准化或专有技术来绑定在一起,这些技术实现数据和应用便携性(例如,用于云之间的负载平衡的云突发)。

云计算环境是面向服务的,关注于状态、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点网络的基础设施。

量子计算采用量子物理学来编码信息,而不是基于晶体管的二进制数字技术。例如,量子电路可以采用根据量子物理的叠加原理和量子物理的纠缠原理操作的量子位(例如,量子位)。量子物理的叠加原理允许每个量子位同时表示“1”的值和“0”的值。量子物理状态的纠缠原理允许叠加中的量子位彼此相关。例如,第一值(例如,值“1”或值“0”)的状态可取决于第二值的状态。这样,量子处理器可以使用量子位来编码信息而不是基于晶体管的二进制数字技术。然而,与常规的二进制数字装置相比,量子处理器的设计总体上是困难的和/或耗时的。这样,可以改进量子处理器的设计过程和/或量子处理器的模拟。

为了解决与常规量子处理器设计系统相关联的这些和/或其他问题,本文描述的实施例包括用于量子处理器的可视化和/或交互的系统、计算机实施的方法、以及计算机程序产品。在一个方面,可以提供一种量子算法可视化以允许用户在不同的时间阶段在量子处理器的一个或多个量子算法中进行导航,同时还对该量子处理器的拓扑的至少一部分进行可视化。例如,可以提供量子算法可视化以允许用户在不同的时间相位中针对量子处理器导航通过一个或多个量子算法,同时还看到该量子处理器的不同门。量子算法可视化可以例如经由与基于云的量子计算平台相关联的图形用户界面来提供。在另一方面,该量子算法可视化还可以示出量子算法和/或量子处理器中的表观视觉对称性和/或图案,该量子算法和/或该量子处理器先前在量子处理器的常规设计过程中是不可获得的。另外地或可替代地,用户可以同步地导航该量子处理器的量子算法可视化和/或汇编代码。在一个实施例中,该量子算法可视化可以是拓扑表示(例如,每个物理量子处理器),可以对该拓扑表示进行操纵以创建和/或编辑量子算法。在某些实施例中,该量子算法可视化可以通过滚动(例如,滚动交互)来导航,以查看量子处理器的不同相位和/或与该量子处理器相关联的汇编代码。在一个方面,响应于通过该量子算法可视化来选择量子处理器的特定的量子位,可以向用户提供次级可视化,该次级可视化聚焦和/或隔离该选择的量子位和该量子处理器的一个或多个其他纠缠的量子位。在某些实施例中,量子算法可视化还可以在多个视图中显示量子算法,并且提供与汇编代码和量子算法可视化的滚动匹配的同步滚动。在一个示例中,可以同时提供量子算法在多个视图中的显示。在另一个实例中,可以同时提供该量子算法的显示以及该量子处理器的可视化。在某些实施例中,可以经由数字视频处理来提供该量子算法可视化的至少一部分。在一个实施例中,与量子编程(例如,一个量子编程过程)相关联的图形用户界面可以提供平面切片元件的集合,该平面切片元件的集合具有被安排为反映用于量子处理器的量子位的集合的物理拓扑的节点和边。这些节点可以表示量子位并且这些边可以表示这些量子位之间的连接。此外,平面切片元件的集合可以指示在与量子编程(例如,量子编程过程)相关联的时间步骤处执行的一个或多个操作。

这样,如本文披露的与量子处理器的可视化和/或交互可以提供不同的解决方案来克服与常规的量子处理器设计系统和/或其他常规的技术相关联的上述问题。例如,可以减少设计和/或模拟量子处理器的时间量。此外,可以减少用于设计和/或模拟量子处理器的计算资源的量。还可以优化量子处理器的设计、与量子处理器相关联的量子编程、和/或量子处理器的模拟。另外,可以提高量子处理器系统的精确度和/或量子处理器系统的效率。此外,可以提高量子处理器的质量,提高量子处理器的性能,提高量子处理器的效率,提高量子处理器的时序特性,提高量子处理器的功率特性,和/或改进量子处理器的其他特性。

图1示出了根据本文所描述的一个或多个实施例的用于可视化和/或与量子处理器交互的一个示例、非限制性系统100的框图。在不同实施例中,系统100可以是与诸如但不限于量子处理器技术、量子编程技术、量子处理器建模技术、量子处理器模拟技术、量子计算设计技术、量子位技术、量子电路技术、人工智能技术和/或其他技术等技术相关联的量子合成器系统。系统100可以采用硬件和/或软件来解决本质上是高度技术性的、不是抽象的并且不能作为人的一组精神动作来执行的问题。进一步,在某些实施例中,所执行的这些过程中的一些可以由一个或多个专门的计算机(例如,一个或多个专门的处理单元、带有量子合成器组件的专门的计算机等)来执行,用于执行与量子处理器设计和/或量子处理器模拟相关的定义的任务。系统100和/或系统100的组件可以用来解决通过上述技术、计算机架构等的进步而产生的新问题。系统100的一个或多个实施例可以为量子处理器系统、量子编程系统、量子处理器建模系统、量子处理器模拟系统、量子计算设计系统、量子位系统、量子电路系统、人工智能系统和/或其他系统提供技术改进。系统100的一个或多个实施例还可以通过改进量子处理器(例如,量子电路)的处理性能对该量子处理器提供技术改进,提高该量子处理器的处理效率、提高该量子处理器的处理特性、提高该量子处理器的时序特性和/或提高该量子处理器的功率效率。

在图1所示的实施例中,系统100可以包括量子合成器组件102。如图1所示,量子合成器组件102可以包括量子编程组件104和可视化组件106。量子合成器组件102的各方面可以构成在(多个)机器内具体化的(多个)机器可执行组件,例如,在与一个或多个机器相关联的一个或多个计算机可读介质(或媒介)中具体化的(多个)机器可执行组件。当由一个或多个机器(例如,(多个)计算机、(多个)计算设备、(多个)虚拟机等)执行时,(多个)此类组件可以致使(多个)机器执行所描述的操作。在一个方面,量子合成器组件102还可以包括存储计算机可执行组件和指令的存储器108。此外,量子合成器组件102可以包括处理器110以促进量子合成器组件102执行指令(例如,计算机可执行组件和对应的指令)。如所示出的,在一个或多个实施例中,量子编程组件104、可视化组件106、存储器108和/或处理器110可以彼此电耦合和/或通信地耦合。

量子合成器组件102(例如,量子合成器组件102的量子编程组件104)可以接收量子处理器数据112。量子处理器数据112可以是例如量子处理器的机器可读的描述。该量子处理器可以是用于与量子门序列相关联的一个或多个量子计算的模型。在一个实例中,量子处理器数据112可以包括指示描述量子处理器的文本格式语言(例如,QASM文本格式语言)的文本数据。例如,该文本数据可以例如文本地描述与一个或多个量子位相关联的量子处理器的一个或多个量子位门。在一个实施例中,量子处理器数据112可以额外地包括指示一个或多个标记元件的信息的标记数据,这些标记元件标记了与量子处理器相关联的一个或多个位置。例如,该标记数据可以包括对与一个或多个量子位相关联的量子处理器的一个或多个量子位门的位置进行标记的一个或多个标记元件。该量子处理器可以是机器,该机器基于量子物理学的原理执行一组计算。例如,该量子处理器可以使用量子位对信息进行编码。在一个方面,该量子处理器可以执行与数据相关联的一组指令线程。

量子编程组件104可以管理与该量子处理器相关联的量子编程过程。该量子编程处理可以汇编可以在该量子处理器上执行的一系列指令(例如,一个或多个量子程序)。在一个方面,该量子编程组件104可以管理该量子编程过程以产生用于该量子处理器的拓扑数据。该拓扑数据可以表示与该量子处理器相关联的量子位的集合的物理拓扑。在一个方面,该量子编程处理可以管理量子处理器数据112。例如,量子编程处理可以管理与量子处理器数据112相关联的汇编代码。该汇编代码可以包括指示描述该量子处理器的文本格式语言(例如,QASM文本格式语言)的文本数据。在一个实例中,该汇编代码可以文本地描述该量子处理器的一个或多个量子位门。在某些实施例中,该量子编程处理可以产生量子处理器数据112的至少一部分。可视化组件106可生成拓扑数据的可视化数据114。可视化数据114可以包括例如平面切片元件的集合,该平面切片元件的集合被安排为对应于用于该量子处理器的该量子位的集合的物理拓扑。平面切片元件的集合可以指示在与量子编程处理相关联的时间步骤处执行的一个或多个操作。附加地或可替代地,可视化数据114可包括与平面切片元件的集合相关联的节点的集合和/或与平面切片元件的集合相关联的边的集合。该节点的集合可以代表用于该量子处理器的该量子位的集合。该边的集合可以代表来自该量子位的集合的量子位之间的连接的集合。在一个方面,该拓扑数据可以被格式化为用于该量子处理器的图形数据。该图形数据可以指示该量子处理器的图形表示。在实施例中,图形表示可以被格式化为超图。例如,该图形数据可以图形地将该量子处理器表示为超图。该量子处理器的超图可以包括节点的集合和边的集合。节点的集合可以是超图的顶点的集合(例如,点的集合)。该边的集合可连接来自该节点的集合的两个或更多个节点。在一个方面,该超图的节点可以代表与该量子处理器相关联的张量。例如,该量子处理器的门可以被表示为与该超图中的张量相关联的节点。张量可以是在公共场上的有限数量的矢量空间的张量乘积的元素。这样,一个张量可以是该量子处理器的门的多线图。另外地或可替代地,可视化数据114可以包括与量子编程过程相关联的汇编代码。例如,该可视化数据可以包括该量子处理器的文本数据。在一实施例中,可视化组件106可经由用户界面来显示可视化数据114。例如,可视化组件106可以经由显示设备的图形用户界面来显示可视化数据114。显示装置可为用户装置,例如计算装置、计算机、桌上型计算机、膝上型计算机、监视器装置、智能装置、智能电话、移动装置、手持式装置、平板计算机、便携式计算装置或与显示器相关联的另一类型的装置。

在一个实施例中,可视化组件106可以通过用户界面平行于与用于量子编程过程的汇编代码相关联的第二可视化数据显示与拓扑数据相关联的第一可视化数据。例如,可视化组件106可以通过用户界面平行于与量子编程过程的汇编代码相关联的第二可视化数据显示与平面切片元件的集合相关联的第一可视化数据。在另一实施例中,可视化组件106可基于经由用户界面提供的滚动动作来生成可视化数据114。例如,可视化组件106可以通过经由滚动来移动可视化以匹配与拓扑数据相关联的第一可视化数据和与量子编程过程的汇编代码相关联的第二可视化数据来生成可视化数据114。在一个方面,可视化组件106可以为不同的量子处理器提供不同的拓扑数据和/或不同的图形表示。例如,可视化组件106可以为不同的量子处理器产生不同的拓扑和/或不同的图形表示(例如,用于通过用户界面显示)。在某些实施例中,可视化组件106可以通过基于云的量子计算平台生成可视化数据114。例如,可视化组件106可以在一个基于云的量子计算平台上实施。此外,可视化组件106可以将可视化数据114传输到与基于云的量子计算平台通信的显示装置。显示设备可经由与显示设备的显示器相关联的用户界面来呈现可视化数据114。在某些实施例中,可视化组件106可以经由数字视频处理来生成可视化数据114。例如,可视化数据114的至少一部分可被提供为数字视频脚本。

在某些实施例中,可视化组件106可以基于与人工智能的原理相关联的分类、相关性、推断和/或表达式生成可视化数据114。例如,可视化组件106可采用自动分类系统和/或自动分类过程来生成可视化数据114。在一个示例中,可视化组件106可以采用基于概率和/或统计的分析(例如,分解成分析效用和成本)来学习和/或生成关于可视化数据114的推断。在一方面,可视化组件106可包括推断组件(未示出),该推断组件可进一步利用部分基于推断的方案来增强可视化组件106的各方面,以促进学习和/或生成与可视化数据114相关联的推断。可视化组件106可以采用任何适当的基于机器学习的技术、基于统计的技术和/或基于概率的技术。例如,可视化组件106可以采用专家系统、模糊逻辑、SVM、隐马尔可夫模型(HMM)、贪婪搜索算法、基于规则的系统、贝叶斯模型(例如,贝叶斯网络)、神经网络、其他非线性训练技术、数据融合、基于效用的分析系统、采用贝叶斯模型的系统等。在另一方面,可视化组件106可执行与生成可视化数据114相关联的机器学习计算的集合。例如,可视化组件106可以执行聚类机器学习计算的集合,逻辑回归机器学习计算的集合、决策树机器学习计算的集合,随机森林机器学习计算的集合、回归树机器学习计算的集合,最小平方机器学习计算的集合、基于实例的机器学习计算的集合,回归机器学习计算的集合、支持向量回归机器学习计算的集合,k均值机器学习计算的集合、谱聚类机器学习计算的集合,规则学习机器学习计算的集合、贝叶斯机器学习计算的集合,深玻尔兹曼机器计算的集合、深信网络计算的集合、和/或不同的机器学习计算的集合,以生成可视化数据114。

应当理解,量子合成器组件102(例如,量子编程组件104和/或可视化组件106)执行不能由人类执行的量子合成器过程和/或可视化过程(例如,大于单个人类想法的能力)。例如,在某一时间段上由量子合成器组件102(例如,量子编程组件104和/或可视化组件106)处理的数据量、处理的数据的速度和/或处理的数据的数据类型可以更大,更快速且不同于在相同时间段内可由单个人类情绪处理的量、速度和数据类型。量子合成器组件102(例如,量子编程组件104和/或可视化组件106)还可以朝着执行一个或多个其他功能(例如,完全通电、完全执行等)同时还执行上述量子合成器过程和/或可视化过程是完全可操作的。此外,由量子合成器组件102(例如,量子编程组件104和/或可视化组件106)生成的可视化数据114可以包括不可能由用户手动获得的信息。例如,可视化数据114中所包括的信息的类型和/或可视化数据114中所包括的各种信息可比用户手动获得的信息更复杂。

此外,应了解的是,系统100与常规的量子处理器设计技术相比可以提供不同的优点。系统100还可以提供与常规量子设计技术相关联的问题的不同解决方案。例如,通过使用系统100可以减少设计量子处理器的时间量(例如,可视化组件106可以生成可视化数据114以减少用于与该量子处理器相关联的设计过程的处理量等)。此外,通过采用系统100可以减少用于设计和/或模拟量子处理器的计算资源的量。通过使用系统100还可以优化量子处理器的设计。另外,可以提高量子处理器设计的精确度和/或量子处理器设计的效率。此外,通过采用该系统100,可以提高量子处理器的质量,提高量子处理器的性能,提高量子处理器的效率,提高量子处理器的时序特性,提高量子处理器的功率特性,和/或可以提高量子处理器的其他特性。

图2示出了根据本文描述的一个或多个实施例的示例、非限制性系统200的框图。为了简洁起见,省略对在本文中描述的其他实施例中采用的类似元件的重复描述。

系统200包括量子合成器组件102。图2中所示的量子合成器组件102可以包括量子编程组件104、可视化组件106、交互组件202、存储器108、和/或处理器110。交互组件202可经由显示可视化数据114的用户界面来促进与可视化数据114的交互。在一个方面,交互组件202可以通过用户界面在可视化数据114与和量子处理器数据112相关联的量子编程处理之间提供交互。例如,交互组件202可以通过用户界面在可视化数据114与和量子处理器数据112相关联的量子编程处理的汇编代码之间提供交互。在一个实施例中,交互组件202可以通过用户界面基于对可视化数据114的修改来修改量子编程过程。例如,交互组件202可以通过用户界面基于对可视化数据114的修改来修改量子编程过程的汇编代码。在另一个实施例中,交互组件202可以通过用户界面基于量子编程过程的修改来修改可视化数据114。例如,交互组件202可以通过用户界面基于对用于量子编程过程的汇编代码的修改来修改可视化数据114。在一个方面中,交互组件202可以将用户界面上的可视化数据114与量子编程过程的汇编代码同步。例如,交互组件202可以响应于通过用户界面滚动量子编程处理的汇编代码而滚动用户界面上显示的可视化数据114的一部分。在另一个实例中,量子编程过程的汇编代码的滚动可以与通过用户界面呈现的可视化数据114相匹配。在另一方面,交互组件202可以基于与用户界面相关联的滚动动作来修改与量子编程过程相关联的可视化数据114和/或汇编代码。在又一个方面,交互组件202可以操纵可视化数据114以创建和/或编辑用于量子编程过程的汇编代码的一个或多个部分。在又另一个方面,交互组件202可以允许通过用户界面导航量子编程过程的可视化数据114和/或汇编代码。例如,可以滚动用于该量子编程过程的可视化数据114和/或汇编代码以查看该量子处理器的不同阶段。

此外,应了解的是,与常规的量子处理器设计技术相比,系统200可以提供不同的优点。系统200还可以为与常规量子设计技术相关联的问题提供不同解决方案。例如,通过使用系统200可以减少设计量子处理器的时间量。此外,通过采用系统200可以减少用于设计和/或模拟量子处理器的计算资源的量。通过使用系统200还可以优化量子处理器的设计。另外,可以提高量子处理器设计的精确度和/或量子处理器设计的效率。此外,通过采用该系统200,可以提高量子处理器的质量,提高量子处理器的性能,提高量子处理器的效率,提高量子处理器的时序特性,提高量子处理器的功率特性,和/或可以提高量子处理器的其他特性。

图3示出了根据本文描述的一个或多个实施例的示例、非限制性系统300的框图。为了简洁起见,省略对在本文中描述的其他实施例中采用的类似元件的重复描述。

系统300包括量子合成器组件102和量子处理器说明302。图3所示的量子合成器组件102可以包括量子编程组件104、可视化组件106、交互组件202、存储器108、和/或处理器110。量子处理器说明302可以是一个处理器的说明,该处理器基于量子物理学的原理执行一组计算。例如,该量子处理器说明302可以与描述量子处理器的文本格式语言(例如,QASM文本格式语言)相关联。在一个方面,与该量子处理器说明302相关联的量子处理器可以使用量子位来编码和/或处理信息。在一个实施例中,与该量子处理器说明302相关联的量子处理器可以是一个硬件量子处理器,该硬件量子处理器执行与量子位相关联的一组指令线程。在另一个实施例中,与该量子处理器说明302相关联的量子处理器可以是量子位器件和/或可以使用量子位对信息进行编码和/或处理的量子位单位单元。例如,与该量子处理器说明302相关联的量子处理器可以是量子位器件和/或执行与量子位相关联的一组指令线程的量子位单位单元。在一个方面,该量子处理器说明302可以包括一个或多个量子元件。该一个或多个量子元件可以包括例如与该量子处理器说明302相关联的量子处理器的量子位元件,与该量子处理器说明302相关联的量子处理器的耦合器、与该量子处理器说明302相关联的量子处理器的读出器,与该量子处理器说明302相关联的量子处理器的总线,和/或与该量子处理器说明302相关联的量子处理器的另一个量子元件。在某些实施例中,量子处理器说明302的至少一部分可以通过用户界面(例如,显示装置的用户界面)来确定和/或提供。

应理解的是,与常规的量子处理器设计技术相比,系统300可以提供不同的优点。系统300还可以提供与常规量子设计技术相关联的问题的不同解决方案。例如,通过采用该系统300可以减少设计量子处理器的时间量。此外,通过采用该系统300可以减少用于设计和/或模拟量子处理器的计算资源的量。通过使用系统300还可以优化量子处理器的设计。另外,可以提高量子处理器设计的精确度和/或量子处理器设计的效率。此外,通过采用该系统300,可以提高量子处理器的质量,提高量子处理器的性能,提高量子处理器的效率,提高量子处理器的时序特性,提高量子处理器的功率特性,和/或可以提高量子处理器的其他特性。

图4示出了根据本文描述的一个或多个实施例的示例非限制性系统400的框图。为了简洁起见,省略对在本文中描述的其他实施例中采用的类似元件的重复描述。

系统400包括显示设备402和服务器404。显示设备402可以经由网络406与服务器404进行通信。此外,显示设备402可以是用户设备,诸如例如计算设备、计算机、台式计算机、膝上型计算机、监视器设备、智能设备、智能电话、移动设备、手持设备、平板计算机、便携式计算设备或与显示器相关联的另一类型的设备。网络406可以是通信网络、无线网络、有线网络、互联网协议(IP)网络、IP语音网络、互联网电话网络、移动电信网络和/或另一种类型的网络。服务器404可以包括量子合成器组件102。量子合成器组件102可以包括例如量子编程组件104、可视化组件106、交互组件202、存储器108、和/或处理器110。在实施例中,服务器404可以是基于云的量子计算平台。在实施例中,显示设备402可包括用户界面408。例如,用户界面408可以是图形用户界面。用户界面408能够显示由量子合成器组件102提供的可视化数据(例如,可视化数据114)。例如,在服务器404上实现的量子合成器组件102可以经由网络406向显示设备402发送可视化数据(例如,可视化数据114),以便在用户界面408上显示。

应该认识到,与常规的量子处理器设计技术相比,系统400可以提供不同的优点。系统400还可以提供对与常规量子设计技术相关联的问题的不同解决方案。例如,通过使用系统400可以减少设计量子处理器的时间量。此外,通过采用该系统400可以减少用于设计和/或模拟量子处理器的计算资源的量。通过使用系统400还可以优化量子处理器的设计。另外,可以提高量子处理器设计的精确度和/或量子处理器设计的效率。此外,通过采用该系统400可以提高量子处理器的质量,提高量子处理器的性能,提高量子处理器的效率,提高量子处理器的时序特性,提高量子处理器的功率特性,和/或可以提高量子处理器的其他特性。

图5示出了根据本文描述的一个或多个实施例的示例非限制性用户界面500的框图。为了简洁起见,省略对在本文中描述的其他实施例中采用的类似元件的重复描述。

用户接口500可为(例如)显示装置(例如,显示装置402)的用户接口(例如,用户接口408)。例如,用户接口500可为用于计算装置、计算机、桌上型计算机、膝上型计算机、监视器装置、智能装置、智能电话、移动装置、手持式装置、平板计算机、便携式计算装置或与显示器相关联的另一类型的装置的用户接口。在一个示例中,用户界面500可以是图形用户界面。用户界面500包括拓扑视图502、相邻视图504和汇编代码视图506。拓扑视图502和/或相邻视图可以呈现由量子合成器组件102生成的可视化数据(例如,可视化数据114)的至少一部分。拓扑视图502可以为量子处理器的至少一部分呈现拓扑视图。该相邻视图504可以为量子处理器的至少一部分呈现相邻视图。拓扑视图502和相邻视图504可以呈现量子处理器的对应部分。在一个方面,拓扑视图502可以为量子处理器呈现拓扑数据。例如,拓扑视图502可以呈现与该量子处理器相关联的量子位集合的物理拓扑。在一个非限制性实例中,拓扑视图502可以呈现量子位Q17、量子位Q24、量子位Q25、量子位Q26以及量子位Q32的透视图的物理拓扑。在另一个实例中,拓扑视图502可以呈现量子位Q17、量子位Q24、量子位Q25、量子位Q26以及量子位Q32的平面视图的物理拓扑。例如,量子位Q17可以在量子处理器的图形表示中被表示为第一节点,量子位Q24可以在量子处理器的图形表示中被表示为第二节点,量子位Q25可以在量子处理器的图形表示中被表示为第三节点,量子位Q26可以在量子处理器的图形表示中被表示为第四节点,并且量子位Q32可以在量子处理器的图形表示中被表示为第五节点。该图形表示可以被呈现为量子处理器的透视图、量子处理器的平面视图、量子处理器的等距视图、或者量子处理器的另一个视图。量子位Q17、量子位Q24、量子位Q25、量子位Q26以及量子位Q32还可以与边的集合相关联。例如,量子位Q25和量子位Q32可以由边508连接。此外,拓扑视图502可以表示量子处理器的特定的量子位相位(例如,相位00)。在一个实施例中,量子位Q17、量子位Q24、量子位Q25、量子位Q26以及量子位Q32可以是平面切片元件的集合,这些平面切片元件指示在与量子处理器相关联的时间步骤处执行的一个或多个操作和/或与汇编代码视图506相关联的量子编程过程。在一个实例中,量子位Q25可以被格式化为哈达玛门(例如,“H”门)。例如,用户可以通过用户接口500的拓扑视图502将哈达玛门施加到量子位Q25上。在某些实施例中,用户可以将光标悬停在拓扑视图502中的量子位Q25上方以开始查看可用于量子位Q25的纠缠的量子位的集合门。在某些实施例中,拓扑视图502可以呈现代表选定的量子位的块球。在某些实施例中,用户可以在拓扑视图502中向下滚动以选择在一个不同的量子位相位(例如,相位02)中的量子位。

相邻视图504可以为与拓扑视图502相关联的量子处理器呈现完整的拓扑。例如,相邻视图504可以呈现量子位Q17、量子位Q24、量子位Q25、量子位Q26以及量子位Q32的相邻视图的物理拓扑。这样,采用用户接口500的用户可以例如在时间上以及在量子位的集合之间的交互性的角度上集中于量子位的集合(例如,量子位Q17、量子位Q24、量子位Q25、量子位Q26以及量子位Q32)。在一个方面,相邻视图504可以示出量子处理器的不同量子位相位中的量子位。例如,相邻视图504可以示出量子位相位P00中的量子位Q17、量子位Q24、量子位Q25、量子位Q26以及量子位Q32。在一个实施例中,用户可以通过邻近视图504来选择拓扑视图502中示出的量子位。例如,用户可以选择相邻视图504中的量子位Q25以修改拓扑视图502中示出的量子位Q25。在某些实施例中,响应于用户在相邻视图504中选择不同的量子位相位(例如,量子位相位P02),拓扑视图502可以在相应的不同的量子位相位(例如,量子位相位P02)上选择量子位(例如,量子位Q25)并且向下滚动。在另一个示例中,用户可以经由相邻视图504(例如,通过将量子位从相邻视图504拖出)移除拓扑视图502中示出的量子位。响应于经由相邻视图504移除拓扑视图502中所示的量子位,还可以相应地更新汇编代码视图506。汇编代码视图506可以呈现用于与拓扑视图502和/或相邻视图504中所示的量子处理器相关联的量子编程过程的汇编代码。例如,汇编代码视图506可以包括指示文本格式语言(例如,QASM文本格式语言)的文本数据(例如,汇编代码),该文本格式语言对在拓扑视图502和/或相邻视图504中示出的量子位(例如,量子位Q17、量子位Q24、量子位Q25、量子位Q26以及量子位Q32)进行描述。例如,在汇编代码视图506中示出的文本数据可以例如文本地描述和/或格式化在拓扑视图502和/或相邻视图504中示出的量子位Q17、量子位Q24、量子位Q25、量子位Q26以及量子位Q32。在实施例中,拓扑视图502和/或相邻视图504可以与汇编代码视图506并行地呈现在用户界面500上。在另一实施例中,可以基于拓扑视图502和/或相邻视图504的一个或多个部分的修改来修改汇编代码视图506中所示的汇编代码和/或量子编程处理。例如,可以基于拓扑视图502和/或相邻视图504中所示的量子位(例如,量子位Q25等)的修改来修改汇编代码视图506中所示的汇编代码和/或量子编程过程。附加地或可替代地,可以基于汇编代码视图506中所示的汇编代码和/或量子编程处理的修改来修改拓扑视图502和/或相邻视图504的一个或多个部分。例如,拓扑视图502和/或相邻视图504中示出的量子位(例如,量子位Q25等)可以基于汇编代码视图506中示出的对应汇编代码的修改而被修改。在一实施例中,与拓扑视图502、相邻视图504和/或代码视图506中的数据的交互可根据数据改变来发起拓扑视图502、相邻视图504和代码视图506中的更新。照此,拓扑视图502、相邻视图504和/或代码视图506可被同时更新。

图6示出了根据本文描述的一个或多个实施例的示例、非限制性用户界面500’的框图。为了简洁起见,省略对在本文中描述的其他实施例中采用的类似元件的重复描述。

用户界面500’可以是用户界面500的替代实施例。用户界面500’可以包括拓扑视图502、相邻视图504、汇编代码视图506和滚动视图602。滚动视图602可以用于滚动通过汇编代码视图506。此外,响应于经由滚动视图602的滚动,可以修改拓扑视图502和/或相邻视图504的视图。在一个方面,滚动视图602可以包括一个高亮的区段604,该区段示出了在汇编代码视图506中示出的汇编代码的一部分和/或在拓扑视图502和相邻视图504中示出的量子处理器的一部分。在另一方面,滚动动作可由用户经由滚动视图602来执行。拓扑视图502、相邻视图504和/或汇编代码视图506可基于滚动动作来更新。滚动动作可以是移动突出显示部分604以提供与汇编代码视图相关联的汇编文本的移动和/或与拓扑视图502和/或相邻视图504相关联的可视化的移动的动作。在一个实施例中,与滚动视图602相关联的滚动动作可以允许对与拓扑视图502和相邻视图504相关联的量子处理器的不同相位进行导航。照此,拓扑视图502、相邻视图504和/或汇编代码视图506的滚动可被匹配。

图7示出了根据本文描述的一个或多个实施例的示例、非限制性计算机实施的方法700的流程图,该方法用于促进可视化和/或与量子处理器的交互。在702处,通过可操作地耦合到处理器的系统(例如,通过量子编程组件104)来管理生成用于量子处理器的拓扑数据的量子编程过程,该拓扑数据指示与该量子处理器相关联的量子位集合的物理拓扑。该量子编程处理可以汇编可以在该量子处理器上执行的一系列指令(例如,一个或多个量子程序)。在一个方面,量子编程处理可以管理拓扑数据。例如,该量子编程过程可以管理与该拓扑数据相关联的汇编代码。该汇编代码可以包括指示描述该量子处理器的文本格式语言(例如,QASM文本格式语言)的文本数据。在一个实例中,该汇编代码可以文本地描述该量子处理器的一个或多个量子位门。

在704,由该系统(例如,由可视化组件106)生成用于拓扑数据的可视化数据,其包括被安排为对应于该量子位的集合的物理拓扑的平面切片元件的集合。平面切片元件的集合指示在与量子编程处理相关联的时间步骤处执行的一个或多个操作。在实施例中,可视化数据可包括与平面切片元件的集合相关联的节点的集合和/或与平面切片元件的集合相关联的边的集合。该节点的集合可以表示用于该量子处理器的该量子位的集合。该边的集合可以表示来自该量子位的集合的量子位之间的连接的集合。在一个方面,该可视化数据可以被格式化为用于该量子处理器的图形数据。该图形数据可以指示该量子处理器的图形表示。在实施例中,图形表示可以被格式化为超图。例如,该图形数据可以图形地将该量子处理器表示为超图。该量子处理器的超图可以包括节点的集合和边的集合。节点的集合可以是超图的顶点的集合(例如,点的集合)。该边的集合可连接来自节点的集合的两个或更多个节点。在一个方面,该超图的一个节点可以表示与该量子处理器相关联的张量。例如,该量子处理器的一个门可以被表示为与该超图中的张量相关联的节点。张量可以是在公共场上的有限数量的矢量空间的张量乘积的元素。这样,张量可以是量子处理器的门的多线图。

在706处,由系统(例如,由交互组件202)在可视化数据与量子编程过程之间提供通过用户界面的交互。例如,该可视化数据可以与该量子编程过程的汇编代码并行显示。此外,用户可以通过用户接口与量子编程过程的可视化数据和/或汇编代码进行交互。用户界面可以是图形用户界面。此外,用户界面可在显示设备上实现,诸如计算设备、计算机、台式计算机、膝上型计算机、监视器设备、智能设备、智能电话、移动设备、手持设备、平板计算机、便携式计算设备或与显示器相关联的另一类型的设备。在一个方面,可以通过用户界面对量子编程过程的可视化数据和/或汇编代码进行导航。例如,可以滚动用于量子编程过程的可视化数据和/或汇编代码以查看量子处理器的不同阶段。在一个实施例中,与量子编程过程相关联的可视化数据和汇编代码的至少一部分可以通过用户界面进行同步。

在708,确定交互是否满足所定义的标准。例如,可以确定是否经由交互执行了滚动动作。如果否,则计算机实现的方法700返回到706。如果是,则计算机实现的方法700前进到710。

在710,系统(例如,交互组件202)修改可视化数据和/或量子编程过程。例如,用于该量子编程过程的汇编代码可以通过该用户界面基于对该可视化数据的修改来修改。在一个示例中,响应于通过用户界面滚动量子编程处理的汇编代码,可以修改用户界面上显示的可视化数据的一部分的视图。在另一个实例中,量子编程过程的汇编代码的滚动可以与通过用户界面呈现的可视化数据匹配。在另一方面,可以操纵该可视化数据以创建和/或编辑用于该量子编程过程的汇编代码的一个或多个部分。在又一个方面,可以响应于该量子编程过程的汇编代码的对应部分的修改来修改该可视化数据的一部分。在某些实施例中,通过用户界面提供交互和/或修改该可视化数据和/或该量子编程过程可以包括减少用于与该量子处理器相关联的设计过程的处理量。

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

此外,因为至少生成可视化数据、修改可视化数据、经由用户界面提供交互,从电气和机械组件和电路的组合建立等,人类不能复制或执行由本文公开的量子合成器组件102(例如,量子编程组件104、可视化组件106和/或交互组件202)所执行的处理。例如,一个人不能为量子处理器等产生可视化数据。

为了为所披露的主题的各个方面提供上下文,图8以及以下讨论旨在提供其中可以实现所披露的主题的各个方面的合适环境的一般描述。图8示出了其中可以促进本文描述的一个或多个实施例的示例非限制性操作环境的框图。为了简洁起见,省略对在本文中描述的其他实施例中采用的类似元件的重复描述。

参见图8,用于实现本公开的各个方面的合适的操作环境800还可包括计算机812。计算机812还可以包括处理单元814、系统存储器816和系统总线818。系统总线818将包括但不限于系统存储器816的系统组件耦合到处理单元814。处理单元814可为不同可用处理器中的任一者。双微处理器和其他多处理器架构也可以用作处理单元814。系统总线818可以是包括存储器总线或存储器控制器的若干类型的总线结构中的任何一种,外围总线或外部总线,和/或使用各种可用总线架构的局部总线,但不限于工业标准架构(ISA)、微通道架构(MSA)、扩展ISA(EISA),智能驱动电子装置(IDE)、VESA本地总线(VLB)、外围组件互连(PCI)、卡总线、通用串行总线(USB),高级图形端口(AGP)、火线(IEEE1394)和小型计算机系统接口(SCSI)。

系统存储器816还可以包括易失性存储器820和非易失性存储器822。包含诸如在启动期间在计算机812内的元件之间传输信息的基本例程的基本输入/输出系统(BIOS)被存储在非易失性存储器822中。计算机812还可以包括可移动/不可移动、易失性/非易失性计算机存储介质。图8示出了例如磁盘存储器824。磁盘存储装置824还可以包括但不限于像磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡、或记忆棒的装置。盘存储824还可包括分开地或与其他存储介质组合的存储介质。为了促进磁盘存储装置824到系统总线818的连接,通常使用可移除或不可移除接口,诸如接口826。图8还描绘了充当用户和在适当的操作环境800中描述的基本计算机资源之间的中介的软件。这样的软件还可以包括例如操作系统828。可存储在磁盘存储装置824上的操作系统828用于控制和分配计算机812的资源。

系统应用830利用操作系统828通过程序模块832和程序数据834(例如,存储在系统存储器816中或磁盘存储装置824上)对资源的管理。应当理解,本公开可以用不同操作系统或操作系统的组合来实现。用户通过输入设备836将命令或信息输入到计算机812中。输入设备836包括但不限于定点设备,诸如鼠标、轨迹球、指示笔、触摸板、键盘、麦克风、操纵杆、游戏板、碟形卫星天线、扫描仪、TV调谐器卡、数码相机、数码摄像机、网络相机等。这些和其他输入设备经由接口端口838通过系统总线818连接到处理单元814。接口端口838包括例如串行端口、并行端口、游戏端口和通用串行总线(USB)。输出设备840使用与输入设备836相同类型的端口中的一些端口。由此,例如,USB端口可用于向计算机812提供输入,并从计算机812向输出装置840输出信息。提供输出适配器842以说明存在需要特殊适配器的一些输出设备840,比如监视器、扬声器和打印机以及其他输出设备840。作为说明而非限制,输出适配器842包括提供输出设备840与系统总线818之间的连接手段的视频和声卡。应注意,其他装置和/或装置的系统提供输入和输出能力两者,例如远程计算机844。

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

现在参见图9,描绘了说明性云计算环境950。如图所示,云计算环境950包括一个或多个云计算节点910,云消费者使用的本地计算设备(诸如个人数字助理(PDA)或移动电话954A、台式计算机954B、膝上型计算机954C和/或汽车计算机系统954N)可与云计算节点910通信。节点910可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境950提供基础结构、平台和/或软件作为云消费者不需要维护本地计算设备上的资源的服务。应理解,图9中所示的计算装置954A-N的类型旨在仅是说明性的,并且计算节点910和云计算环境950可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化装置通信。

现在参见图10,示出了由云计算环境950(图9)提供的一组功能抽象层。应预先理解,图10中所示的组件、层和功能旨在仅是说明性的,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:

硬件和软件层1060包括硬件和软件组件。硬件组件的示例包括:大型机1061;基于RISC(精简指令集计算机)架构的服务器1062;服务器1063;刀片服务器1064;存储装置1065;以及网络和联网组件1066。在一些实施例中,软件组件包括网络应用服务器软件1067和数据库软件1068。

虚拟化层1070提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器1071;虚拟存储1072;虚拟网络1073,包括虚拟专用网络;虚拟应用和操作系统1074;以及虚拟客户端1075。

在一个实例中,管理层1080可提供下文所描述的功能。资源供应1081提供用于执行云计算环境内的任务的计算资源和其他资源的动态获取。计量和定价1082在云计算环境内利用资源时提供成本跟踪,以及针对这些资源的消费的计费或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及对数据和其他资源的保护。用户门户1083为消费者和系统管理员提供对云计算环境的访问。服务级别管理1084提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)计划和履行1085为根据SLA预期未来要求的云计算资源提供预安排和采购。

工作负载层1090提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的非限制性示例包括:地图和导航1091;软件开发和生命周期管理1092;虚拟课堂教育交付1093;数据分析处理1094;事务处理1095;以及量子合成器处理软件1096。

本发明可以是任何可能的集成技术细节水平的系统、方法、装置和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个媒质)。计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体的例子的非穷举的列表还可以包括以下:便携式计算机盘、硬盘、随机存取存储器(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)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)、闪存或非易失性随机存取存储器(RAM)(例如,铁电RAM(FeRAM))。易失性存储器可以包括RAM,该RAM可以例如充当外部高速缓存存储器。作为说明而非限制,RAM以许多形式可用,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、直接Rambus RAM(DRRAM)、直接Rambus动态RAM(DRDRAM)和Rambus动态RAM(RDRAM)。另外,本文所公开的系统或计算机实现的方法的存储器组件旨在包括但不限于包括这些和任何其他合适类型的存储器。

上述内容仅包括系统和计算机实现的方法的示例。当然,出于描述本公开的目的,不可能描述组件的每个可想到的组合或计算机实现的方法,但是本领域普通技术人员可以认识到,本公开的许多进一步的组合和排列是可能的。此外,就在详细说明、权利要求、附件和附图中使用术语“包括”、“具有”、“拥有”等而言,此类术语旨在以与术语“包含”类似的方式是包括性的,因为“包含”在权利要求中用作过渡词时被解释。

已经出于说明的目的呈现了不同实施例的描述,但并非旨在穷举或局限于所披露的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择本文使用的术语以最佳地解释实施例的原理、实际应用或在市场上找到的技术上的技术改进,或使得本领域普通技术人员能够理解本文披露的实施例。

相关技术
  • 一种提高量子计算效率的电路设计方法和系统
  • 量子电路设计
技术分类

06120112579726