共同调度量子计算作业
文献发布时间:2023-06-19 11:39:06
技术领域
本公开内容涉及调度量子计算作业,并且更具体地,涉及基于基于量子的运行约束来共同调度量子计算作业。
背景技术
量子计算通常是为了执行计算和信息处理功能的目的而使用量子力学现象。量子计算可以与通常利用晶体管在二进制值上操作的经典计算形成相比。即,经典的计算机能够以0或1的位值运行,而量子计算机在包括0和1的叠加的量子位(量子位)上运行,能够缠结多个量子位,并且使用干扰。
量子计算硬件不同于经典计算硬件。具体地,超导量子电路总体上依赖于可以在半导体器件中制造的约瑟夫逊(Josephson)结。约瑟夫逊结总体上表现了超电流的约瑟夫逊效应,其中电流可以在没有施加电压的情况下无限期地流过约瑟夫逊结。约瑟夫逊结可以通过弱耦连两个超导体(一种没有电阻地导电的材料)而产生,例如通过隧道势垒。
可以在量子计算中使用约瑟夫逊结的一种方式是通过将该约瑟夫逊结嵌入超导电路中以形成量子位(量子位)。约瑟夫逊结可以用于通过与分流电容器并联地安排该约瑟夫逊结来形成量子位。多个这样的量子位可以被安排在制造在半导体器件上的超导量子电路上。这些量子位可以被安排在点阵(即,网格)形成中,这样使得它们可以被耦连到最近相邻的量子位上。耦连到最近相邻量子位的量子位的这样一种安排可以构成一种量子计算体系结构。现有的量子计算架构的一个实例是量子表面代码架构,该量子表面代码架构可以还包括耦联到对应的量子位上的微波读出谐振器,这些谐振器促进读取这些量子位的量子信息(即,也被称为“寻址”或“读取该量子位的量子逻辑状态”)。这样一个量子表面代码架构可以集成在半导体器件上以形成集成的量子处理器,该集成的量子处理器可以执行比经典计算装置(例如,通用计算机、专用计算机等)可以执行的计算和信息处理功能实质上更复杂的计算和信息处理功能。
量子计算具有解决问题的潜力:由于它们的计算复杂性,在经典计算机上根本或者为了所有实际目的不能解决这些问题。然而,量子计算需要非常专业的技术来例如基于基于量子的运行约束来共同调度量子计算作业,其中这样的量子计算作业可以基于这样的共同调度由量子计算设备(例如,量子计算机、量子处理器等)来执行。例如,基于这样一种共同调度(例如,贯穿本公开内容还被称为运行顺序),该量子计算设备可以使用某些量子位来执行某个量子计算作业。
许多行业专家相信量子计算系统(例如,量子计算机、量子处理器等)的常见使用将作为经典计算系统(例如,基于云的计算系统)的辅助。其结果是,有可能量子计算机将变成一个共享资源,并且与所有共享资源一样,高效和公平的作业调度对于量子计算机的最佳使用变得重要。
重要的是要注意,与经典计算机不同,量子计算机必须运行作业直到完成;将作业交换到磁盘是不可能的。因此,有效的调度是特别重要的。然而,量子计算作业的高效调度需要考虑与这样的量子计算作业和/或与执行这样作业的量子计算系统相关联的对于量子计算唯一的一个或多个基于量子的运行约束。现有的经典和/或量子计算作业调度系统的一个问题是,当调度由一个或多个量子计算设备(例如,量子计算机、量子处理器等)执行的量子计算作业时,它们不考虑这种基于量子的运行约束,这导致这种量子计算设备的低效和/或不公平的使用。
因此,在本领域中需要解决上述问题。
发明内容
从第一方面来看,本发明提供了一种用于促进量子计算作业调度过程的系统,包括:存储计算机可执行组件的存储器;以及处理器,其执行存储在所述存储器中的所述计算机可执行组件,其中所述计算机可执行组件包括:调度器组件,其基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序;以及运行队列组件,所述运行队列组件存储基于所述运行顺序对所述量子计算作业的引用。
从另一方面来看,本发明提供了一种用于促进量子计算作业调度过程的计算机实现的方法,包括:由操作地耦合到处理器的系统基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序;以及由所述系统基于所述运行顺序来存储对所述量子计算作业的引用。
从另一方面来看,本发明提供了一种用于促进量子计算作业调度过程的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有嵌入其中的程序指令,所述程序指令可由处理器执行以致使所述处理器:由所述处理器基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序;以及由所述处理器基于所述运行顺序来存储对所述量子计算作业的引用。
从另一方面来看,本发明提供了一种用于促进量子计算作业调度过程的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质可由处理电路读取并且存储用于由所述处理电路执行以便执行用于执行本发明的步骤的方法的指令。
从另一方面来看,本发明提供了一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,所述计算机程序包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行本发明的步骤。
以下呈现发明内容以提供对本发明的一个或多个实施例的基本理解。本发明内容不旨在标识关键或重要元素,或描绘特定实施例的任何范围或权利要求的任何范围。其唯一目的是以简化形式呈现概念,作为稍后呈现的具体实施方式的序言。在此描述的一个或多个实施例中,描述了促进量子计算作业调度的系统、装置、计算机实施的方法、和/或计算机程序产品。
根据实施例,系统可以包括存储计算机可执行组件的存储器和执行存储在存储器中的计算机可执行组件的处理器。计算机可执行组件可以包括调度器组件,该调度器组件可以基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序。这些计算机可执行组件可以还包括运行队列组件,该运行队列组件可以存储基于该运行顺序的对这些量子计算作业的引用。这种系统的一个优点是它可以促进要由一个或多个量子计算设备(例如,量子计算机、量子处理器等)执行的量子计算作业的高效和公平调度(例如,共同调度),该一个或多个量子计算设备可以由多个实体(例如,通过云计算环境)使用。
在一个实施例中,该调度器组件可以基于包括定义的保真度(fidelity)水平的一个或多个量子位的可用性来确定该运行顺序。这种系统的一个优点是它可以促进由一个或多个量子计算设备执行的计算准确解决。
根据实施例,一种计算机实现的方法可以包括:由操作地耦合到处理器的系统基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序。该计算机实现的方法可以还包括由该系统基于该运行顺序存储对这些量子计算作业的引用。这种计算机实现的方法的一个优点是它可以促进将由一个或多个量子计算设备(例如,量子计算机、量子处理器等)执行的量子计算作业的高效和公平调度(例如,共同调度),该一个或多个量子计算设备可以由多个实体(例如,通过云计算环境)使用。
在一个实施例中,该确定可以包括由该系统基于包括一个或多个包括定义的保真度水平的量子位的可用性来确定该运行顺序。这种计算机实现的方法的一个优点是它可以促进由一个或多个量子计算设备执行的计算的准确解决。
根据实施例,提供了一种可以促进量子计算作业调度过程的计算机程序产品。所述计算机程序产品可以包括计算机可读存储介质,所述计算机可读存储介质具有存储其中的程序指令,所述程序指令可以由处理组件执行以使得所述处理组件基于所述一个或多个基于量子的运行约束由所述处理器来确定量子计算作业的运行顺序。这些程序指令还可以使该处理组件由该处理器基于该运行顺序存储对这些量子计算作业的引用。这种计算机程序产品的一个优点是它可以促进将由一个或多个量子计算设备(例如,量子计算机、量子处理器等)执行的量子计算作业的高效和公平调度(例如,共同调度),该一个或多个量子计算设备可以被多个实体(例如,通过云计算环境)使用。
在实施例中,所述程序指令还可由所述处理器执行以使所述处理器:由所述处理器基于以下各项中的至少一项来确定所述运行顺序:所述量子计算作业的运行时间的近似值;包括定义的保真度水平的一个或多个量子位的可用性;或对应于这些量子计算作业中的至少一个量子计算作业的正确性的定义的置信度水平。这种计算机程序产品的一个优点是它可以促进由一个或多个量子计算设备执行的计算的准确解决。
根据实施例,系统可包括存储计算机可执行组件的存储器和执行存储在存储器中的计算机可执行组件的处理器。计算机可执行组件可以包括调度器组件,该调度器组件可以基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序。计算机可执行组件可以还包括提交组件,该提交组件可以基于运行顺序向一个或多个量子计算设备提交量子计算作业中的至少一个。这种系统的一个优点是它可以促进将由一个或多个量子计算设备(例如,量子计算机、量子处理器等)执行的量子计算作业的高效和公平调度(例如,共同调度),该一个或多个量子计算设备可以由多个实体(例如,通过云计算环境)使用。
在实施例中,调度器组件可以基于以下各项中的至少一项来确定运行顺序:与量子计算作业相对应的最长运行时间的近似值;一个或多个优选量子位的可用性;或对应于这些量子计算作业中的至少一个量子计算作业的正确性的定义的置信水平。这种系统的一个优点是它可以促进由一个或多个量子计算设备执行的计算的准确解决。
根据实施例,一种计算机实现的方法可以包括:由操作性地耦合至处理器的系统基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序。该计算机实现的方法可以还包括由该系统基于该运行顺序向一个或多个量子计算设备提交这些量子计算作业中的至少一个。这种计算机实现的方法的一个优点是它可以促进将由一个或多个量子计算设备(例如,量子计算机、量子处理器等)执行的量子计算作业的高效和公平调度(例如,共同调度),该一个或多个量子计算设备可以由多个实体(例如,通过云计算环境)使用。
在实施例中,所述确定可以包括:由所述系统基于以下各项中的至少一项来确定所述运行顺序:与所述量子计算作业相对应的最长运行时间的近似值;一个或多个优选量子位的可用性;或对应于这些量子计算作业中的至少一个量子计算作业的正确性的定义的置信水平。这种计算机实现的方法的一个优点是它可以促进由一个或多个量子计算设备执行的计算的准确解决。
附图说明
现在将通过参考如在以下附图中展示的优选实施例,仅通过举例来描述本发明:
图1展示了根据本文所描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性系统的框图。
图2A示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性运行顺序。
图2B示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性运行顺序。
图3展示了根据本文所描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性系统的框图。
图4示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性系统的框图。
图5展示了根据本文所描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性系统的框图。
图6展示了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性计算机实现的方法的流程图。
图7示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性计算机实现的方法的流程图。
图8示出了其中可以促进本文描述的一个或多个实施例的示例非限制性操作环境的框图。
图9示出根据本公开的一个或多个实施例的示例非限制性云计算环境的框图。
图10示出了根据本公开的一个或多个实施例的示例非限制性抽象模型层的框图。
具体实施方式
以下具体实施方式仅是说明性的并且不旨在限制实施例和/或实施例的应用或用途。
现在参考附图来描述一个或多个实施例,其中,贯穿全文,相同的附图标记用于指代相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对一个或多个实施例的更透彻的理解。然而,显而易见的是,在不同情况下,可以在没有这些具体细节的情况下实践一个或多个实施例。
考虑到现有的经典和/或量子计算作业调度系统的上述问题,该系统在调度由一个或多个量子计算设备(例如,量子计算机、量子处理器等)执行的量子计算作业时不考虑基于量子的运行约束,这导致这种量子计算设备的低效和/或不公平的使用,本公开可以被实现为以包括调度器组件的系统的形式来产生该问题的解决方案,该调度器组件可以基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序。这种系统的一个优点是它可以促进将由一个或多个量子计算设备(例如,量子计算机、量子处理器等)执行的量子计算作业的高效和公平调度(例如,共同调度),该一个或多个量子计算设备可以由多个实体(例如,通过云计算环境)使用。
图1示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性系统100的框图。在一些实施例中,系统100可以包括可以与云计算环境相关联的量子计算作业调度系统102。例如,量子计算作业调度系统102可以与以下参见图9描述的云计算环境950和/或以下参见图10描述的一个或多个功能抽象层(例如,硬件和软件层1060、虚拟化层1070、管理层1080和/或工作负荷层1090)相关联。
应理解的是,尽管本公开包括关于云计算的详细描述,但本文所引用的传授内容的实现方式不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
业务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在继续参见图1,根据若干实施例,系统100可以包括量子计算作业调度系统102。在一些实施例中,量子计算作业调度系统102可以包括存储器104、处理器106、调度器组件108、运行队列组件110和/或总线112。
应了解的是,在此所公开的不同图中所描绘的本主题公开的实施例仅用于说明,并且因此,此类实施例的架构不限于其中所描绘的系统、装置和/或组件。例如,在一些实施例中,系统100和/或量子计算作业调度系统102可以还包括本文参照操作环境800和图8所描述的不同计算机和/或基于计算的元件。在若干实施例中,此类计算机和/或基于计算的元件可结合实现结合图1或本文公开的其他附图示出和描述的系统、设备、组件和/或计算机实现的操作中的一个或多个来使用。
根据多个实施例,存储器104可以存储一个或多个计算机和/或机器可读、可写和/或可执行组件和/或指令,当由处理器106执行时,这些指令可以促进由(多个)可执行组件和/或(多个)指令定义的操作的执行。例如,存储器104可以存储计算机和/或机器可读、可写和/或可执行组件和/或指令,如本文在参考或不参考本主题公开的各个附图的情况下所描述的,当由处理器106执行时,这些组件和/或指令可以促进本文描述的与量子计算作业调度系统102、调度器组件108、运行队列组件110和/或与量子计算作业调度系统102相关联的另一个组件(例如,约束检查器组件302、提交组件402、非饥饿组件502等)相关的不同功能的执行。
在一些实施例中,存储器104可包括可采用一个或多个存储器架构的易失性存储器(例如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)等)和/或非易失性存储器(例如,只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)等)。以下参照系统存储器816和图8来描述存储器104的进一步示例。存储器104的这样的示例可以用于实现本公开的任何实施例。
根据多个实施例,处理器106可以包括一个或多个类型的处理器和/或电子电路,该一个或多个类型的处理器和/或电子电路可以实现可以被存储在存储器104上的一个或多个计算机和/或机器可读、可写和/或可执行组件和/或指令。例如,处理器106可执行可由这样的计算机和/或机器可读、可写和/或可执行组件和/或指令指定的不同操作,包括但不限于逻辑、控制、输入/输出(I/O)、算术等。在一些实施例中,处理器106可以包括一个或多个中央处理单元、多核处理器、微处理器、双微处理器、微控制器、片上系统(SOC)、阵列处理器、矢量处理器和/或另一类型的处理器。以下参照处理单元814和图8描述处理器106的进一步示例。处理器106的这种示例可以用于实现本公开的任何实施例。
在某些实施例中,量子计算作业调度系统102、存储器104、处理器106、调度器组件108,运行队列组件110,和/或如在此描述的量子计算作业调度系统102的可以另一个组件是可通信的,经由总线112彼此电气地和/或操作地耦合以执行系统100,量子计算作业调度系统102和/或与其耦合的任何组件的功能。在在若干实施例中,总线112可包括一个或多个存储器总线、存储器控制器、外围总线、外部总线、局部总线和/或可采用不同总线架构的另一类型的总线。总线112的进一步示例在下文参考系统总线818和图8来描述。总线112的此类示例可用于实现本公开的任何实施例。
在某些实施例中,量子计算作业调度系统102可以包括任何类型的组件、机器、装置、设施、设备和/或仪器,这些组件、机器、装置、设施、设备和/或仪器包括处理器和/或能够与有线和/或无线网络进行有效和/或操作通信。设想了所有这样的实施例。例如,量子计算作业调度系统102可以包括服务器设备、计算设备,通用计算机、专用计算机、量子计算设备(例如,量子计算机),平板计算设备、手持设备、服务器类计算机器和/或数据库,膝上型计算机、笔记本计算机、台式计算机、蜂窝电话、智能电话,消费电器和/或仪器、工业和/或商业设备、数字助理,支持多媒体互联网的电话、多媒体播放器和/或另一类型的设备。
在一些实施例中,量子计算作业调度系统102可以通过数据电缆(例如,高清晰度多媒体接口(HDMI)、推荐标准(RS)232、以太网电缆等)耦合(例如,通信地、电气地、操作地等)到一个或多个外部系统、源和/或装置(例如,计算装置、通信装置等)。在一些实施例中,量子计算作业调度系统102可以经由网络耦合(例如,通信地、电气地、操作地等)到一个或多个外部系统、源和/或装置(例如,计算装置、通信装置等)。
根据多个实施例,这种网络可以包括有线和无线网络,包括但不限于蜂窝网络、广域网(WAN)(例如,互联网)或局域网(LAN)。例如,量子计算作业调度系统102可以与一个或多个外部系统、源和/或设备通信,例如,使用几乎任何期望的有线或无线技术的计算设备(反之亦然),包括但不限于:无线保真(Wi-Fi)、全球移动通信系统(GSM),通用移动电信系统(UMTS)、全球微波互联接入(WiMAX)、增强型通用分组无线业务(增强型GPRS)、第三代合作伙伴计划(3GPP)长期演进(LTE)、第三代合作伙伴计划2(3GPP2)超移动宽带(UMB)、高速分组接入(HSPA)、Zigbee和其他802.XX无线技术和/或传统电信技术,
根据多个实施例,量子计算作业调度系统102可以包括一个或多个计算机和/或机器可读、可写和/或可执行组件和/或指令,当由处理器106执行时,该一个或多个计算机和/或机器可读、可写和/或可执行组件和/或指令可以促进由这种组件和/或指令定义的操作的执行。进一步地,如本文参照或不参照本公开的各个附图所描述的,在许多实施例中,与量子计算作业调度系统102相关联的任何组件,可以包括一个或多个计算机和/或机器可读、可写和/或可执行组件和/或指令,当由处理器106执行时,可以促进由这样的组件和/或指令定义的操作的执行。例如,调度器组件108、运行队列组件110和/或与如本文所公开的量子计算作业调度系统102相关联的任何其他组件(例如,与量子计算作业调度系统102通信地、电子地和/或操作地耦合的和/或由量子计算作业调度系统102采用的),可包括这样的计算机和/或机器可读、可写和/或可执行组件和/或指令。因此,根据众多实施例,如本文所公开的量子计算作业调度系统102和/或与其相关联的任何组件,可以采用处理器106来执行这种计算机和/或机器可读、可写和/或可执行组件和/或指令,以便促进本文参考量子计算作业调度系统102和/或与其相关联的任何这种组件所描述的一个或多个操作的执行。
在一些实施例中,为了实现一个或多个量子计算作业调度操作,量子计算作业调度系统102可以促进由与调度器组件108、运行队列组件110和/或与如本文公开的量子计算作业调度系统102相关联的另一个组件(例如,约束检查器组件302、提交组件402、非饥饿组件502等)执行的和/或相关联的操作的性能。例如,如下面详细描述的,量子计算作业调度系统102可以促进:基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序;基于所述运行顺序存储所述量子计算作业;基于所述运行顺序向一个或多个量子计算设备提交所述量子计算作业中的至少一个;基于所述量子计算作业的运行时间的近似来确定所述运行顺序;确定该运行顺序是否违反量子位通信约束;基于包括定义的保真度水平的一个或多个量子位的可用性来确定该运行顺序;基于对应于所述量子计算作业中的至少一个量子计算作业的正确性的定义的置信度水平来确定所述运行顺序;和/或基于下列各项中的至少一项来确定所述运行顺序:对应于所述量子计算作业的最长运行时间的近似值、一个或多个优选量子位的可用性、或者对应于所述量子计算作业中的至少一个量子计算作业的正确性的定义的置信水平。
根据多个实施例,调度器组件108可以基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序。例如,调度器组件108可以确定量子计算作业(例如,将执行的待决量子计算运行实例)的运行顺序,这些量子计算作业可以由一个或多个量子计算设备(例如,一个或多个量子计算机、一个或多个量子处理器、和/或另一个量子计算设备)来执行。在一些实施例中,这种运行顺序可以包括运行调度,该运行调度包括对量子计算作业(例如,将执行的待决量子计算运行实例)的引用和/或描述,其中这样的运行调度可以指示每个量子计算作业何时可以由某个量子计算机和/或由这样的量子计算机的某些量子位来执行。在一些实施例中,这样的量子计算作业可以包括量子计算运行实例,包括但不限于计算、数据处理和/或另一量子计算运行实例。在一些实施例中,这样的一个或多个基于量子的运行约束可以包括但不限于,执行量子计算作业所要求的定义数量的量子位、基于纠错执行量子计算作业所要求的定义数量的量子位,和/或另一基于量子的运行约束(例如,如下面参考运行顺序200a、运行顺序200b、图2A和图2B所描述的)。在这些实施例中,可以由实体(例如,人)使用一个或多个输入装置、,输出装置,和/或如下所述的量子计算作业调度系统102的用户接口来定义执行量子计算作业所需的此类定义数量的量子位和/或基于错误校正执行量子计算作业所需的此类定义数量的量子位。
在某些实施例中,调度器组件108可以通过使用一个或多个容器(bin)打包算法共同调度这些量子计算作业来基于一个或多个基于量子的运行约束确定量子计算作业的运行顺序。例如,调度器组件108可以采用一种容器打包算法来共同调度需要M(i)个量子位的量子计算作业,这些量子位可以使用N量子位量子计算机来执行,条件是并行使用的所有量子位的总和小于或等于N(例如,并行使用的所有量子位的总和≤N)。例如,调度器组件108可以采用一个或多个容器打包算法,包括但不限于一维(1D)容器打包算法、二维(2D)容器打包算法、三维(3D)容器打包算法、最佳拟合算法、第一拟合算法、最佳拟合减少算法、第一拟合减少算法和/或另一容器打包算法。
在一些实施例中,调度器组件108可以通过采用上文所描述的一个或多个容器打包算法来调度量子计算作业以使得它们适合最小数量的迭代(例如,执行周期),基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序。例如,给定一个N-量子位(例如,8个量子位)的量子计算机,调度器组件108可以每次迭代共同调度J(i)个量子计算作业(例如,2个作业),其中每个作业需要M(i)个量子位(例如,如由图2A中描绘的运行顺序200a所展示的)。
图2A示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性运行顺序200a。为了简洁起见,省略对在本文描述的各种实施例中采用的类似元件和/或过程的重复描述。
根据多个实施例,运行顺序200a可以表示对待决量子计算作业(例如,图2A中表示为作业l、作业2等的量子计算运行实例)J(i)参考的运行顺序(例如,运行调度),这些待决量子计算作业可以由具有总量的总量子位204的量子计算机在R(i)迭代202(例如,图2A中表示为迭代1、迭代2等)上执行,其中每个量子计算作业需要M(i)个量子位。例如,运行顺序200a的迭代1可以包括对待决量子计算作业的作业l和作业2(例如,量子计算运行实例)的引用,其中作业l可以要求六个(6)所要求的量子位206并且作业2可以要求两个(2)所要求的量子位208。在一些实施例中,调度器组件108可以通过采用上述一个或多个容器打包算法来调度量子计算作业以使得它们适合最小数量的迭代(例如,执行周期)来确定运行顺序200a。
然而,在一些实施例中,运行顺序200a不考虑一个或多个复杂的基于量子计算的约束(例如,与使用量子计算机执行处理作业负荷相关联的约束)。例如,运行顺序200a不考虑基于量子计算的约束,包括但不限于:一旦开始,必须执行量子计算作业(例如,计算、数据处理等)直到完成;量子计算作业并不全部花费相同的时间量来执行;并非所有的量子位都可以彼此直接通信(例如,并非所有的量子位都是互连的和/或位于单一的量子计算设备中);并非所有的量子计算设备(例如,量子计算机、量子处理器等)将具有相同数量的量子位;和/或另一种基于量子计算的约束。
在一些实施例中,为了解决上述一个或多个这样的基于量子的约束,调度器组件108可以基于一个或多个量子计算作业的运行时间的近似来确定运行顺序。例如,调度器组件108可以使用量子计算机的量子电路的电路深度来近似计算每个量子计算作业的运行时间,其中,电路深度可以是当作用于离散量子位上的门同时操作时完成一个执行周期(例如,电路深度可以描述在电路输入端开始并且在电路输出端结束的一个定向路径的最大长度)所需要的时间步长的量。在另一示例中,调度器组件108可以使用与当前量子计算作业相似的先前执行的量子计算作业的运行时间来近似估计每个量子计算作业的运行时间。
在一些实施例中,上述这种运行时间近似可以改变上述容器打包方法(其中可以假设统一的运行时间)为替代容器打包方法(其中调度器组件108可以基于量子位的时间片确定量子计算作业的运行顺序)。例如,调度器组件108可以通过采用上述一个或多个容器打包算法来调度量子计算作业以使得它们适合量子位的时间片(例如,如图2B中描绘的运行顺序200b所示),基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序,其中每个量子计算作业在某个时间开始,并且所有需要的量子位在此时被分配。
图2B示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性运行顺序200b。为了简洁起见,省略对在本文描述的各种实施例中采用的类似元件和/或过程的重复描述。
根据多个实施例,运行顺序200b可以表示为待决量子计算作业的J(i)参考(例如,图2B中表示为作业l、作业2等的量子计算运行实例)的运行顺序(例如,运行调度),这些待决量子计算作业可以由具有总量的总量子位204的量子计算机在T(i)时间片210(例如,图2A中表示为T1、T2等)上执行,其中每个量子计算作业需要M(i)个量子位。例如,运行顺序200b的作业l可能需要四(4)个所需的量子位212,这些量子位可以在四(4)个时间片T1、T2、T3和T4上执行作业l至完成。在另一个实例中,运行顺序200b的作业2可能需要四(4)个所需的量子位214,这些量子位可以在六(6)个时间片T1、T2、T3、T4、T5和T6上执行作业2至完成。在一些实施例中,调度器组件108可以通过采用上述一个或多个容器打包算法来确定运行顺序200b以调度量子计算作业,使得它们适合量子位的时间片,其中每个量子计算作业在某个时间开始并且所有需要的量子位都在这样一个时间被分配。
现在返回图1,在一些实施例中,基于量子计算的约束可以包括量子位随时间的退化。例如,现有的量子计算设备(例如,量子计算机、量子处理器等)可以包括一个或多个量子位,这些量子位可以随着时间而降级,这会导致这样的装置产生量子计算作业(例如,计算)的错误结果。在一些实施例中,为了解决这样的量子位降级约束,调度器组件108可以确定量子计算作业的运行顺序,其中首先调度较长运行的作业,从而降低在计算期间量子位错误发生的可能性。例如,调度器组件108可以确定运行顺序,例如图2B中描绘的运行顺序200b,其中调度器组件108可以确定运行顺序,使得在较短运行作业(例如,作业3、作业4、作业5和/或作业6)之前调度和执行较长运行作业(例如,作业1和/或作业2)直至完成。
在一些实施例中,调度器组件108可以采用一个或多个调度算法来确定量子计算作业的运行顺序,其中,在较短运行的作业之前调度较长运行的作业。例如,调度器组件108可以采用一个或多个调度算法,包括但不限于,最长作业优先(LJF)调度算法、最短作业优先(SJF)调度算法的修改版本(例如,也被称为最短作业下一步(SJN)或最短过程下一步(SPN)),和/或可以促进在较短运行作业之前调度较长运行作业的另一调度算法。
在一些实施例中,一个或多个量子计算作业可以要求由具有一定保真度的一个或多个量子位来执行,这可以构成一个基于量子的运行约束。例如,一个量子计算设备(如一个量子计算机)的一个或多个量子位可以具有比这样一个量子计算机的其他量子位的保真度水平更高的保真度水平。如本文引用的,量子位的保真度是指通过应用量子逻辑门引入的误差的可能性和/或程度,即,在量子逻辑门的应用过程中,更高保真度的量子位经历更低程度的误差,当与较低质量的量子位相比时,经受较低的错误概率或两者。在一些实施例中,调度器组件108可以基于包括定义的保真度水平的一个或多个量子位的可用性来确定运行顺序。例如,调度器组件108可以基于可以由实体(例如,人)定义的量子位保真度的水平来确定量子计算作业的运行顺序。例如,量子计算作业调度系统102可以包括一个或多个输入装置(例如,键盘、鼠标等),一个或多个输出装置(例如,监控器),和/或包括输入控制的用户界面(例如,图形用户界面(GUI)),所述输入控制可以使实体(例如,人类用户)能够向调度器组件108输入一个或多个量子计算作业所需的量子位保真度值。在这些实施例中,调度器组件108可以通过确定具有这样定义的量子位保真度水平的一个或多个量子位是可用的,基于这样定义的量子位保真度水平来确定量子计算作业的运行顺序。
在某些实施例中,量子计算作业的优先级可以随着答案的置信度增加而减小,其中,这种优先级可以构成基于量子的运行约束。例如,如果射出(shot)(例如,量子状态读出、量子逻辑读出等)之间的标准偏差较小(例如,通过由实体,例如,人类用户,定义的较小的某种定义),已经呈现正确答案的可能性在统计上更高,并且因此,可以减少量子计算作业的优先级。在一些实施例中,调度器组件108可以基于一个或多个量子计算作业的这种优先级来确定运行顺序。例如,调度器组件108可以基于对应于量子计算作业中的至少一个的正确性的定义的置信水平来确定运行顺序,其中这样的定义的置信水平可以由实体(例如,人)来定义。例如,量子计算作业调度系统102可以包括一个或多个输入装置(例如,键盘、鼠标等),一个或多个输出设备(例如,监视器),和/或包括输入控制的用户界面(例如,图形用户界面(GUI)),所述输入控制可以使实体(例如,人类用户)能够向调度器组件108输入与量子计算作业中的至少一个量子计算作业的正确性相对应的定义的置信水平。在这个实例中,由于对应于某个(某些)量子计算作业的正确性的置信水平满足和/或超过定义的置信水平,调度器组件108可以降低与这样的(一个或多个)量子计算作业相关联的优先级水平,并且基于与这样的(一个或多个)量子计算作业相关联的降低的优先级水平来确定所有量子计算作业的运行顺序。
在一些实施例中,调度器组件108可以基于以下各项来确定一个或多个第二运行顺序:对应于第二量子计算作业的一个或多个第二基于量子的运行约束;和/或至少一个量子计算作业的完成。例如,基于接收具有对应于其的基于量子的运行约束的新量子计算作业请求,调度器组件108可以基于新的和先前的基于量子的运行约束来确定量子计算作业的新的运行顺序,其中,这种新的运行顺序可以包括新的量子计算作业和尚未完全执行的先前的量子计算作业。在另一示例中,基于先前量子计算作业的完全执行,调度器组件108可以确定剩余的未执行的量子计算作业的新的运行顺序,其中这样的新的运行顺序可以反映完全执行的量子计算作业的移除。
根据多个实施例,运行队列组件110可以基于运行顺序来存储对量子计算作业的引用。例如,运行队列组件110可以基于由调度器组件108(例如,如以上参见图2B所描述的)确定的运行顺序(例如,运行顺序200b)来存储对量子计算作业(例如,将执行的量子计算运行实例)的引用。例如,运行队列组件110可以存储一个运行调度,该运行调度包括对将由一个或多个量子计算设备和/或这些装置的一个或多个某些量子位执行的待决量子计算运行实例的引用。
在一些实施例中,运行队列组件110可以将对量子计算作业的这种引用存储在存储器(例如,存储器104)上。在一些实施例中,存储器104可以包括运行队列组件110(图1中未示出)。例如,运行队列组件110可以包括存储器104的运行队列,其中,运行队列组件110可以基于运行顺序来存储对量子计算作业的这种引用。
在某些实施例中,运行队列组件110可以存储对量子计算作业的引用(例如,在运行队列组件110和/或存储器104上),从而使得对量子计算作业的引用按照量子计算作业要运行的顺序(例如,序列的顺序)(例如,按照量子计算设备执行量子计算作业的顺序)来安排,其中这样的有序排列可以基于由调度器组件108确定的运行顺序(例如,运行顺序200b)。在一些实施例中,对由运行队列组件110存储的量子计算作业的引用的这种有序安排(例如,顺序次序)(例如,如上所述,在运行队列组件110和/或存储器104上)可以建立与每个量子计算作业相关联的优先级。例如,对这样的有序排列内的某个量子计算作业的某个引用的位置(例如,第一、最后等)可以指示对应于这样的某个量子计算作业的优先级,其中这样的优先级可以相对于有序排列中的所有其他量子计算作业。在一些实施例中,这种优先级等级可以由量子计算作业调度系统102的一个或多个组件修改(例如,经由如以下参见图5所描述的非饥饿组件502)。
图3示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性系统300的框图。为了简洁起见,省略对在本文描述的各种实施例中采用的类似元件和/或过程的重复描述。
根据多个实施例,为了解决上述并非所有量子位都可以彼此直接通信的基于量子的运行约束,约束检查器组件302可以确定运行顺序是否违反量子位通信约束。例如,约束检查器组件302可以通过对这样一个运行顺序应用(例如,叠加)一个检查约束应用来确定由调度器组件108所确定的运行顺序(例如,如以上参见图1所描述的)是否违反了量子位通信约束。
在一些实施例中,为了确定运行顺序是否违反量子位通信约束,约束检查器组件302可以确定执行某个量子计算作业所需的所有量子位(例如,图2B中所描绘的运行顺序200b的所需量子位212)是否彼此耦联,使得它们可以彼此直接通信(例如,将量子信息传递到彼此)。例如,约束检查器组件302可以分析一个或多个量子计算设备的一个或多个量子电路(例如,电路量子电动力学(电路QED)),例如,量子计算机,以确定执行某个量子计算作业所要求的某些量子位(例如,所要求的量子位212)是否是电气上的,彼此通信和/或操作地耦合。例如,约束检查器组件302可以分析此类量子电路以确定此类某些量子位(例如,所要求的量子位212)是否彼此感应性地耦连,彼此导电地耦合(例如,经由谐振总线、谐振线、波导、传输线等),电容性耦联到彼此上,和/或以可以促进此类量子位之间的直接通信的另一种方式耦联到彼此上。
在一些实施例中,如果由调度器组件108确定的运行顺序提出将量子计算作业对某些量子位的分配违反通信约束,则约束检查器组件302可以拒绝这样的运行顺序。例如,如果这种运行顺序提出将量子计算作业分配给量子计算设备(例如,量子计算机)的不直接相互通信的某些量子位,约束检查器组件302可以拒绝这种运行顺序。在另一个实例中,如果这种运行顺序提出将一个量子计算作业分配给不同的量子计算设备的某些量子位(例如,位于不同的量子计算机中的某些量子位),约束检查器组件302可以拒绝这种运行顺序。
图4示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性系统400的框图。为了简洁起见,省略对在本文描述的各种实施例中采用的类似元件和/或过程的重复描述。
根据多个实施例,提交组件402可以基于运行顺序向一个或多个量子计算设备提交至少一个量子计算作业。例如,提交组件402可以基于由调度器组件108(例如,如上所述)确定的运行顺序(例如,图2B中描绘的运行顺序200b)从运行队列(例如,运行队列组件110)中选择量子计算作业,其中,这样的运行顺序可以指示在每个选择时间可以选择哪个量子计算作业提交组件402。在这个实例中,提交组件402可以进一步向量子计算设备(例如,量子计算机、量子处理器等)提交这样的量子计算作业,该量子计算设备可以按运行顺序指示并且这样的量子计算设备可以执行该量子计算作业直到完成。
在一些实施例中,为了促进基于运行顺序向量子计算设备提交量子计算作业,提交组件402可以采用优先级调度算法,其中每个量子计算作业可以具有与其对应的优先级等级,该优先级等级可以按照由调度器组件108确定的运行顺序来指示。例如,提交组件402可以采用在经典计算机中使用的优先级调度算法和/或其修改版本来从运行队列(例如,运行队列组件110)中选择具有与其相对应的最高优先级等级(例如,如由调度器组件108确定的运行顺序所指示的)的量子计算作业。在这个实例中,基于使用优先级调度算法的这种选择,提交组件402可以向量子计算设备(例如,量子计算机、量子处理器等)提交(例如,通过数据电缆和/或例如互联网的网络)这种量子计算作业,其中,这种量子计算设备可以执行该量子计算作业直到完成。
图5示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性系统500的框图。为了简洁起见,省略对在本文描述的各种实施例中采用的类似元件和/或过程的重复描述。
根据多个实施例,非饥饿组件502可以确定是否在定义的时间内执行了所有量子计算作业。例如,非饥饿组件502可以确定是否在定义的时间内执行了包括在运行顺序(例如,图2B中描绘的运行顺序200b)中的所有量子计算作业,其中,这种定义的时间可以由实体(例如,如以上参见图1所描述的使用一个或多个输入设备、输出设备和/或量子计算作业调度系统102的用户界面的人)来定义。
在某些实施例中,基于非饥饿组件502确定量子计算作业未在定义的时间内执行,非饥饿组件502可以促进这样的未执行的量子计算作业的执行,即使这样的执行导致资源(例如,量子计算机、量子处理器等)的次优使用。例如,基于非饥饿组件502确定在定义的时间内尚未执行量子计算作业,非饥饿组件502可以提示提交组件402向可以执行量子计算作业的量子计算设备提交这样的未执行的量子计算作业。例如,基于利用优先级调度算法和/或其修改版本的提交组件402,非饥饿组件502可以增加与这样的未执行的量子计算作业相关联的优先级,从而提示提交组件402向量子计算设备提交这样的未执行的量子计算作业。
在一些实施例中,量子计算作业调度系统102可以是与不同技术相关联的量子计算作业调度系统和/或过程。例如,量子计算作业调度系统102可以与经典计算机作业负载调度技术、量子计算机作业负载调度技术、量子力学技术、量子计算技术、量子计算机技术、量子硬件和/或软件技术、量子仿真器技术、经典域和/或量子域数据处理技术、机器学习技术、人工智能技术和/或其他技术相关联。
在某些实施例中,量子计算作业调度系统102可以为与以上识别的不同技术相关联的系统、设备、组件、操作步骤、和/或处理步骤提供技术改进。例如,量子计算作业调度系统102可以基于一个或多个基于量子的运行约束来确定量子计算作业的运行顺序,该一个或多个基于量子的运行约束包括但不限于:一旦开始,必须执行量子计算作业(例如,计算、数据处理等)直到完成;量子计算作业并不全部花费相同的时间量来执行;并非所有的量子位都可以彼此直接通信(例如,并非所有的量子位都是互连的和/或位于单一的量子计算设备中);并非所有的量子计算设备(例如,量子计算机、量子处理器等)将具有相同数量的量子位;和/或另一种基于量子计算的约束。在这个实例中,现有的经典计算机作业调度技术在调度将由一个量子计算设备执行的量子计算作业时不能考虑这种基于量子的运行约束。
在某些实施例中,量子计算作业调度系统102还可以通过提高对由这种量子计算系统和/或装置(例如,量子计算机、量子处理器等)执行的量子计算作业的解决的准确性来向量子计算系统和/或装置提供技术改进。例如,量子计算作业调度系统102可以确定将量子计算作业分配给具有定义的保真度水平(例如,高保真度水平)的某些量子计算设备的运行顺序。在这个示例中,量子计算作业调度系统102由此可以促进与执行量子计算作业的这样的量子计算系统和/或装置相关联的处理单元的改进的处理精度。例如,量子计算作业调度系统102可以通过提高对由这种处理单元(例如,量子处理器)执行的量子计算的解决的准确度来促进这种处理单改进元的这种改进的处理准确度。
在一些实施例中,量子计算作业调度系统102可以向与量子计算系统和/或装置相关联的处理单元提供技术改进。例如,通过基于基于量子的运行约束确定向某些量子计算设备和/或某些量子位分配量子计算作业的运行顺序,量子计算作业调度系统102可以优化这样的量子计算系统和/或设备的操作。在这个实例中,通过优化这样一个量子计算系统和/或装置的操作,量子计算作业调度系统102可以优化与这样的量子计算系统和/或装置相关联的处理单元的操作,由此通过减少这种处理单元的处理周期的数量和/或处理时间的总量来促进这种处理单元的改进的处理性能和/或处理效率。
在某些实施例中,量子计算作业调度系统102可以采用硬件和/或软件来解决本质上是高度技术性的、不是抽象的并且不能作为一组精神动作由人执行的问题。在一些实施例中,本文描述的过程中的一些可以由一个或多个专用计算机(例如,一个或多个量子计算机、量子处理单元等)执行,以执行与基于量子的运行约束来调度量子计算作业相关的额定义的任务。在一些实施例中,可以采用量子计算作业调度系统102和/或其组件来解决通过以上提及的技术(例如,量子计算)的进展、云计算系统的使用、计算机架构、和/或另一种技术而出现的新问题。
应当理解,量子计算作业调度系统102可以利用不能在人的想法中复制或由人执行的电气组件、机械组件和电路的不同组合来执行量子计算作业调度过程。例如,基于上述一个或多个基于量子的运行约束来确定量子计算作业的运行顺序,和/或确定将量子计算作业分配给具有定义的保真度水平(例如,高保真度水平)的某些量子计算设备的运行顺序,是大于人类想法的能力的操作。例如,在某一时间段上由量子计算作业调度系统102处理的数据的量、处理这样的数据的速度、和/或数据的类型可以更大,更快速和/或不同于人类想法在相同时间段内可处理的量、速度和/或数据类型。
根据若干实施例,量子计算作业调度系统102还可以朝向执行一个或多个其他功能(例如,完全通电、完全执行等)同时还执行上述量子计算作业调度过程来完全操作。应当理解,这样的同时多操作执行超出了人类想法的能力。还应当认识到,量子计算作业调度系统102可以包括不可能由实体(如人类用户)手动获得的信息。例如,包括在调度器组件108、运行队列组件110、约束检查器组件302、提交组件402和/或非饥饿组件502中的信息的类型、数量和/或种类可以比由人类用户手动获得的信息更复杂。
图6示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性计算机实现的方法600的流程图。为了简洁起见,省略对在本文描述的各种实施例中采用的类似元件和/或过程的重复描述。
在602处,由操作地耦合到处理器(例如,处理器106)的系统(例如,量子计算作业调度系统102和/或调度器组件108)基于一个或多个基于量子的运行约束来确定量子计算作业(例如,计算、数据处理等)的运行顺序(例如,运行顺序200b)。在一些实施例中,这样的一个或多个基于量子的运行约束可以包括与使用量子计算机执行处理工作负载相关联的约束。例如,这样的一个或多个基于量子的运行约束可以包括但不限于:执行量子计算作业所需的量子位的定义数量;基于错误校正执行量子计算作业所要求的定义数量的量子位;一旦开始,必须执行量子计算作业直到完成;量子计算作业不全部花费相同的时间量来执行;不是所有的量子位都可以彼此直接通信(例如,不是所有的量子位都是互连的和/或位于单一的量子计算设备中);并非所有的量子计算设备(例如,量子计算机、量子处理器等)将具有相同数量的量子位;和/或另一种基于量子计算的约束。
在604,由系统(例如,量子计算作业调度系统102、运行队列组件110和/或存储器104)基于运行顺序来存储对量子计算作业的引用。在一些实施例中,运行队列组件110可以存储对量子计算作业的引用(例如,在运行队列组件110和/或存储器104上),使得对量子计算作业的引用按照量子计算作业要运行的顺序(例如,序列的顺序)(例如,按照量子计算设备要执行量子计算作业的顺序)来布置,其中这样的有序排列可以基于由调度器组件108确定的运行顺序(例如,运行顺序200b)。
图7示出了根据本文描述的一个或多个实施例的可以促进量子计算作业调度组件的示例非限制性计算机实现的方法700的流程图。为了简洁起见,省略对在本文描述的各种实施例中采用的类似元件和/或过程的重复描述。
在702处,由操作地耦合到处理器(例如,处理器106)的系统(例如,量子计算作业调度系统102和/或调度器组件108)基于一个或多个基于量子的运行约束来确定量子计算作业(例如,计算、数据处理等)的运行顺序(例如,运行顺序200b)。在一些实施例中,这样的一个或多个基于量子的运行约束可以包括与使用量子计算机执行处理作业负载相关联的约束。例如,这样的一个或多个基于量子的运行约束可以包括但不限于:执行量子计算作业所需的量子位的定义的数量;基于错误校正执行量子计算作业所要求的定义数量的量子位;一旦开始,必须执行量子计算作业直到完成;量子计算作业不全部花费相同的时间量来执行;不是所有的量子位都可以彼此直接通信(例如,不是所有的量子位都是互连的和/或位于单一的量子计算设备中);并非所有的量子计算设备(例如,量子计算机、量子处理器等)将具有相同数量的量子位;和/或另一种基于量子计算的约束。
在704处,由系统(例如,量子计算作业调度系统102和/或提交组件402)基于运行顺序向一个或多个量子计算设备(例如,量子计算机、量子处理器等)提交量子计算作业中的至少一个。
为了简化解释,计算机实现的方法被描绘和描述为一系列动作。应当理解,本发明并不限于所示出的动作和/或动作的顺序,例如,动作可以按不同顺序和/或同时发生,并且与本文未呈现和描述的其他动作一起发生。此外,并非所有示出的动作都是实现根据所公开的主题的计算机实现的方法。此外,本领域技术人员将理解和领会,计算机实现的方法可替代地经由状态图或事件被表示为一系列相互关联的状态。另外,应进一步理解,下文中和贯穿本说明书公开的计算机实现的方法能够被存储在制品上以便于将这样的计算机实现的方法传送和转移到计算机。如本文所使用的,术语制品旨在涵盖可从任何计算机可读设备或存储介质访问的计算机程序。
为了为所公开的主题的各个方面提供上下文,图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描述的许多或所有元件。为了简洁起见,仅存储器存储装置846被说明为与远程计算机844一起。远程计算机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)、SynchlinkDRAM(SLDRAM)、直接RambusRAM(DRRAM)、直接Rambus动态RAM(DRDRAM)和Rambus动态RAM(RDRAM)。另外,本文所公开的系统或计算机实现的方法的存储器组件旨在包括但不限于包括这些和任何其他合适类型的存储器。
以上已经描述的内容仅包括系统和计算机实现的方法的示例。当然,出于描述本公开的目的,不可能描述组件的每个可想到的组合或计算机实现的方法,但是本领域普通技术人员可以认识到,本公开的许多进一步的组合和排列是可能的。此外,就在具体实施方式、权利要求、附件和附图中使用术语“包括”、“具有”、“拥有”等而言,此类术语旨在以与术语“包含”类似的方式是包括性的,因为“包含”在权利要求中用作过渡词时被解释。
已经出于说明的目的呈现了不同实施例的描述,但不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实际应用或在市场上找到的技术上的技术改进,或使得本领域普通技术人员能够理解在此公开的实施例。
- 共同调度量子计算作业
- 一种用于调度量子计算机的调度服务器、调度方法及应用