CN118056186A - 通过量子任务的带外优先级排序实施使用服务质量(QoS)的量子计算服务 - Google Patents
通过量子任务的带外优先级排序实施使用服务质量(QoS)的量子计算服务 Download PDFInfo
- Publication number
- CN118056186A CN118056186A CN202280066505.0A CN202280066505A CN118056186A CN 118056186 A CN118056186 A CN 118056186A CN 202280066505 A CN202280066505 A CN 202280066505A CN 118056186 A CN118056186 A CN 118056186A
- Authority
- CN
- China
- Prior art keywords
- quantum
- task
- tasks
- job
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012913 prioritisation Methods 0.000 title claims abstract description 54
- 230000003111 delayed effect Effects 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 60
- 238000004088 simulation Methods 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 description 58
- 230000005540 biological transmission Effects 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 238000011161 development Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 239000002096 quantum dot Substances 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005040 ion trap Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000000137 annealing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006735 deficit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002887 superconductor Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/20—Models of quantum computing, e.g. quantum circuits or universal quantum computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Exchange Systems With Centralized Control (AREA)
- Multi Processors (AREA)
Abstract
一种量子计算服务包含服务质量(QoS)和带外优先级排序模块。所述QoS和带外优先级排序模块对提交到所述量子计算服务的量子任务和量子作业实施QoS保证,同时允许基于QoS保证并且不必按照接收所述量子作业或所述量子任务的顺序来处理所述量子作业和所述量子任务。此外,所述QoS和带外优先级排序模块基于先前执行的量子任务的量子资源使用信息来确定带外经更新优先级,使得在确定经更新优先级的同时未决量子任务的提交不会被延迟。
Description
背景技术
量子计算利用量子物理定律来处理信息。量子物理是一种在基本层面上描述现实行为的理论。这是目前唯一能够持续预测光子、分子、原子和电子等微观量子对象行为的物理理论。
量子计算机是一种利用量子物理来写入、存储、处理和读出以量子状态(例如,量子对象的状态)编码的信息的装置。量子对象是根据量子物理定律运行的物理对象。物理对象的状态是所述对象在给定时间的描述。
在量子物理学中,两能级量子系统的状态,或者简单地说,量子比特,是两个复数的平方和为一的列表。这两个数字中的每一个都被称为幅度或准概率,并且它们的绝对值平方是量子比特的测量结果为零或一的概率。概率比特(例如,经典的零或一比特)与量子比特之间的基本和反直觉的区别在于,概率比特表示缺少关于两能级经典系统的信息,而量子比特含有关于两能级量子系统的最大信息。
量子计算机基于此类量子比特(quantum bit)(量子比特(qubit)),所述量子比特可能会经历“叠加”和“纠缠”现象。叠加允许量子系统同时处于多个状态。例如,经典计算机是基于零或一的比特,而量子比特可能同时是零和一两者,其中分配到零和一的概率不同。纠缠是量子系统之间的强相关性,使得量子系统即使相隔很大距离也不可避免地联系在一起。
量子算法包括以期望和受控的方式作用于量子比特的可逆变换,随后是对一个或多个量子比特的测量。例如,如果系统具有两个量子比特,一次变换可能会修改四个数字;有了三个量子比特,这就变成了八个数字,依此类推。因此,量子算法作用于由量子比特数量决定的指数大的数字列表。为了实施变换,例如,变换可以被分解成作用于单个量子比特或一对量子比特的小操作。此类小操作可以被称为量子门,并且量子门的特定布置实施了量子电路。
存在不同类型的量子比特可以用于量子计算机,每种类型都有不同的优点和缺点。例如,一些量子计算机可以包含由超导体、捕获离子、半导体、光子学等构建的量子比特。每一个都可能经历不同水平的干扰、误差和退相干。此外,一些可能对生成特定类型的量子电路或量子算法更有用,而其它可能对生成其它类型的量子电路或量子算法更有用。此外,量子计算技术的成本、运行时间、错误率、可用性等可能会有所不同。
附图说明
图1展示了根据一些实施例的服务提供商网络的量子计算服务,所述量子计算服务使客户能够访问使用多种量子计算技术的量子计算机,其中所述量子计算服务包含提供量子任务的带外优先级排序的服务质量(QoS)和带外优先级排序模块。
图2A展示了根据一些实施例的示例服务质量(QoS)和带外优先级排序模块的更详细视图。
图2B展示了根据一些实施例的可以包含在服务质量(QoS)和带外优先级排序模块中的示例作业控制平面的更详细视图。
图2C展示了根据一些实施例的可以包含在服务质量(QoS)和带外优先级排序模块中的量子任务生成服务和量子任务队列的实例的更详细视图。
图3A展示了根据一些实施例的另一个示例服务质量(QoS)和带外优先级排序模块的更详细视图。
图3B展示了根据一些实施例的可以包含在服务质量(QoS)和带外优先级排序模块中的量子任务生成服务和量子任务队列的另一个实例的更详细视图。
图4A-4B展示了根据一些实施例的可以由服务质量(QoS)和带外优先级排序模块使用的示例访问令牌。
图5展示了根据一些实施例的示例过程,服务质量(QoS)和带外优先级排序模块可以遵循所述示例过程来分配和更新量子任务队列中的量子任务的相应优先级。
图6展示了根据一些实施例的关于服务质量(QoS)和带外优先级排序模块如何管理量子作业任务和单独量子任务的优先级的更详细视图。
图7展示了根据一些实施例的示例过程,通过所述过程,服务质量(QoS)和带外优先级排序模块使用访问令牌来管理量子任务队列中的量子任务的相应优先级。
图8展示了根据一些实施例的物理上位于量子硬件提供商位置处的量子计算服务的边缘计算装置。
图9展示了根据一些实施例的连接到量子计算服务的示例边缘计算装置。
图10展示了根据一些实施例的量子计算服务与量子计算服务的边缘计算装置之间的示例交互。
图11A展示了根据一些实施例的用于将量子电路从量子计算服务传输到量子计算服务的边缘计算装置的示例过程。
图11B展示了根据一些实施例的用于由位于量子硬件提供商位置处的量子计算服务的边缘计算装置调度量子电路在量子计算机上的执行的示例过程。
图11C展示了根据一些实施例的用于由位于量子硬件提供商位置处的量子计算服务的边缘计算装置处理量子电路在量子计算机上的执行结果的示例过程。
图12展示了根据一些实施例的在位于量子硬件提供商位置处的量子计算服务的边缘计算装置上实施的经典计算机与位于量子硬件提供商位置处的量子计算机之间的示例交互。
图13展示了根据一些实施例的用于使用位于量子硬件提供商位置处的量子计算服务的边缘计算装置来执行混合算法的示例过程。
图14是展示了可以在至少一些实施例中使用的示例经典计算装置的框图。
尽管本文通过举例的方式针对若干实施例和说明性附图描述了实施例,但是本领域技术人员将认识到,实施例不限于所描述的实施例或附图。应理解的是,附图和对其的详细描述并非旨在将实施例限制于所公开的特定形式,而相反,意图是覆盖落入由所附权利要求限定的精神和范围内的所有修改、等效物和替代方案。本文所使用的标题只是出于组织目的,而不意图用于限制本说明书或权利要求的范围。如在整个本申请中使用的,词语“可以(may)”以允许的意义(即,意指“有可能”),而不是强制意义(即,意指“必须”)使用。类似地,词语“包含(include、including和includes)”意味着包含但不限于。当在权利要求中使用时,术语“或”用作包含性的而不是排他性的或。例如,短语“x、y或z中的至少一个”意指x、y和z中的任何一个,以及它们的任何组合。
具体实施方式
本公开涉及用于向客户提供量子计算服务并且使客户能够无缝使用一种或多种量子计算技术的方法和设备。另外地,根据一些实施例,本公开涉及一种用于对代表客户执行的量子任务进行优先级排序的公平、可扩展且可审计的技术,其中至少部分地基于对量子作业(量子任务是其一部分)做出的服务质量(QoS)保证对量子任务进行优先级排序。
在一些实施例中,一种系统包含服务提供商网络,所述服务提供商网络包括被配置成实施量子计算服务的一个或多个计算装置。所述系统还可以包含服务提供商网络的位于第一量子硬件提供商的位置处的第一边缘计算装置和服务提供商网络的位于一个或多个另外量子硬件提供商的相应位置处的一个或多个另外边缘计算装置。在一些实施例中,量子计算服务可以另外地或可替代地连接到位于服务提供商网络内的一个或多个量子硬件装置。例如,量子计算服务可以向客户提供对内部量子处理单元(QPU)和/或外部量子硬件提供商的外部量子处理单元(QHP的QPU)的访问。实施量子计算服务的一个或多个计算装置被配置成从量子计算服务的客户接收要被执行的量子计算对象的定义,并且选择至少一个量子硬件提供商来执行量子计算对象,或者选择内部QPU来执行量子计算对象。在一些实施例中,量子计算对象可以是量子任务或量子作业,如使用量子算法开发工具包的问题域接口定义的任务或作业;使用量子计算服务的量子算法开发工具包定义的或由客户提供的量子算法;或者使用量子计算服务的量子算法开发工具包定义的、或由客户提供的量子电路。在一些实施例中,量子作业可以包括多个量子任务。
例如,包括量子处理部分和经典处理部分的混合作业可以是需要执行多个量子任务的量子作业。在一些实施例中,如本文所指的单独量子任务可以包含将在给定QPU上执行的单量子电路。在一些实施例中,量子程序可以定义量子作业,其中量子程序包含要在一个或多个QPU上执行的多个量子电路。例如,量子程序可以包含单量子电路或者可以包含多个量子电路。例如,在一些实施例中,量子程序可以包含指示基于一个或多个条件实施特定量子电路的逻辑循环,如“for循环”、“if循环”、“while循环”等。另外,在一些实施例中,量子程序可以指示参数量子电路的实施方案。在如上文所描述的此类实例中,量子程序的单独量子电路的执行在本文可以被称为量子任务,并且量子程序作为一个整体的执行在本文可以被称为量子作业。
在一些实施例中,实施量子计算服务的一个或多个计算装置可以进一步被配置成向客户提供关于使用哪个量子硬件提供商或内部QPU来执行客户的量子计算对象的推荐,并且选择内部QPU或量子硬件提供商来执行量子计算对象可以基于从客户接收到的关于选择哪种类型的量子硬件来执行客户的量子计算对象的推荐和/或其它输入。在一些实施例中,所述推荐可以包含与在量子硬件提供商中的相应量子硬件提供商或内部QPU的量子计算机上执行量子计算对象相关联的估计成本、错误率、运行时间等。例如,所述推荐可以包含可用于在各种量子硬件提供商和/或内部QPU处执行量子计算对象的各种服务质量(QoS)保证。
实施量子计算服务的一个或多个计算装置被进一步配置成通过位于所选择的量子硬件提供商的相应位置处的给定边缘计算装置向所选择的一个或多个量子硬件提供商提交包括对应于量子计算对象的至少一部分的量子电路的量子任务,接收在所选择的量子硬件提供商的量子计算机上执行量子电路的结果,存储执行量子电路的结果,并且向客户提供量子计算对象的执行已经完成的通知。然而,当选择内部QPU来执行量子任务时,量子任务可以直接提交到内部QPU的队列。例如,可能没有必要通过后端API传输将量子任务传输到边缘计算装置以将量子任务提交到内部QPU。
量子计算服务还被配置成将量子计算对象转换成用于由所选择的量子硬件提供商或内部QPU使用的特定量子计算技术的所选择的量子电路格式,其中用于所述特定量子计算技术的所选择的量子电路格式是用于由量子计算服务支持的多种不同量子计算技术的多种量子电路格式中的一种量子电路格式。
为了将量子计算对象转换成所选择的量子电路格式,实施量子计算服务的一个或多个计算装置被配置成识别量子计算对象的与客户提交量子对象的中间表示中的量子算子相对应的部分,用特定量子计算技术的量子电路格式的量子算子取代中间表示的量子算子,并且执行一个或多个优化以减少作为接收到的量子计算对象的经转换版本的经转换量子电路中的量子算子的总数。
另外地,量子计算服务被配置成提供经转换量子电路,用于在使用特定量子计算技术的量子硬件提供商或内部QPU处执行;从量子硬件提供商或内部QPU接收经转换量子电路的执行结果;并且向量子计算服务的客户提供量子计算对象已经被执行的通知。
在一些实施例中,实施量子计算服务的提供商网络的计算装置被进一步配置成实施用于量子计算服务的优先级访问控制平面和用于量子计算服务的一个或多个量子任务队列。所述优先级访问控制平面可以对量子计算服务的客户提交到量子计算服务的量子作业实施服务质量保证。另外地,所述优先级访问控制平面可以对量子任务的执行进行负载平衡,使得单量子任务在没有被提交到QHP或内部QPU以进行执行的情况下不会在量子任务队列中停留超过阈值时间量。另外地或可替代地,一旦给定量子作业的执行已经开始,所述优先级访问控制平面可以使给定量子作业的完成优先于提交到量子计算服务的其它量子作业的开始。例如,优先级访问控制平面可以使完成已经开始的第一量子作业优先于开始执行下一个量子作业。尽管在一些实施例中,优先级访问控制平面可以一次开始执行超过一个量子作业,其中量子资源基于与相应量子作业相关联的服务质量(QoS)保证被分配给并发执行的量子作业。
如下文更详细解释的,由于量子硬件装置,如量子计算服务的内部QPU或外部量子硬件提供商的QPU,相对于初始校准状态随着时间推移而经历漂移,从而允许在量子作业的连续量子任务的执行之间流逝延长的时间量可能导致不太可靠的结果。此外,客户可能愿意容忍客户的量子作业的较晚的计划开始时间/开始日期,但可能不太满意量子作业一旦开始就要持续很长时间才能完成。在一些实施例中,优先级访问控制平面可以基于量子任务是其一部分的量子作业的服务质量(QoS)保证和/或基于量子作业类型量子任务与不是较大量子作业的一部分的单独量子任务之间的期望负载平衡,向量子计算服务的量子任务队列中包含的相应量子任务分配相应优先级。
所述一个或多个量子任务队列可以是包括等待通过后端API传输被传输到处于QHP位置处的边缘计算装置以在QHP的QPU上执行的量子任务的队列。可替代地或另外地,所述一个或多个量子任务队列可以是等待提交到量子计算服务的内部QPU以便执行的量子任务的队列。在一些实施例中,量子任务队列可以包含等待提交到多种类型的QHP和/或内部QPU的量子任务,其中不同的QHP或QPU利用不同的接口在QHP或QPU处对量子任务进行本地排队以便执行。
优先级访问控制平面可以确定相对优先级和/或将相对优先级分配给带外量子任务,使得确定和分配优先级所需的时间不会延迟量子任务队列中的下一个量子任务的提交。例如,不是响应于下一个量子任务的执行可用性的指示而在提交量子任务队列中的下一个量子任务之前确定经更新优先级,而是优先级访问控制平面可以基于先前确定的优先级在指示下一个量子任务的执行可用性时立即提交量子任务队列中的下一个量子任务,所述先前确定的优先级是基于一个或多个先前提交的量子任务的执行信息而确定的。在一些实施例中,优先级访问控制平面可以使用访问令牌来向一个或多个量子任务队列中的量子任务分配优先级,其中访问令牌与量子任务具有一对多关系。例如,如果经更新优先级改变了给定量子作业相对于其它量子作业的优先级,则优先级访问控制平面可以改变具有给定量子作业的ID的令牌的优先级(或者以其它方式绑定到给定量子作业的令牌的优先级)。这可以使一个或多个量子任务队列中剩余的给定量子作业的所有量子任务采取新的经更新优先级,而不必逐个单独改变量子作业的每个量子任务的优先级。
在一些实施例中,量子任务可以具有可变持续时间,并且用于执行量子作业的先前量子任务的量子资源的实际数量可以用于确定相对于服务质量(QoS)保证的量子作业的当前性能。例如,QoS保证可以规定给定QPU的30%的量子资源将被分配用于执行量子作业,直到量子作业完成。然而,每个单独的量子任务可能会利用QPU的更多或更少的量子资源。例如,基于以下,每个量子任务可能需要可变的时间量来完成:要执行的轮次数(例如,量子任务的量子电路的重复执行和后续测量)、量子任务的量子电路的复杂性、实施量子任务的量子电路相对于先前在QPU上实施的量子电路所需的时间量、量子任务深度等。
作为实例,在给定的资源利用时段期间,量子作业的第一量子任务可以利用QPU的20%的资源,而在第二资源利用时段期间,第二量子任务可以利用QPU的40%的资源。如果量子作业的QoS保证是30%,则优先级访问控制平面可以在执行仅利用了QPU的20%资源的第一量子任务之后,提高量子作业的下一个量子任务的优先级排序(例如,将利用率驱动到30%的目标),但是可以在执行了利用了QPU的40%资源的第二量子任务(其超过30%的目标10%)之后,降低下一个量子任务的执行优先级。以此方式,优先级访问控制平面可以对提交到量子计算服务的量子作业实施QoS保证。
在一些实施例中,优先级访问控制平面可以基于量子资源利用率百分比的静态目标来实施量子任务的动态调度。例如,对于给定的量子作业,目标QoS保证(如上文实例中的30%)可以是静态的。然而,由于每个量子任务使用可变(并且难以预测)量的量子资源,量子作业的优先级可以相对于已经开始执行的其它量子作业动态更新。应注意,量子计算服务可以并行执行超过一个量子作业。例如,如果第一量子作业具有30%的QoS目标,第二量子作业具有20%的QoS目标,并且第三量子作业具有50%的QoS目标(都在同一QPU上),则所有三个量子作业都可以基于它们相应的QoS保证和相应的量子资源利用历史,与被分配用于执行相应量子作业的量子任务的QPU的量子资源并行开始。
在一些实施例中,优先级访问控制平面可以进一步对作业类型量子任务和单独量子任务的执行进行负载平衡。这样做可以确保作业类型的量子任务不会独占量子计算资源的利用而排除单独量子任务。例如,在完成量子作业时,优先级访问控制平面可以确定在量子任务队列中是否存在队列寿命(例如,队列中的时间量)大于阈值寿命的任何单独量子任务。如果存在,则优先级访问控制平面可以在开始下一个量子作业之前优先执行单独量子任务。例如,不是将另外的任务添加到下一个量子作业的量子任务队列中,而是优先级访问控制平面可以首先提交寿命大于阈值的单独量子任务以在QPU处执行。在一些实施例中,优先级访问控制平面可以将单独量子任务(可能由不同客户提交)视为属于“单独任务”作业类型,所述单独任务作业类型可以具有相关联的服务质量保证(QoS)。例如,单独任务作业类型可以被分配10%的QoS保证,使得10%的量子计算资源被分配用于执行单独量子任务。
如上文所讨论,在完成给定的量子任务之后,确定并分配一个或多个量子任务队列中的量子任务的经更新优先级,使得新优先级的更新和分配不在用于提交一个或多个量子任务队列中的下一个量子任务以便执行的关键路径中。例如,当后端API传输或本地QPU队列有能力接受下一个量子任务时,可以自动地提交量子计算服务的一个或多个量子任务队列中的给定量子任务队列的头部处的量子任务,而无需等待要确定的经更新优先级。然而,当量子任务完成时,一个或多个量子任务队列中剩余的其它量子任务可以基于为最近完成的量子任务接收的使用度量来更新它们相应的优先级。
在一些实施例中,客户可以选择用于客户的量子作业和/或量子任务的QoS。在一些实施例中,可以允许愿意为较高QoS保证支付额外费用的客户在选择较低QoS保证的其他客户之前执行所述客户的量子作业。因此,量子作业不一定以先进先出(FIFO)的顺序执行,而是可以基于相对QoS保证来进行优先级重新排序。
在一些实施例中,出于实施QoS保证的目的的量子资源的利用可以考虑各种类型的量子资源的利用,如以下中的一种或多种:执行时间、任务轮次、任务电路大小、任务的量子电路中包含的量子比特的数量、任务的量子电路中包含的量子门的数量、自量子作业的量子任务的最后一次执行以来的时间和/或其它适用的度量。
在一些实施例中,在QPU处需要最小切换的类似电路可以被优先顺序执行。例如,在捕获离子型量子硬件装置中,可以通过减少不同量子电路之间的配置变化来提高量子资源的高效利用。作为另一个实例,对于超导量子比特,如果参数编译可以执行一次并且编译的参数量子电路被高速缓存,则高速缓存的参数电路可以被重新使用,这比将参数电路的运行分散开以让其他客户进入并且潜在地导致编译的参数电路从高速缓存中丢失更高效,其中参数量子电路必须被重新编译。
在一些实施例中,动态学习,如通过机器学习算法,可以用于确定如何更新量子任务队列中的量子任务的优先级。
在一些实施例中,如本文描述的服务优先级模块可以管理关于使用其它类型的量子资源的量子作业和量子任务的优先级排序,所述其它类型的量子资源如在经典计算硬件上实施的量子模拟器、量子编译器等。
此外,尽管根据为多个量子QHP提供优先级排序管理的优先级/服务质量模块描述了本文所描述的各种实例,但是在一些实施例中,给定的QHP可以与量子计算服务合作,以便使量子计算服务的优先级/服务质量模块向QHP提供关于对内部提交的量子任务和量子作业进行优先级排序的优先级排序管理支持。例如,在一些实施例中,优先级/服务质量模块可以在位于QHP设施处的服务提供商网络的边缘计算装置上实施。
示例量子计算服务
量子计算机的构建和操作可能很困难,并且成本也很高。此外,有各种各样的量子计算技术正在开发中,其中没有明确的趋势表明哪种正在开发的量子计算技术可能会获得突出地位。因此,量子计算机的潜在用户可能会犹豫是否投资构建或购买特定类型的量子计算机,因为其它量子计算技术可能会使潜在量子计算机用户可能投资的所选择的量子计算技术黯然失色。此外,成功使用量子计算机解决实际问题可能需要大量的反复试验与错误和/或在其它方面在使用量子计算机方面需要大量的专业知识。
作为构建和维护量子计算机的替代方案,量子计算机的潜在用户可能更喜欢依赖量子计算服务来提供对量子计算机的访问。此外,在一些实施例中,如本文所描述,量子计算服务可以使量子计算机的潜在用户能够访问基于多种不同量子计算技术和/或范例的量子计算机,而不需要构建或管理此类量子计算机所需的成本和资源。此外,在一些实施例中,如本文所描述,量子计算服务可以提供简化使用量子计算机的体验的各种服务,使得缺乏量子力学深度经验或知识的潜在量子计算机用户仍然可以利用量子计算服务来解决问题。
此外,在一些实施例中,如本文所描述的,量子计算服务可以用于补充由服务提供商网络提供的其它服务。例如,量子计算服务可以与经典计算服务交互以执行混合算法。在一些实施例中,量子计算服务可以通过将特定任务发送给量子计算机来执行,并且然后使用量子计算对象在量子计算机上的执行结果来进一步执行另外的经典计算操作,从而允许经典计算机被加速。例如,量子计算服务可以允许以类似于图形处理单元(GPU)可以加速在其它方面将在中央处理单元(CPU)上执行的图形操作的方式来加速在经典硬件上实施的虚拟机。
在一些实施例中,量子计算服务可以向潜在的量子计算机用户提供对使用各种量子计算技术的量子计算机的访问,所述量子计算机如量子退火机、离子阱机、超导机、光子装置等。在一些实施例中,量子计算服务可以向客户提供对至少三大类别的量子计算机,包含量子退火机、基于电路的量子计算机以及模拟或连续变量量子计算机的访问。如本文所使用的,这三大类别可以被称为量子计算范例。
在一些实施例中,量子计算服务可以被配置成使用基于经典硬件的计算实例来模拟量子计算机上的量子电路的执行以提供模拟服务。在一些实施例中,量子计算服务可以被配置成执行通用模拟和/或专门模拟量子电路在特定量子计算机技术类型或范例类型的特定类型的量子计算机上的执行的模拟。在一些实施例中,模拟可以由代表量子计算服务的客户的量子计算服务完全管理。例如,量子计算服务可以在服务提供商网络的虚拟化计算服务上保留足够的计算能力来执行模拟,而无需客户参与管理模拟器的资源的细节。
在一些实施例中,量子计算服务可以包含向客户提供对多种量子计算技术的访问的专用控制台。此外,量子计算服务可以提供量子算法开发工具包,所述量子算法开发工具包使对量子电路设计具有不同熟悉程度的客户能够设计和执行量子电路。在一些实施例中,量子计算服务的控制台可以包含各种应用程序编程接口(API),如:
●(创建/删除/更新/获取/列出)模拟器-配置——对模拟器配置对象的创建、读取、更新和删除(CRUD)操作。
●(启动/取消/描述)模拟器——用于控制每个用户定义的模拟器实例。
●(列出/描述)量子处理器单元(QPU)——取得量子计算机硬件信息。
●(创建/取消/列出/描述)作业——用于管理量子作业的生命周期。
●(分配/更新/列出)服务质量(QoS)保证——用于管理量子作业和/或量子任务的QoS保证。
●(创建/取消/列出/描述)任务——用于管理单独量子任务/量子对象的生命周期。
在一些实施例中,量子算法开发工具包可以包含图形用户接口、API或其它接口,以允许量子计算服务的客户使用量子算法开发工具包来定义量子对象,如量子任务、算法或电路。在一些实施例中,量子算法开发工具包可以包含接口选项,所述接口选项使客户能够与量子计算服务的其他客户共享量子对象。例如,量子算法开发工具包可以包含允许客户与其他客户共享或销售特定量子对象的市场。在一些实施例中,量子算法开发工具包可以包含接口元件,所述接口元件允许客户选择要应用于通过量子算法开发工具包定义的量子作业或量子任务的QoS。
在一些实施例中,量子计算服务可以包含公共应用程序编程接口(API),所述API接受由量子计算服务的客户提交的量子对象。在一些实施例中,量子计算服务可以通过公共API或另一个API接受关于要用于一个或多个量子作业或量子任务的QoS保证的指令,如执行通过公共API接收到的量子对象。另外地,量子计算服务可以包含非公共的后端API传输。后端API传输可以使量子电路能够从实施量子计算服务的集中位置(如服务提供商网络的一个或多个数据中心)传输到量子电路将被执行的特定量子硬件提供商位置处的边缘计算装置。在一些实施例中,可以使用量子计算服务的内部QPU来执行量子对象或量子任务,而不使用后端API传输来将量子作业或量子任务传输到外部量子硬件提供商位置。
在一些实施例中,量子电路在量子硬件提供商位置处的量子计算机上的执行结果可以被提供给量子硬件提供商位置处的边缘计算装置。边缘计算装置可以自动地将结果传输到服务提供商网络的安全存储服务,其中客户可以使用服务提供商网络的存储服务或通过量子计算服务的控制台来访问结果。同样,通过内部QPU执行量子电路的结果可以通过量子计算服务的控制台来访问。
在一些实施例中,存储到安全存储服务的结果可以被集成到服务提供商网络中的其它服务如机器学习服务、数据库服务、基于对象的存储服务、块存储服务、数据呈现服务(将结果重新格式化为更可用的配置)等无缝地使用。例如,在一些实施例中,机器学习服务可以用于优化量子算法或量子电路。例如,机器学习服务可以通过量子计算服务使各种版本的量子算法或量子电路在量子计算机上运行。还可以向机器学习服务提供对运行量子算法或量子电路的结果的访问。在一些实施例中,机器学习服务可以使量子算法或量子电路在各种不同的基于量子计算技术的量子计算机上运行。基于结果,机器学习服务可以确定一个或多个优化以改进量子算法或量子电路。
在一些实施例中,量子计算服务可以支持创建执行量子电路的结果的快照。例如,量子计算服务可以存储混合算法的中间结果的快照,或者可以更一般地存储通过在量子计算机上执行量子电路而生成的任何结果的快照。在一些实施例中,硬件提供商位置处的边缘计算装置可以临时存储结果,并且可以创建存储在边缘计算装置上的结果的快照副本。边缘计算装置可以进一步使快照副本存储在服务提供商网络的基于对象的数据存储服务中。在一些实施例中,基于客户偏好,可以不执行快照。
图1展示了根据一些实施例的服务提供商网络的量子计算服务,所述量子计算服务使客户能够访问使用多种量子计算技术的量子计算机,其中所述量子计算服务包含提供量子任务的带外优先级排序的服务质量(QoS)和带外优先级排序模块。
服务提供商网络100包含量子计算服务102。在一些实施例中,服务提供商网络100可以包含如云计算提供商网络的数据中心、路由器、联网装置等。在一些实施例中,客户104、106和108和/或服务提供商网络100和/或量子计算服务102的另外客户可以以各种方式连接到服务提供商网络100,如通过公共网络之上的逻辑隔离连接、通过不可由公众访问的专用私有物理连接、通过公共因特网连接等。
在一些实施例中,量子计算服务102可以包含服务质量(QoS)和带外优先级排序模块103、量子算法开发工具包114、转换模块112和使用经典硬件118的量子计算模拟器。
此外,量子计算服务102连接到量子硬件提供商122、124、126和128。在一些实施例中,量子硬件提供商122、124、126和128可以提供对在基于各种不同类型的量子计算技术或范例(如基于量子退火、离子阱、超导材料、光子等)操作的量子计算机上运行量子对象的访问。
如图8中更详细讨论的,在一些实施例中,服务提供商网络100可以扩展为包含物理上位于量子硬件提供商位置处(如在量子硬件提供商122、124、126和128的设施中)的一个或多个边缘计算装置。将服务提供商网络100的边缘计算装置物理定位在量子硬件提供商设施处的场所上可以将服务提供商网络100的数据安全性和加密扩展到量子硬件提供商122、124、126和128设施中,从而确保客户数据的安全性。此外,将服务提供商网络100的边缘计算装置物理定位在量子硬件提供商设施处的场所上可以减少服务提供商网络的计算实例与位于量子硬件提供商设施处的量子计算机之间的等待时间。因此,一些应用程序(如对网络等待时间敏感的混合算法)可以由量子计算服务102来执行,而在硬件提供商处没有协同定位的经典计算能力的其它系统可能具有太高的等待时间以至于无法高效地执行此类混合算法。
在一些实施例中,量子计算服务102包含一个或多个后端API传输模块110。在一些实施例中,后端API传输模块110可以主要在量子计算服务的位于量子硬件提供商位置处的边缘计算装置(如图8所展示的边缘计算装置804a、804b、804c和804d)上实施。此外,在一些实施例中,至少一些后端API传输功能可以在服务提供商网络的实施量子计算服务的一个或多个计算装置(如图8所展示的数据中心806a、806b、806c中的计算装置)上实施。在一些实施例中,不同的量子硬件提供商可能需要不同的后端API传输模块,这可能进一步增加量子任务的执行持续时间的可变性。一些量子硬件提供商可以通过API通过网络接受量子任务,使得提供商网络不必为了提交量子任务而将边缘计算装置定位在量子硬件提供商的设施处。在一些实施例中,对于提交给量子硬件提供商以便执行的量子任务,一些量子硬件提供商可以遵循先进先出(FIFO)执行模型。其它量子硬件提供商可能会遵循批量执行模型。为了处理这些执行持续时间可变性并且进一步处理由于各种量子任务的特性(例如,轮次数、量子电路大小、门数量、在量子电路之间切换的时间等)导致的执行持续时间可变性,优先级访问控制平面可以按照优先级排序顺序对提交到各种量子硬件提供商的后端API传输的量子任务进行排序,使得遵循服务质量(QoS)保证和其它调度规则。
已经由转换模块112转换的量子电路可以被提供给后端API传输模块110,以便将经转换量子电路传输到相应量子硬件提供商位置处的量子计算机。在一些实施例中,后端API传输110可以是服务提供商网络100的边缘计算装置可访问的,但不是公共可用的非公共API。在一些实施例中,服务质量(QoS)和带外优先级排序模块103可以管理哪些量子任务被提交给后端API传输以及以什么顺序提交。在一些实施例中,量子硬件提供商122、124、126和128处的边缘计算装置可以周期性地查验到后端API传输110的量子计算机服务端接口,以确定是否存在任何量子电路(或批量量子电路)等待被传输到边缘计算装置。如果存在,边缘计算装置可以执行对后端API传输110的API调用,以使量子电路通过私有连接被传输到边缘计算装置并且被调度用于在量子计算机上执行。如在图12-13中更详细讨论的,边缘计算装置可以将量子电路排队以在边缘计算装置所在的量子硬件提供商的量子计算机上执行。此外,边缘计算装置可能已经配置有量子机器映像,所述量子机器映像使边缘计算装置能够与边缘计算装置所在的量子硬件提供商的调度应用程序介接,以便在量子硬件提供商的量子计算机上调度时隙来通过后端API传输110执行量子电路。
在一些实施例中,在量子硬件提供商位置处的量子计算机上执行量子电路的结果可以被返回到量子硬件提供商位置的边缘计算装置。边缘计算装置和/或量子计算服务102可以使结果存储在服务提供商网络100的数据存储系统中。在一些实施例中,结果存储/结果通知模块116可以协调存储结果,并且可以通知客户如客户104结果已经准备好执行客户的量子对象,如量子任务、量子算法或量子电路。在一些实施例中,结果存储/结果通知模块116可以使数据存储服务中的存储空间被分配给客户以存储客户的结果。此外,结果存储/结果通知模块116可以根据客户偏好指定查看客户结果的访问限制。
在一些实施例中,使用量子计算服务102的经典硬件118的量子计算模拟器可以用于使用经典硬件模拟量子算法或量子电路。例如,虚拟计算服务的一个或多个虚拟机可以被实例化以处理量子算法或量子电路模拟作业。在一些实施例中,使用经典硬件118的量子计算模拟器可以完全管理执行量子电路模拟的计算实例。例如,在一些实施例中,客户可以提交要模拟的量子电路,并且使用经典硬件118的量子计算模拟器可以确定执行模拟工作所需的资源、预留资源、配置资源等。在一些实施例中,使用经典硬件118的量子计算模拟器可以包含一个或多个“热”模拟器,所述模拟器是预先配置的模拟器,使得它们准备好执行模拟作业而没有通常在保留资源和配置资源以执行模拟时涉及的延迟。
在一些实施例中,量子计算服务102包含量子硬件提供商推荐/选择模块120。在一些实施例中,量子硬件推荐/选择模块120可以向量子计算服务客户推荐使用哪种类型的量子计算机或哪家量子硬件提供商来执行客户提交的量子对象。另外地或可替代地,量子硬件提供商推荐/选择模块120可以接收客户对量子计算机类型和/或量子硬件提供商的选择,以用于执行客户的量子对象,如由客户提交的或以其它方式由客户输入定义的量子任务、量子算法、量子电路等。
在一些实施例中,由量子硬件提供商推荐/选择模块120提供的推荐可以基于由客户提交的量子对象的一个或多个特性以及由量子计算服务102支持的量子硬件提供商(如量子硬件提供商122、124、126或128中的一个或多个)的一个或多个特性。
在一些实施例中,量子硬件提供商推荐/选择模块可以基于关于与客户提交的量子对象相似的先前执行的量子对象的已知数据进行推荐。例如,量子计算服务102可以存储关于执行的量子对象的一定量的元数据,并且使用此类元数据来进行推荐。在一些实施例中,推荐可以包含第一量子硬件提供商和第二量子硬件提供商中的每一个执行量子计算任务的估计成本。在一些实施例中,推荐可以包含第一量子硬件提供商和第二量子硬件提供商中的每一个关于执行量子计算任务的估计错误率。在一些实施例中,推荐可以包含第一量子硬件提供商和第二量子硬件提供商中的每一个执行量子计算任务的估计时间长度。在一些实施例中,推荐可以包含与一个或多个量子硬件提供商或上述任何组合有关的各种其它类型的信息。
在一些实施例中,使用经典硬件118的量子计算模拟器可以允许客户模拟一个或多个特定量子计算技术环境。例如,客户可以在退火量子计算环境和离子阱量子计算环境中模拟量子电路,以确定所模拟的错误率。然后,客户可以使用此信息选择量子硬件提供商来执行客户的量子电路。
图2A展示了根据一些实施例的示例服务质量(QoS)和带外优先级排序模块的更详细视图。
服务质量(QoS)和带外优先级排序模块103接收要执行的量子作业202和要执行的单独量子任务204。例如,量子作业和量子任务可以被提交到量子计算服务102以供量子计算服务的客户执行。服务质量(QoS)和带外优先级排序模块103包含作业控制平面206、优先级访问控制平面208和量子任务服务/量子任务队列210。在一些实施例中,作业控制平面206可以将从优先级访问控制平面208接收到的访问令牌224附加到作业,其中与访问令牌相关联的优先级由优先级访问控制平面208基于作业的优先级,如作业的QoS保证相对于其它作业的QoS保证来确定。例如,作业1(212)具有QoS保证A,并且作业N(214)具有QoS保证B。基于这些QoS保证,优先级访问控制平面208可以为作业212和214生成访问令牌224,并且作业访问控制平面206可以将相应的访问令牌(如访问令牌216和218)附加到量子作业212和214。在一些实施例中,作业控制平面206可以进一步基于量子作业相对于作业控制平面206队列中的其它量子作业的相对优先级来确定何时开始执行下一个量子作业,所述相对优先级由附加到作业的访问令牌的优先级来确定。例如,如果当前执行的量子作业具有等于要执行下一个量子作业的给定QPU的全部容量的QoS保证,则作业控制平面206可以阻止开始执行下一个量子作业,直到有可用容量来执行下一个量子作业。在一些实施例中,代替利用FIFO模型,作业控制平面206可以基于附加到进一步基于QoS保证的作业的访问令牌的优先级来选择要执行的下一个量子作业,使得在一些情况下,稍后提交的量子作业可以在具有较低QoS保证的较早提交的量子作业之前开始执行。
当作业控制平面206选择要开始的作业时,包括所述作业的指令和相关联的访问令牌(例如,216或218)的作业令牌222被提交到量子任务服务/量子任务队列210。在一些实施例中,量子任务服务/量子任务队列210可以为量子作业生成量子任务,并且将量子任务添加到一个或多个量子任务队列,如量子任务队列1(272)或量子任务队列P(274)。在一些实施例中,给定队列中的量子任务可以具有相同类型的访问令牌,如对应于QoS A或QoS B的访问令牌。优先级访问控制平面208可以例如基于已经为给定队列提供的QoS是高于还是低于给定队列的QoS目标来确定要执行的下一个量子任务将从队列272至274中的哪一个队列中拉出。
此外,量子任务服务/量子任务队列210可以接收单独量子任务204,并且可以将访问令牌220附加到单独量子任务。在一些实施例中,单独量子任务可以被分配默认访问令牌,所述默认访问令牌指示所述任务是单独量子任务,并且进一步指示访问令牌何时被分配给单独量子任务的时间戳。相比之下,分配给作业类型量子任务的访问令牌216和218可以包含指示量子任务所属作业的ID和量子任务何时被添加到队列的时间戳。可替代地,访问令牌216和218可以包含将访问令牌216和218绑定到作业212和214的代码或加密消息,而不实际将作业ID包含在访问令牌中。另外地,量子任务服务/量子任务队列210基于量子任务的优先级对等待执行的量子任务进行排序,所述优先级是基于附加到量子任务的访问令牌确定的。例如,具有指示较高优先级(或较高QoS级别)的访问令牌的量子任务可以被添加到量子任务队列1(272)中,并且具有较低优先级(或较低QoS级别)的量子任务可以被添加到一个或多个中间或较低级别优先级任务队列中的一个中。例如,较低优先级访问令牌任务可以被添加到量子任务队列P(274)中。
在一些实施例中,优先级访问控制平面208可以确定当有能力执行下一个量子任务(或批量量子任务)时,下一个量子任务应从哪个队列中拉出。例如,优先级访问控制平面208可以确定要执行的下一个量子任务276。在一些实施例中,可以向量子任务服务/量子任务队列210提供要执行的下一个量子任务276,以便选择下一个量子任务将从队列272至274中的哪一个中拉出。在一些实施例中,后端API传输110和/或本地量子硬件装置130然后可以接收所指示的队列中的下一个量子任务。在一些实施例中,获取下一个量子任务可以直接在后端API传输110和/或本地量子硬件装置130与量子任务服务/量子任务队列210之间执行。然而,在其它实施例中,对下一个量子任务的请求可以通过优先级访问控制平面208来路由,并且优先级访问控制平面208可以基于考虑到QoS保证而确定的当前优先级排序来从队列272至274中的适当队列获取下一个量子任务。
在一些实施例中,优先级访问控制平面208可以接收执行资源使用信息238,并且基于经更新信息来更新优先级排序。例如,如果量子任务队列1(272)对应于80%的QoS水平,并且量子任务队列P(274)对应于20%的QoS水平,并且执行资源使用信息238指示来自队列1和队列P的任务之间的当前分配分布分别为85%和15%,则优先级访问控制平面208可以发信号通知要从队列P中拉出用于执行的下一个量子任务(或批量量子任务),以便使QoS分配更好地匹配QoS目标。
如上文所解释的,服务质量(QoS)和带外优先级排序模块103可以在后端API传输110处的容量可用时立即提交量子任务队列210中的下一个量子任务以接受另一个量子任务,而无需等待为一个或多个量子任务队列中的量子任务确定经更新优先级排序。例如,当接受量子任务的容量变得可用时,要执行的下一个量子任务可以从量子任务队列272至274中的所选择的一个队列的头部提交到后端API传输110或本地量子硬件装置130。
当例如在QHP处通过后端API传输110或者在本地量子硬件装置110处执行量子任务时,执行资源使用信息238可以被提供回优先级访问控制平面208。优先级访问控制平面208可以使用此资源使用信息来确定作业的经更新优先级,以便实施QoS保证。例如,提高未达到QoS目标的量子作业的量子任务的优先级,并且降低超过其QoS目标的量子作业的量子任务的优先级。经更新优先级276可以被提供给量子任务服务/量子任务队列210。在一些实施例中,经更新优先级可以作为访问令牌类别的经更新优先级来传送,所述访问令牌如包括作业1的作业ID或作业N的作业ID的访问令牌。另外地或者可替代地,经更新优先级可以表明指示单独任务的访问令牌将被不同地进行优先级排序。每当接收到执行资源使用信息238时,可以计算经更新优先级。然而,下一个要执行的量子任务可以从给定的经优先级排序的量子任务队列的头部拉出,而无需等待经更新优先级和/或无需等待基于经更新优先级对量子任务进行重新排序。例如,如果当容量开放以接受下一个量子任务时经更新优先级信息处于正在计算过程中,可以基于队列的当前顺序将位于给定经优先级排序的队列的头部处的任一量子任务(或批量量子任务,如果接受批量量子任务的话)从队列的头部拉出,并且可以继续队列的经更新优先级排序,使得下一次容量可用于接受量子任务(或批量量子任务),基于经更新优先级使用经更新排序来执行下一轮量子任务提交。
图2B展示了根据一些实施例的可以包含在服务质量(QoS)和带外优先级排序模块中的示例作业控制平面的更详细视图。
在一些实施例中,作业控制平面206可以包含作业调度器242,所述作业调度器对队列中的等待开始的作业进行排序。此外,作业控制平面206可以包含为经调度作业创建作业令牌的作业容器244。例如,具有相关联的访问令牌248的经调度作业246被提交到作业任务请求者/创建者250,作业任务请求者/创建者可以生成作业令牌,如作业令牌252和254。作业令牌可以包含作业的任务和附加到量子任务的相关联的访问令牌。例如,作业令牌252包含具有附加访问令牌218A的作业N的任务1(232),并且作业令牌254包含具有附加访问令牌218M的作业N的任务M(252)。在一些实施例中,作业任务请求者/创建者250可以向量子任务服务210提交请求以创建由作业令牌定义的量子任务,或者可以创建量子任务并将所述量子任务包含在作业令牌中。
图2C展示了根据一些实施例的可以包含在服务质量(QoS)和带外优先级排序模块中的量子任务生成服务和量子任务队列的实例的更详细视图。
在一些实施例中,量子任务服务/量子任务队列210包含量子任务生成器258,所述量子任务生成器可以基于接收到的作业令牌为量子作业生成量子任务。另外地,量子任务服务/量子任务队列210包含量子任务队列272和274,以及一个或多个中间队列286。
在一些实施例中,不同的队列可以对应于不同的QoS保证级别。例如,量子任务队列1包含作业1的任务,如任务2(278)和(M)226。如图2A所示,作业1具有QoS保证A。在一些情况下,超过一个作业可以共享相同的QoS保证级别。例如,作业2也可以被分配QoS保证级别A。因此作业2的任务280和284也可以被包含在量子任务队列1(272)中。在一些实施例中,可以基于与给定任务相关联的访问令牌将任务分配到给定队列。例如,访问令牌282和216可以对应于QoS保证A。
作为另一个实例,作业N具有QoS保证级别B,并且作业N的任务(290、288和256)与作业3的任务292一起被分配给量子任务队列2(286),作业3也可以具有相同的QoS保证。这可以通过访问令牌218和294来指示。
作为又另一个实例,单独任务1-3(228、296和298)具有相关联的访问令牌230,并且连同具有访问令牌268的单独任务266一起被分配给量子任务队列P(274)。在一些实施例中,默认QoS和相关联的访问令牌类型可以被分配给单独量子任务。
在一些实施例中,如图4中进一步示出的,访问令牌可以包含时间戳,并且具有相同优先级的访问令牌(例如,它们导致相关联的量子任务在同一量子任务队列中结束)可以基于时间戳值在给定队列中排序。例如,给定队列中较老的量子任务可能更靠近队列的头部,而队列中较新的量子任务可能更靠近队列的入口端。
图3A展示了根据一些实施例的另一个示例服务质量(QoS)和带外优先级排序模块的更详细视图。在一些实施例中,量子任务服务/量子任务队列210可以包含组合的量子任务队列。
在一些实施例中,量子任务服务/量子任务队列210可以包含量子任务的组合队列。例如,量子任务队列210包含作业1任务M(226),其中相关联的访问令牌216位于队列的头部。另外地,量子任务队列210在队列的下一个位置中包含具有相关联的访问令牌230的单独任务1(228)。此外,量子任务队列210在队列的后续位置中包含具有相关联的访问令牌218A的作业N任务1(232)。在一些实施例中,优先级访问控制平面可以向量子任务服务/量子任务队列210提供经更新优先级240,并且可以基于经更新优先级240对队列中的量子任务的顺序进行重新排序。在此类实施例中,作业控制平面206可以以与图2B中描述的类似方式运行。
图3B展示了根据一些实施例的可以包含在服务质量(QoS)和带外优先级排序模块中的量子任务生成服务和量子任务队列的另一个实例的更详细视图。在一些实施例中,量子任务服务量子任务队列210可以包含量子任务优先级评估模块260,所述量子任务优先级评估模块存储经更新访问令牌优先级262,如可以通过经更新优先级240接收。这些经更新优先级可以用于基于分配给与任务相关联的访问令牌(如访问令牌216、218、230和268)的优先级来更新任务226、228、232和266的顺序。
图4A展示了根据一些实施例的可以由服务质量(QoS)和带外优先级排序模块使用的示例访问令牌。
在一些实施例中,访问令牌可以包含多个部分。例如,在一些实施例中,访问令牌的第一组比特可以指示所附加的量子任务是单独量子任务还是较大量子作业的量子任务。例如,图4A所展示的访问令牌408包含与该访问令牌相关联的作业的作业ID的指示符(402)。在一些实施例中,单独任务的访问令牌可以包含单独任务ID或提交单独任务的客户的ID。例如,访问令牌408包含作业ID或单独任务ID区段的指示符402。另外地,作为几个实例,如访问令牌408等访问令牌可以包含时间戳404,所述时间戳指示具有附加访问令牌408的量子任务被添加到量子任务队列272、286、274或264中的时间。
图4B展示了根据一些实施例的可以由服务质量(QoS)和带外优先级排序模块使用的另一个示例访问令牌。
在一些实施例中,代替包含作业ID,访问令牌412可以包含访问控制平面与作业或单独任务相关联的标识符,如代码、加密比特等,如访问令牌标识符408。另外,访问令牌412可以包含时间戳410。
图5展示了根据一些实施例的示例过程,服务质量(QoS)和带外优先级排序模块可以遵循所述示例过程来分配和更新量子任务队列中的量子任务的相应优先级。
在框502处,量子计算服务接收要使用量子硬件装置执行的量子作业。在框504处,量子计算服务的优先级访问控制平面基于量子作业的服务质量(QoS)保证和其它未决量子作业的QoS保证来确定量子作业的优先级。然后在框506处,量子计算服务的作业控制平面和/或量子任务服务为具有下一个最高优先级的量子作业生成量子任务,并且将量子作业的作业ID与所生成的量子任务相关联。另外地,在框508处,量子计算服务接收要使用量子硬件装置执行的一个或多个单独量子任务,其中单独量子任务不是较大量子作业的一部分。例如,单独量子任务可以是使用量子硬件装置执行的单独量子电路。
在框510处,优先级访问控制平面基于量子任务是作业类型任务或单独任务类型和/或基于作业之间的相对优先级(如可以基于服务质量(QoS)保证来确定)来向量子任务分配相应优先级。这可以通过确定访问令牌(,如指示单独量子任务或作业类型量子任务的访问令牌)类型的优先级来完成。另外地,这可以通过确定包括特定作业ID或与具有特定QoS保证的特定作业ID相关联的访问令牌的优先级来完成。在框512处,量子任务服务基于由优先级访问控制平面分配的优先级来确定量子任务相对于量子任务队列中的其它量子任务的优先级排序。另外地或可替代地,在框512处,优先级访问控制平面确定包含在量子任务服务/量子任务队列中的队列的优先级。例如,可以确定如图2C所示的队列1至P的优先级排序。
在框510处执行的优先级排序分配和在框512处执行的量子任务队列的重新排序(或队列的重新优先级排序)的路径之外,在框514处,量子计算服务从后端API传输或内部量子硬件装置队列接收针对要执行的下一个量子任务/批量任务的ping。作为响应,在框516(在框510处执行的优先级排序分配和在框512处执行的量子任务队列的重新排序(或队列的重新优先级排序)的路径之外)处,量子计算服务基于当前量子任务队列优先级提交下一个量子任务或批量量子任务以便执行。
在框518处,量子计算服务接收提交的量子任务的执行度量,并且将执行度量提供给优先级访问控制平面,以确定经更新作业优先级和/或经更新单独任务优先级。在框520处,优先级访问控制平面基于接收到的执行度量来确定经更新作业优先级和/或经更新单独任务优先级。然后,在框522处,量子任务服务基于由优先级访问控制平面确定的经更新作业优先级和/或经更新单独任务优先级来更新量子任务队列中的量子任务相对于量子任务队列中的其它量子任务的优先级(和顺序)(或确定队列的重新优先级排序)。然后,当在框516处提交下一个量子任务或批量量子任务以便执行时,使用量子任务队列的经更新优先级和排序来选择要提交的下一个量子任务。
图6展示了根据一些实施例的关于服务质量(QoS)和带外优先级排序模块如何管理量子作业任务和单独量子任务的优先级的更详细视图。
在一些实施例中,为了分配或更新访问令牌(以及因此量子任务)的优先级,优先级访问控制平面可以遵循如图6所示的过程。例如,在框602处,优先级访问控制平面为一个或多个作业或单独任务确定与作业或单独任务相关联的QoS保证当前是否被超过。例如,如果作业或单独任务的资源分配的当前历史高于作业或单独任务的QoS目标,则QoS分配处于盈余状态。在所述情况下,在框604处,优先级访问控制平面确定盈余是否大于一个或多个其它访问令牌类型或队列的相应盈余,所述一个或多个其它访问令牌类型或队列也具有处于盈余状态的当前分配历史。如果盈余大于其它作业或队列的盈余,则在框606处,将与正在计算QoS的作业和/或访问令牌类型相关联的作业或队列进行优先级排序,使得它处于盈余或赤字较少的其它作业/单独任务/访问令牌类型/队列等之后。
回到框602,如果可替代地确定被评估的作业/单独任务/队列具有小于其相关联的QoS目标的当前分配历史,则在框608处确定其赤字分配是否小于处于赤字状态的其它作业/单独任务/队列等的相应赤字分配。如果作业/单独任务/队列具有最大赤字(例如,与QoS目标的最大偏差),则在框612处为其分配最高优先级。如果不是,则在框610处,相对于具有较大赤字的其它作业/单独任务/队列,为其分配较低的优先级,但是相对于具有较小赤字或盈余的其它作业/单独任务/队列,为其分配较高的优先级。
图7展示了根据一些实施例的示例过程,通过所述过程,服务质量(QoS)和带外优先级排序模块使用访问令牌来管理量子任务队列中的量子任务的相应优先级。
在框702处,量子计算服务将访问令牌附加到存储在或要存储在量子任务队列中的量子任务。在框704处,优先级访问控制平面基于访问令牌类型(例如,作业类型或单独任务类型访问令牌)和/或基于与相应访问令牌相关联的作业相对于其它作业的作业优先级(例如,基于作业ID)向访问令牌分配优先级。在框706处,优先级访问控制平面例如响应于接收执行资源使用信息238来确定经更新访问令牌优先级。经更新优先级是进一步基于访问令牌类型(例如,作业类型或单独任务类型访问令牌)和/或基于与相应访问令牌相关联的作业相对于其它作业的作业优先级(例如,基于作业ID)确定的。在708处,基于经更新访问令牌优先级,自动地对量子任务队列进行重新优先级排序。
图8展示了根据一些实施例的物理上位于量子硬件提供商位置处的量子计算服务的边缘计算装置。
在一些实施例中,如图1所展示,服务提供商网络100可以包含通过私有或公共网络连接相互连接的一个或多个数据中心。此外,位于量子硬件提供商位置处的边缘计算装置可以通过私有或公共网络连接而连接到服务提供商网络。例如,图8所展示的服务提供商网络100包含数据中心806a、806b和806c,所述数据中心通过服务提供商网络100的专用物理网络链路相互连接。在一些实施例中,服务提供商网络的客户也可以通过公共不可用的私有物理网络链路来连接以承载网络流量,如路由器协同定位设施处的物理连接。例如,客户810通过直接连接824连接到与数据中心806c相关联的路由器。以类似的方式,位于量子硬件提供商位置处的边缘计算装置可以通过不可用于承载公共网络流量的私有物理网络链路连接到服务提供商网络。
例如,位于量子硬件提供商位置802a处的边缘计算装置804a通过直接连接818连接到数据中心806a处的路由器。以类似的方式,量子硬件提供商位置802b处的边缘计算装置804b通过直接连接820连接到数据中心806b处的路由器。此外,量子硬件提供商802c处的边缘计算装置804c通过直接连接822连接到数据中心806c处的路由器。
此外,在一些实施例中,位于量子硬件提供商位置处的服务提供商网络的边缘计算装置可以通过共享网络连接之上的逻辑隔离网络连接,如通过因特网或另一个公共网络连接到服务提供商网络。例如,量子硬件提供商位置802d处的边缘计算装置804d通过经由网络816的逻辑隔离的网络连接来连接到数据中心806c。以类似的方式,在一些实施例中,如客户814等客户可以通过公共网络812连接到服务提供商网络100。
在一些实施例中,如量子计算服务102等量子计算服务可以使用数据中心806a、806b、806c等中的任何数据中心中的一个或多个计算装置来实施。此外,量子计算服务102可以向客户(如客户814或客户810提供对量子硬件提供商位置802a、802b、802c、802d等中的任何量子硬件提供商位置中的量子计算机的访问。例如,客户可以不受限制地在客户所在的本地区域使用量子硬件提供商。相反,可以向客户分配在位于所选择的量子硬件提供商位置处的本地边缘计算装置上实例化的计算实例,使得客户的位置不会限制客户对各种类型的基于量子计算技术的量子计算机的访问。
在一些实施例中,一个或多个数据中心806还可以包含本地量子硬件装置,如本地QPU 826。
位于量子硬件提供商位置处的示例边缘计算装置
图9展示了根据一些实施例的连接到量子计算服务的示例边缘计算装置。
服务提供商网络100和量子计算服务102可以类似于本文描述的服务提供商网络和量子计算服务,如在图1中。此外,边缘计算装置952可以是与先前描述的任何边缘计算装置(如图1或图8中的边缘计算装置)类似的边缘计算装置。边缘计算装置952通过网络连接900连接到服务提供商网络100,所述网络连接可以是通过公共网络、专用物理非公共网络链路或其它合适的网络连接的逻辑隔离的网络连接。
边缘计算装置952包含网络管理器958、存储管理器960和虚拟机控制平面956。
在一些实施例中,边缘计算装置的后端应用程序编程接口(API)传输(如边缘计算装置952的后端API传输954)可以查验量子计算服务以确定是否存在等待传输到边缘计算装置的量子电路(例如,量子任务)。边缘计算装置可以进一步使用非公共后端API传输(如后端API传输954)来将量子电路带入到边缘计算装置952中。
另外地,对于每个客户,量子计算服务的边缘计算装置的后端API传输(如边缘计算装置952的后端API传输954)可以使虚拟机被实例化以管理从后端API拉入到边缘计算装置中的给定量子电路的调度和结果。例如,虚拟机970可以充当量子计算服务的给定客户到量子硬件提供商的接口。边缘计算装置可以直接连接到量子硬件提供商位置处的本地非公共网络,并且可以与量子硬件提供商的调度组件介接,以调度量子硬件提供商的量子计算机上的可用性(例如,使用时隙)。
在一些实施例中,虚拟机970可以用支持与量子硬件提供商的调度组件介接的特定量子机器映像来引导,其中不同的量子硬件提供商需要不同的调度接口。
在一些实施例中,虚拟机970可以用量子电路排队组件972、量子电路调度组件976、管理边缘计算装置上的本地存储桶以临时存储结果的组件(如临时桶974和结果管理器978)来引导。在一些实施例中,量子电路调度组件976可以按照它们被接收的顺序对量子电路排队组件中的量子电路进行排序,其中接收到的顺序通过基于使用QoS保证确定的优先级对量子计算服务的量子任务队列中的量子任务进行排序来实施QoS保证。
在一些实施例中,如边缘计算装置952等边缘计算装置可以支持多租户。此外,在一些实施例中,边缘计算装置952还可以实例化执行经典计算任务,如混合算法的经典计算部分的虚拟机。例如,边缘计算装置952还包含另一个客户的用于执行混合算法的经典计算部分的虚拟机962和其它客户的充当其它客户的量子硬件提供商接口的另外的虚拟机964。
在一些实施例中,位于量子硬件提供商位置处的边缘计算装置的后端API传输可以与实施量子计算服务的一个或多个计算装置所在的远程位置处的计算装置/路由器的后端API传输接口110介接。
应注意,边缘计算装置952可以物理地位于量子硬件提供商场所950处,如量子硬件提供商设施的建筑物中。
在一些实施例中,虚拟机970的组件可以包含在后端API传输954中,并且后端API传输954可以执行后端API传输中的相关组件,而不会使单独的VM 970被实例化。
图10展示了根据一些实施例的量子计算服务与量子计算服务的边缘计算装置之间的示例交互。
边缘计算装置952的后端API传输954可以向量子计算服务102提交ping1002、1004、1006等,以确定是否存在要传输到边缘计算装置952的量子计算电路(例如,量子任务)。在1008处,量子计算服务102可以向边缘计算装置952指示存在经转换量子电路(例如,量子任务)准备好被传输到边缘计算装置952。作为响应,后端API传输954可以使虚拟机控制平面956实例化虚拟机970,以充当客户到量子硬件提供商的接口。在910处,VM 970可以调用后端API传输954来请求经转换量子电路(例如,量子任务或批量量子任务)。作为响应,在1012处,后端API传输954可以使经转换量子电路(例如,量子任务或批量量子任务)被传输到VM 970的队列972。在一些实施例中,代替轮询协议的ping,边缘计算装置952可以使用各种其它技术来确定是否存在准备传输到边缘计算装置952的量子计算电路(例如,量子任务或批量量子任务)。此外,在一些实施例中,给定的量子硬件提供商可以包含超过一个量子计算机和/或超过一种类型的量子计算机。在此类实施例中,到QHP的后端API传输和/或VM接口可以将要在量子硬件提供商处执行的量子电路路由到量子硬件提供商处的指定量子计算机。
在一些实施例中,量子任务可以带着相关联的访问令牌来到队列972,并且量子任务可以基于它们相应的访问令牌或者相应访问令牌中包含的时间戳在队列972中排序。
图11A展示了根据一些实施例的用于将量子电路从量子计算服务传输到量子计算服务的边缘计算装置的示例过程。
在1102处,边缘计算装置联系(例如,查验)量子计算服务以确定经转换量子电路(例如,量子任务)等待是否被传输到特定的量子硬件提供商位置。
如果在1104处确定存在未决量子电路,则在1106处,边缘计算装置使用量子计算服务的后端API将量子电路传输到量子硬件提供商位置处的边缘计算装置。
图11B展示了根据一些实施例的用于由位于量子硬件提供商位置处的量子计算服务的边缘计算装置调度量子电路在量子计算机上的执行的示例过程。
在1110处,边缘计算装置在后端API传输处接收量子电路。在1112处,在边缘计算装置上实例化的量子硬件提供商接口VM 970的调度器976协调在量子硬件提供商位置处的量子计算机上调度时隙,以使用量子电路执行量子任务。此外,同时,VM 970使量子电路存储在等待时隙的队列972中。
在1116处,VM 970使量子电路被提交到要执行的量子计算机,其中量子电路通过到量子硬件提供商的本地非公共网络的连接被提交。
图11C展示了根据一些实施例的用于由位于量子硬件提供商位置处的量子计算服务的边缘计算装置处理量子电路在量子计算机上的执行结果的示例过程。
在1120处,由VM 970实施的临时桶974使用所提交的量子电路接收一个或多个量子作业的执行结果。
在1122处,结果管理器978任选地使结果的快照被存储到数据存储服务。
在1124处,结果管理器978使执行一个或多个量子作业的最终结果被存储在服务提供商网络的数据存储系统中。
用于执行混合算法的示例配置
在一些实施例中,服务提供商网络的虚拟化计算服务可以包含位于量子硬件提供商处的边缘计算装置,其中边缘计算装置作为资源被包含在虚拟化计算服务中。边缘计算装置可以部分地充当虚拟化计算服务的另外的资源主机。计算实例可以被分配给位于特定量子硬件提供商位置处的边缘计算装置上的客户。在边缘计算装置上实施的计算实例可以执行量子计算混合算法的经典计算部分,其中与边缘计算装置一起位于量子硬件提供商位置处的量子计算机执行量子计算混合算法的量子计算部分。在一些实施例中,混合算法可以被认为是量子作业,其中混合算法的量子计算部分是整个量子作业的量子任务。在一些实施例中,除了在量子硬件提供商位置处实施后端API传输的边缘计算装置之外,此类边缘计算装置可以被包含在量子硬件提供商位置处。此外,在一些实施例中,量子硬件提供商处的单个边缘计算装置可以实施后端API传输和执行量子计算混合算法的经典计算部分的计算实例两者。
在一些实施例中,量子计算混合算法可以包含经典计算部分,所述经典计算部分包括经典计算命令的环,所述经典计算命令确定命令/量子任务将被提交给何种量子电路,以及何种参数将被提供给所选择的量子电路。此外,混合算法的经典计算部分可以从在量子计算机上执行的量子任务接收结果,并且然后决定要发送到量子计算机的后续量子电路和/或后续命令/量子任务,以及要提供何种参数。例如,可以基于从量子电路接收到的结果修改发送到量子电路的第一组参数,并且然后可以将已经基于所述结果修改的一组经修改参数发送回量子电路。此外,结果可以提示不同的或经修改的量子电路用于后续的命令/量子任务。在一些实施例中,可以执行100秒、1,000秒、1,000,000秒此类迭代。在一些实施例中,经典计算机与量子计算机之间的低等待时间可能是高效执行此类混合算法所必需的。在一些实施例中,在物理上位于量子计算机附近的边缘计算装置上执行混合算法的经典计算部分可以减少此类等待时间,使得可以执行先前不可能的混合算法。
此外,在一些实施例中,可以在给定的边缘计算装置上为客户提供多个计算实例,其中不同的计算实例(例如,虚拟机)执行不同的混合算法或同一混合算法的不同经典计算任务。在一些实施例中,虚拟化计算服务可以自动地扩大或缩小分配给计算实例的资源,以执行混合算法的经典部分。此外,虚拟化计算服务可以基于执行混合算法所需的资源来自动地缩放分配给客户的计算实例的数量。例如,在一些实施例中,可以向客户分配在位于量子硬件提供商位置处的一个或多个边缘计算装置上实施的计算实例集群。在一些实施例中,混合算法的经典计算部分的一些经典计算任务可以由虚拟化计算服务的其它计算实例来执行,所述其它计算实例位于数据中心中并且通过高速连接(如非公共专用物理网络链路,如直接连接)连接到边缘计算装置。
图12展示了根据一些实施例的在位于量子硬件提供商位置处的量子计算服务的边缘计算装置上实施的经典计算机与位于量子硬件提供商位置处的量子计算机之间的示例交互。
图12展示了第一虚拟机1202和第二虚拟机1210。在一些实施例中,VM 1202和VM1210可以是在位于量子硬件提供商处的边缘计算装置上实施的两个虚拟机。此外,VM 1220也可以在量子硬件提供商处的同一边缘计算装置上实施,或者可以在量子硬件提供商处的单独边缘计算装置上实施。在一些实施例中,VM 1202和VM 1210可以被分配给同一客户来执行混合算法或多个混合算法的两个不同任务。此外,在一些实施例中,量子硬件提供商位置处的边缘计算装置可以支持多租户,并且VM 1202和VM 1210可以被分配给不同的客户。
在一些实施例中,VM 1202包括执行混合算法的经典计算部分的应用/环境/模块1204。此外,VM 1202可以包含访问存储在边缘计算装置的存储器中的结果数据的本地存储桶1206。另外地,VM 1202包含后端API传输接口1208,所述接口与虚拟机3后端API传输1220协调以向后端API传输提交量子计算任务。后端API传输1220可以包含量子计算电路队列1222和临时结果存储1224,类似于图12中所描述的。实施后端API传输1220的虚拟机3可以协调调度从VM 1202提交的要在量子计算机1226上执行的量子计算任务,所述量子计算机与实施VM 1202、1210和1220的一个或多个边缘计算装置共同位于量子硬件提供商设施处。
在一些实施例中,VM 1210可以包含与VM 1202类似的组件。例如,VM 1210可以包含经典计算应用程序/环境/模块1212、本地存储桶1214和后端API传输接口1216。在一些实施例中,VM 1202和/或VM 1210可以包含快照模块1218,所述快照模块使量子计算机1226上混合算法执行的中间结果的快照被存储为快照。快照可以存储到远程数据存储服务。
在一些实施例中,在“步骤A”处,经典计算模块1204可以向后端API传输接口1208提交量子任务/命令。这可以使得在“步骤B”处,量子任务和/或相关联的量子电路被添加到量子计算电路队列1222。然后,在“步骤C”处,后端API传输1220可以使作业被提交到量子计算机1226。在“步骤D”处,后端API传输1220可以接收执行量子任务的结果,并且在“步骤E”处,通过本地存储桶1206使结果的本地存储版本对经典计算模块1204可用。经典计算模块1204然后可以使用所述结果来生成下一个命令/量子任务,并且在“步骤F”处,将下一个命令/量子任务提交到后端API传输接口1208,这在“步骤G”处,可以使下一个量子任务/量子电路被添加到量子计算电路队列1222。在“步骤H”处,后端API传输1220可以使下一个量子任务/命令在量子计算机1226上执行,并且在“步骤I”处,结果可以被返回给后端API接口1220。在“步骤J”处,可以通过本地存储桶1206将结果提供给经典计算模块1204。在一些实施例中,此过程可以重复100秒、1,000秒或10,000秒等,直到满足一个或多个阈值,如完成优化问题。
图13展示了根据一些实施例的用于使用位于量子硬件提供商位置处的量子计算服务的边缘计算装置来执行混合算法的示例过程。
在1302处,量子计算服务使虚拟机在物理上位于量子硬件提供商位置处并且连接到量子硬件提供商的本地网络的边缘计算装置的经典计算硬件上被实例化。
在1304处,量子计算服务接收包括经典计算部分和量子计算部分的混合量子计算算法(例如,量子作业)。
在1306处,量子计算服务使混合算法的经典计算部分在实例化的虚拟机上执行。应注意,在一些实施例中,可以使用裸机实例来代替虚拟机。
在1308处,量子计算服务使用量子硬件提供商位置处的量子计算机来执行量子计算部分。
在1310处,执行混合算法的虚拟机确定是否存在零外的经典或量子计算部分要执行。如果存在,则重复步骤1306和/或1308。如果不存在,在1312处,量子计算服务将结果提交到服务提供商网络的数据存储系统。
说明性计算机系统
图14是展示了可以在至少一些实施例中使用的示例计算装置的框图。
图14展示了可以在本文描述的任何实施例中使用的此类通用计算装置1400。在所展示的实施例中,计算装置1400包含通过输入/输出(I/O)接口1430耦接到(可以包括非易失性存储器模块和易失性存储器模块两者的)系统存储器1420的一个或多个处理器1410。计算装置1400进一步包含耦接到I/O接口1430的网络接口1440。
在各个实施例中,计算装置1400可以是包含一个处理器1410的单处理器系统,或包含若干处理器1410(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器1410可以是能够执行指令的任何合适的处理器。例如,在各个实施例中,处理器1410可以是实施各种指令集架构(ISA)中的任何一种的通用或嵌入式处理器,如x86、PowerPC、SPARC或MIPS ISA、或任何其它合适的ISA。在多处理器系统中,处理器1410中的每一个处理器可以共同但不是必须地实施相同的ISA。在一些实施中,可以使用图形处理单元(GPU)来代替常规的处理器或作为常规处理器的补充。
系统存储器1420可以被配置成存储可由处理器1410访问的指令和数据。在至少一些实施例中,系统存储器1420可以包括易失性部分和非易失性部分两者;在其它实施例中,可以仅使用易失性存储器。在各个实施例中,系统存储器1420的易失性部分可以使用任何合适的存储器技术来实施,例如,静态随机存取存储器(SRAM)、同步动态RAM或任何其它类型的存储器。对于系统存储器的非易失性部分(例如,其可以包括一个或多个NVDIMM),在一些实施例中,可以使用基于闪速的存储器装置,包含与非(NAND)闪速装置。在至少一些实施例中,系统存储器的非易失性部分可以包含电源,如超级电容器或其它电力存储装置(例如,电池)。在各个实施例中,基于忆阻器的电阻随机存取存储器(ReRAM)、三维NAND技术、铁电RAM、磁阻RAM(MRAM)或任何各种类型的相变存储器(PCM)可以至少用于系统存储器的非易失性部分。在所展示的实施例中,实施如上述那些方法、技术和数据等一个或多个所期望功能的程序指令和数据被示为存储在系统存储器1420中作为代码1425和数据1426。
在一些实施例中,I/O接口1430可以被配置成协调处理器1410、系统存储器1420与装置中的任何外围装置之间的I/O业务量,包含网络接口1440或如各种类型的持久和/或易失性存储装置等其它外围接口。在一些实施例中,I/O接口1430可以执行任何必要的协议、定时或其它数据变换,以将来自一个组件(例如,系统存储器1420)的数据信号转换为适合于由另一个组件(例如,处理器1410)使用的格式。在一些实施例中,例如,I/O接口1430可以包含对通过各种类型的外围总线(如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体)而附接的装置的支持。在一些实施例中,例如,I/O接口1430的功能可以拆分成两个或更多个单独组件,如北桥和南桥。而且,在一些实施例中,如用于系统存储器1420的接口等I/O接口1430的一些或所有功能可以直接地合并到处理器1410中。
网络接口1440可以被配置成允许数据在计算装置1400和附接到网络或网络1450的其它装置1460之间交换,例如,如图1到图13所示的其它计算机系统或装置。例如,在各个实施例中,网络接口1440可以支持通过任何合适的有线或无线一般数据网络(如以太网类型)进行通信。另外,网络接口1440可以支持通过如模拟语音网络或数字光纤通信网络等电信/电话网络、通过如光纤信道SAN等存储区域网络、或通过任何其它合适类型的网络和/或协议进行通信。
在一些实施例中,系统存储器1420可以表示计算机可访问介质的一个实施例,所述计算机可访问介质被配置成存储用于实施在图1至图13的上下文中讨论的方法和设备的程序指令和数据的至少一个子集。然而,在其它实施例中,程序指令和/或数据可以是在不同类型的计算机可访问介质上接收、发送或存储。一般而言,计算机可访问介质可以包含非暂时性存储介质或如磁性或光学介质等存储器介质,例如通过I/O接口1430耦接到计算装置1400的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可以包含任何易失性或非易失性介质,如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等,其可以包含在计算装置1400的一些实施例中作为系统存储器1420或另一种类型的存储器。在一些实施例中,多个非暂时性计算机可读存储介质可以共同存储程序指令,当所述程序指令在一个或多个处理器上或者跨一个或多个处理器执行时实施上文所描述的方法和技术的至少一个子集。计算机可访问介质可以进一步包含传输介质或如电信号、电磁信号或数字信号等信号,所述信号通过如网络和/或无线链路等通信介质传送,如可以通过网络接口1440实施。可以使用如图14所展示的计算装置等多个计算装置中的部分或全部计算装置来实施各个实施例中的所描述功能;例如,在各种不同的装置和服务器上运行的软件组件可以协作以提供功能。在一些实施例中,除了使用通用计算机系统实施之外或代替使用通用计算机系统实施,可以使用存储装置、网络装置或专用计算机系统来实施所描述的功能的部分。如本文所使用的术语“计算装置”是指至少所有这些类型的装置,并且不限于这些类型的装置。
本公开的实施例可以鉴于以下条款进行描述:
条款1.一种系统,其包括:
服务提供商网络的一个或多个计算装置,所述一个或多个计算装置被配置成实施量子计算服务,
其中实施所述量子计算服务的所述一个或多个计算装置被进一步配置成实施:
用于所述量子计算服务的优先级访问控制平面;以及
用于所述量子计算服务的一个或多个量子任务队列,
其中所述优先级访问控制平面被配置成:
将相应优先级分配到包含在或要包含在所述一个或多个量子任务队列中的相应量子任务;
在给定量子任务完成之后,确定一个或多个剩余量子任务的经更新优先级;
其中所述量子任务具有可变持续时间,使得一些量子任务比所述量子任务中的其它量子任务需要更多的时间来执行,并且
其中在带外执行所述量子任务的所述优先级的所述确定,使得下一个量子任务的执行不会由于执行所述优先级的所述确定所需的时间而从进行到执行被延迟。
条款2.根据条款1所述的系统,其进一步包括:
所述提供商网络的位于一个或多个量子硬件提供商的一个或多个相应位置处的一个或多个边缘计算装置;
其中所述量子计算服务被配置成:
通过所述一个或多个量子硬件提供商中的相应量子硬件提供商的量子硬件装置,向所述一个或多个边缘计算装置中的相应边缘计算装置提交相比于其它量子任务具有更高优先级的给定量子任务,以执行所述给定量子任务。
条款3.根据条款1或条款2所述的系统,其进一步包括:
包含在所述服务提供商网络中的量子硬件装置,
其中所述量子计算服务被配置成:
向所述服务提供商网络的所述量子硬件装置提交相比于其它量子任务具有更高优先级的给定量子任务,以执行所述给定量子任务。
条款4.根据条款1至3中任一项所述的系统,其中所述量子计算服务被配置成:
从所述量子计算服务的客户端接收单独量子任务;并且
从所述量子计算服务的客户端接收量子作业,其中量子作业包括多个量子任务,并且
其中所述优先级访问控制平面被配置成:
确定所述单独量子任务和所述量子作业的优先级排序,使得:
当执行相应量子作业的量子任务时,实施与所述相应量子作业相关联的服务质量保证;并且
所述量子任务中的单独量子任务根据属于单独任务类型的量子任务的服务质量保证来执行。
条款5.根据条款1至4中任一项所述的系统,其中:
所述量子计算服务被配置成将访问令牌附加到所述量子任务;并且
为了更新所述量子任务的所述相应优先级,所述优先级访问控制平面被配置成更新分配到所述访问令牌的一个或多个优先级。
条款6.根据条款5所述的系统,其中:
为了更新包括多个量子任务的给定量子作业的优先级,所述访问控制平面被配置成更新所述给定量子作业的访问令牌的优先级,其中所述给定量子作业的所述访问令牌被附加到所述给定量子作业的所述量子任务。
条款7.一种管理量子计算服务的量子任务的方法,所述方法包括:
将相应优先级分配到包含在或要包含在所述量子计算服务的一个或多个量子任务队列中的相应量子任务;
在给定量子任务完成之后,确定一个或多个剩余量子任务的经更新优先级;以及
基于所确定的经更新优先级来更新一个或多个剩余量子任务的相应优先级,其中所述优先级的所述确定和所述更新是在带外执行的,使得下一个量子任务的执行不会由于所述优先级的所述确定或所述更新而被延迟。
条款8.根据条款7所述的方法,其进一步包括:
将访问令牌附加到所述量子任务,
其中所述确定所述一个或多个剩余量子任务的所述经更新优先级包括确定一个或多个相应类型的访问令牌的经更新优先级;并且
其中所述更新所述剩余量子任务的所述相应优先级包括基于所述一个或多个相应类型的访问令牌的所述经更新优先级来更新与所述一个或多个量子任务相关联的优先级。
条款9.根据条款8所述的方法,其中具有不同相关联访问令牌的量子任务被包含在所述量子计算服务的多个队列中的不同队列中,
其中所述更新所述剩余量子任务的所述相应优先级包括:
确定所述队列的经更新优先级,其中在较低优先级队列之前从较高优先级队列中选择量子任务以便执行。
条款10.根据条款9所述的方法,其中附加到包含在所述量子任务队列中的所述量子任务的相应类型的访问令牌包括:
量子作业访问令牌类型;以及
单独量子任务访问令牌类型,
其中所述确定所述一个或多个剩余量子任务的所述经更新优先级包括:
一旦给定量子作业的第一量子任务已经被提交以便执行,就通过增加与和所述给定量子作业相关的访问令牌相关联的优先级来增加所述量子作业的其它量子任务的优先级。
条款11.根据条款7至10中任一项所述的方法,其中所述量子任务是模拟任务,并且所述量子任务的执行包括通过经典计算模拟器模拟量子程序或量子电路。
条款12.根据条款7至10中任一项所述的方法,其中所述量子任务包括量子电路,并且所述量子任务的执行包括在量子计算装置上执行所述量子任务的量子电路。
条款13.根据条款7至12中任一项所述的方法,其进一步包括:
实施量子作业控制平面,所述量子作业控制平面被配置成:
为提交到所述量子计算服务的相应量子作业生成量子任务;并且
将量子作业类型访问令牌附加到所述量子任务,其中所附加的量子作业访问令牌指示所附加的量子任务所属的相应量子作业。
条款14.根据条款7至13中任一项所述的方法,其中所述量子任务具有可变持续时间,使得包含在所述量子任务队列中的一些量子任务比包含在所述量子任务队列中的所述量子任务中的其它量子任务需要更多的时间来执行。
条款15.根据条款14所述的方法,其中包含在所述量子任务队列中的所述量子任务由于以下中的一项或多项而需要不同的时间量来执行:
所述量子任务需要执行的轮次数;
所述量子任务的量子电路的大小;或者
将所述量子硬件装置从先前量子任务的先前量子电路转换到所述量子任务的所述量子电路所需的时间量。
条款16.根据条款7至15中任一项所述的方法,其进一步包括:
向包括所述量子计算服务的服务提供商网络的一个或多个边缘计算装置中的相应边缘计算装置提交相比于其它量子任务具有更高优先级的给定量子任务以便执行,其中所述一个或多个边缘计算装置位于量子硬件提供商位置处,并且其中所述一个或多个边缘计算装置提交所述给定量子任务以供在所述量子硬件提供商的量子硬件装置上执行。
条款17.根据条款7至15中任一项所述的方法,其进一步包括:
向包括所述量子计算服务的服务提供商网络的量子硬件装置提交相比于其它量子任务具有更高优先级的给定量子任务以便执行。
条款18.一种或多种非暂时性计算机可读介质,其存储程序指令,所述程序指令当在一个或多个处理器上或跨一个或多个处理器执行时使所述一个或多个处理器:
将相应优先级分配到包含在或要包含在量子计算服务的量子任务队列中的相应量子任务;
在给定量子任务完成之后,确定包含在所述量子任务队列中的一个或多个剩余量子任务的经更新优先级;以及
基于确定的经更新优先级来更新包含在所述量子任务队列中的一个或多个剩余量子任务的相应优先级,其中优先级的所述确定和所述更新是在带外执行的,使得所述量子任务队列中的下一个量子任务的执行不会由于所述优先级的所述确定或所述更新而被延迟。
条款19.根据条款18所述的一种或多种非暂时性计算机可读介质,其中所述程序指令当在所述一个或多个处理器上或跨所述一个或多个处理器执行时进一步使所述一个或多个处理器:
提交来自所述量子任务队列的相比于包含在所述量子任务队列中的其它量子任务具有更高优先级的给定量子任务,以供在量子硬件装置上执行。
条款20.根据条款18或条款19所述的一种或多种非暂时性计算机可读介质,其中所述量子任务队列包括用于多个服务质量等级的多个队列,以及
其中为了更新所述队列中包含的所述一个或多个剩余量子任务的所述相应优先级,当在所述一个或多个处理器上或跨所述一个或多个处理器执行时,所述程序指令使所述一个或多个处理器:
更新用于所述多个服务质量等级的所述多个队列的相应优先级,使得所述服务质量等级队列中的至少一个服务质量等级队列相比于所述服务质量等级队列中的其它服务质量等级队列具有更高的优先级。
结论
各个实施例可以进一步包含在计算机可访问介质上接收、发送或存储根据前述描述而实施的指令和/或数据。一般而言,计算机可访问介质可以包含存储介质或存储器介质(如磁性介质或光学介质,例如,磁盘或DVD/CD-ROM)、易失性或非易失性介质(如RAM(例如,SDRAM、DDR、RDRAM、SRAM等)、ROM等)以及传输介质或信号(如通过通信介质(如网络和/或无线链路)而输送的电信号、电磁信号或数字信号)。
如附图中所展示和本文所描述的各种方法表示方法的示例性实施例。所述方法可以以软件、硬件或其组合来实施。可以改变所述方法的顺序,并且可以添加、重新排序、组合、省略、修改等各种元素。
对于受益于本公开的本领域的技术人员来说显而易见的是,可以进行各种修改和改变。旨在包含所有这些修改和改变,并且因此,以上描述被认为是说明性的而不是限制性的。
权利要求书(按照条约第19条的修改)
1.一种系统,其包括:
服务提供商网络的一个或多个计算装置,所述一个或多个计算装置被配置成实施量子计算服务,
其中实施所述量子计算服务的所述一个或多个计算装置被进一步配置成实施:
用于所述量子计算服务的优先级访问控制平面;以及
用于所述量子计算服务的一个或多个量子任务队列,
其中所述优先级访问控制平面被配置成:
将相应优先级分配到包含在或要包含在所述一个或多个量子任务队列中的相应量子任务;
在给定量子任务完成之后,确定一个或多个剩余量子任务的经更新优先级;
其中在带外执行所述量子任务的所述优先级的所述确定,使得下一个量子任务的执行不会由于执行所述优先级的所述确定所需的时间而从进行到执行被延迟。
2.根据权利要求1所述的系统,其进一步包括:
所述提供商网络的位于一个或多个量子硬件提供商的一个或多个相应位置处的一个或多个边缘计算装置;
其中所述量子计算服务被配置成:
通过所述一个或多个量子硬件提供商中的相应量子硬件提供商的量子硬件装置,向所述一个或多个边缘计算装置中的相应边缘计算装置提交相比于其它量子任务具有更高优先级的给定量子任务,以执行所述给定量子任务。
3.根据权利要求1或权利要求2所述的系统,其进一步包括:
包含在所述服务提供商网络中的量子硬件装置,
其中所述量子计算服务被配置成:
向所述服务提供商网络的所述量子硬件装置提交相比于其它量子任务具有更高优先级的给定量子任务,以执行所述给定量子任务。
4.根据权利要求1至3中任一项所述的系统,其中所述量子计算服务被配置成:
从所述量子计算服务的客户端接收单独量子任务;并且
从所述量子计算服务的客户端接收量子作业,其中量子作业包括多个量子任务,并且
其中所述优先级访问控制平面被配置成:
确定所述单独量子任务和所述量子作业的优先级排序,使得:
当执行相应量子作业的量子任务时,实施与所述相应量子作业相关联的服务质量保证;并且
所述量子任务中的单独量子任务根据属于单独任务类型的量子任务的服务质量保证来执行。
5.根据权利要求1至4中任一项所述的系统,其中:
所述量子任务具有可变持续时间,使得一些量子任务比所述量子任务中的其它量子任务需要更多的时间来执行,
所述量子计算服务被配置成将访问令牌附加到所述量子任务;并且
为了更新所述量子任务的所述相应优先级,所述优先级访问控制平面被配置成更新分配到所述访问令牌的一个或多个优先级。
6.根据权利要求5所述的系统,其中:
为了更新包括多个量子任务的给定量子作业的优先级,所述访问控制平面被配置成更新所述给定量子作业的访问令牌的优先级,其中所述给定量子作业的所述访问令牌被附加到所述给定量子作业的所述量子任务。
7.一种管理量子计算服务的量子任务的方法,所述方法包括:
将相应优先级分配到包含在或要包含在所述量子计算服务的一个或多个量子任务队列中的相应量子任务;
在给定量子任务完成之后,确定一个或多个剩余量子任务的经更新优先级;以及
基于所确定的经更新优先级来更新一个或多个剩余量子任务的相应优先级,其中所述优先级的所述确定和所述更新是在带外执行的,使得下一个量子任务的执行不会由于所述优先级的所述确定或所述更新而被延迟。
8.根据权利要求7所述的方法,其进一步包括:
将访问令牌附加到所述量子任务,
其中所述确定所述一个或多个剩余量子任务的所述经更新优先级包括确定一个或多个相应类型的访问令牌的经更新优先级;并且
其中所述更新所述剩余量子任务的所述相应优先级包括基于所述一个或多个相应类型的访问令牌的所述经更新优先级来更新与所述一个或多个量子任务相关联的优先级。
9.根据权利要求8所述的方法,其中具有不同相关联访问令牌的量子任务被包含在所述量子计算服务的多个队列中的不同队列中,
其中所述更新所述剩余量子任务的所述相应优先级包括:
确定所述队列的经更新优先级,其中在较低优先级队列之前从较高优先级队列中选择量子任务以便执行。
10.根据权利要求9所述的方法,其中附加到包含在所述量子任务队列中的所述量子任务的相应类型的访问令牌包括:
量子作业访问令牌类型;以及
单独量子任务访问令牌类型,
其中所述确定所述一个或多个剩余量子任务的所述经更新优先级包括:
一旦给定量子作业的第一量子任务已经被提交以便执行,就通过增加与和所述给定量子作业相关的访问令牌相关联的优先级来增加所述量子作业的其它量子任务的优先级。
11.根据权利要求7至10中任一项所述的方法,其中所述量子任务是模拟任务,并且所述量子任务的执行包括通过经典计算模拟器模拟量子程序或量子电路。
12.根据权利要求7至10中任一项所述的方法,其中所述量子任务包括量子电路,并且所述量子任务的执行包括在量子计算装置上执行所述量子任务的量子电路。
13.根据权利要求7至12中任一项所述的方法,其进一步包括:
实施量子作业控制平面,所述量子作业控制平面被配置成:
为提交到所述量子计算服务的相应量子作业生成量子任务;并且
将量子作业类型访问令牌附加到所述量子任务,其中所附加的量子作业访问令牌指示所附加的量子任务所属的相应量子作业。
14.根据权利要求7至13中任一项所述的方法,其中所述量子任务具有可变持续时间,使得包含在所述量子任务队列中的一些量子任务比包含在所述量子任务队列中的所述量子任务中的其它量子任务需要更多的时间来执行。
15.根据权利要求14所述的方法,其中包含在所述量子任务队列中的所述量子任务由于以下中的一项或多项而需要不同的时间量来执行:
所述量子任务需要执行的轮次数;
所述量子任务的量子电路的大小;或者
将所述量子硬件装置从先前量子任务的先前量子电路转换到所述量子任务的所述量子电路所需的时间量。
Claims (15)
1.一种系统,其包括:
服务提供商网络的一个或多个计算装置,所述一个或多个计算装置被配置成实施量子计算服务,
其中实施所述量子计算服务的所述一个或多个计算装置被进一步配置成实施:
用于所述量子计算服务的优先级访问控制平面;以及
用于所述量子计算服务的一个或多个量子任务队列,
其中所述优先级访问控制平面被配置成:
将相应优先级分配到包含在或要包含在所述一个或多个量子任务队列中的相应量子任务;
在给定量子任务完成之后,确定一个或多个剩余量子任务的经更新优先级;
其中所述量子任务具有可变持续时间,使得一些量子任务比所述量子任务中的其它量子任务需要更多的时间来执行,并且
其中在带外执行所述量子任务的所述优先级的所述确定,使得下一个量子任务的执行不会由于执行所述优先级的所述确定所需的时间而从进行到执行被延迟。
2.根据权利要求1所述的系统,其进一步包括:
所述提供商网络的位于一个或多个量子硬件提供商的一个或多个相应位置处的一个或多个边缘计算装置;
其中所述量子计算服务被配置成:
通过所述一个或多个量子硬件提供商中的相应量子硬件提供商的量子硬件装置,向所述一个或多个边缘计算装置中的相应边缘计算装置提交相比于其它量子任务具有更高优先级的给定量子任务,以执行所述给定量子任务。
3.根据权利要求1或权利要求2所述的系统,其进一步包括:
包含在所述服务提供商网络中的量子硬件装置,
其中所述量子计算服务被配置成:
向所述服务提供商网络的所述量子硬件装置提交相比于其它量子任务具有更高优先级的给定量子任务,以执行所述给定量子任务。
4.根据权利要求1至3中任一项所述的系统,其中所述量子计算服务被配置成:
从所述量子计算服务的客户端接收单独量子任务;并且
从所述量子计算服务的客户端接收量子作业,其中量子作业包括多个量子任务,并且
其中所述优先级访问控制平面被配置成:
确定所述单独量子任务和所述量子作业的优先级排序,使得:
当执行相应量子作业的量子任务时,实施与所述相应量子作业相关联的服务质量保证;并且
所述量子任务中的单独量子任务根据属于单独任务类型的量子任务的服务质量保证来执行。
5.根据权利要求1至4中任一项所述的系统,其中:
所述量子计算服务被配置成将访问令牌附加到所述量子任务;并且
为了更新所述量子任务的所述相应优先级,所述优先级访问控制平面被配置成更新分配到所述访问令牌的一个或多个优先级。
6.根据权利要求5所述的系统,其中:
为了更新包括多个量子任务的给定量子作业的优先级,所述访问控制平面被配置成更新所述给定量子作业的访问令牌的优先级,其中所述给定量子作业的所述访问令牌被附加到所述给定量子作业的所述量子任务。
7.一种管理量子计算服务的量子任务的方法,所述方法包括:
将相应优先级分配到包含在或要包含在所述量子计算服务的一个或多个量子任务队列中的相应量子任务;
在给定量子任务完成之后,确定一个或多个剩余量子任务的经更新优先级;以及
基于所确定的经更新优先级来更新一个或多个剩余量子任务的相应优先级,其中所述优先级的所述确定和所述更新是在带外执行的,使得下一个量子任务的执行不会由于所述优先级的所述确定或所述更新而被延迟。
8.根据权利要求7所述的方法,其进一步包括:
将访问令牌附加到所述量子任务,
其中所述确定所述一个或多个剩余量子任务的所述经更新优先级包括确定一个或多个相应类型的访问令牌的经更新优先级;并且
其中所述更新所述剩余量子任务的所述相应优先级包括基于所述一个或多个相应类型的访问令牌的所述经更新优先级来更新与所述一个或多个量子任务相关联的优先级。
9.根据权利要求8所述的方法,其中具有不同相关联访问令牌的量子任务被包含在所述量子计算服务的多个队列中的不同队列中,
其中所述更新所述剩余量子任务的所述相应优先级包括:
确定所述队列的经更新优先级,其中在较低优先级队列之前从较高优先级队列中选择量子任务以便执行。
10.根据权利要求9所述的方法,其中附加到包含在所述量子任务队列中的所述量子任务的相应类型的访问令牌包括:
量子作业访问令牌类型;以及
单独量子任务访问令牌类型,
其中所述确定所述一个或多个剩余量子任务的所述经更新优先级包括:
一旦给定量子作业的第一量子任务已经被提交以便执行,就通过增加与和所述给定量子作业相关的访问令牌相关联的优先级来增加所述量子作业的其它量子任务的优先级。
11.根据权利要求7至10中任一项所述的方法,其中所述量子任务是模拟任务,并且所述量子任务的执行包括通过经典计算模拟器模拟量子程序或量子电路。
12.根据权利要求7至10中任一项所述的方法,其中所述量子任务包括量子电路,并且所述量子任务的执行包括在量子计算装置上执行所述量子任务的量子电路。
13.根据权利要求7至12中任一项所述的方法,其进一步包括:
实施量子作业控制平面,所述量子作业控制平面被配置成:
为提交到所述量子计算服务的相应量子作业生成量子任务;并且
将量子作业类型访问令牌附加到所述量子任务,其中所附加的量子作业访问令牌指示所附加的量子任务所属的相应量子作业。
14.根据权利要求7至13中任一项所述的方法,其中所述量子任务具有可变持续时间,使得包含在所述量子任务队列中的一些量子任务比包含在所述量子任务队列中的所述量子任务中的其它量子任务需要更多的时间来执行。
15.根据权利要求14所述的方法,其中包含在所述量子任务队列中的所述量子任务由于以下中的一项或多项而需要不同的时间量来执行:
所述量子任务需要执行的轮次数;
所述量子任务的量子电路的大小;或者
将所述量子硬件装置从先前量子任务的先前量子电路转换到所述量子任务的所述量子电路所需的时间量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/491,140 | 2021-09-30 | ||
US17/491,140 US20230110628A1 (en) | 2021-09-30 | 2021-09-30 | QUANTUM COMPUTING SERVICE WITH QUALITY OF SERVICE (QoS) ENFORCEMENT VIA OUT-OF-BAND PRIORITIZATION OF QUANTUM TASKS |
PCT/US2022/077008 WO2023183057A2 (en) | 2021-09-30 | 2022-09-26 | Quantum computing service with quality of service (qos) enforcement via out-of-band prioritization of quantum tasks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118056186A true CN118056186A (zh) | 2024-05-17 |
Family
ID=85797439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280066505.0A Pending CN118056186A (zh) | 2021-09-30 | 2022-09-26 | 通过量子任务的带外优先级排序实施使用服务质量(QoS)的量子计算服务 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230110628A1 (zh) |
CN (1) | CN118056186A (zh) |
WO (1) | WO2023183057A2 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11922416B2 (en) | 2020-03-17 | 2024-03-05 | ColdQuanta, Inc. | Atomtronics as a service |
US11631023B2 (en) * | 2020-03-17 | 2023-04-18 | ColdQuanta, Inc. | Quantum mechanics as a service |
US11875226B2 (en) | 2020-03-17 | 2024-01-16 | ColdQuanta, Inc. | Shaken lattice as a service |
US11935053B2 (en) | 2020-03-17 | 2024-03-19 | ColdQuanta, Inc. | Bose-Einstein condensates as a service |
US20230186141A1 (en) * | 2021-12-11 | 2023-06-15 | International Business Machines Corporation | Visual presentation of quantum-classical interface in a user experience |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774742B2 (en) * | 2003-11-04 | 2010-08-10 | Realization Technologies, Inc. | Facilitation of multi-project management using task hierarchy |
US10783472B2 (en) * | 2017-10-31 | 2020-09-22 | Dell Products L.P. | Applying machine learning to dynamically scale computing resources to satisfy a service level agreement (SLA) |
US10990441B2 (en) * | 2018-07-31 | 2021-04-27 | Nutanix, Inc. | Multi-level job processing queues |
US10997519B2 (en) * | 2018-11-29 | 2021-05-04 | International Business Machines Corporation | Co-scheduling quantum computing jobs |
US11687817B2 (en) * | 2020-09-28 | 2023-06-27 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for providing data computation via quantum computers |
US20230047145A1 (en) * | 2021-08-11 | 2023-02-16 | Uchicago Argonne, Llc | Quantum simulation |
-
2021
- 2021-09-30 US US17/491,140 patent/US20230110628A1/en active Pending
-
2022
- 2022-09-26 CN CN202280066505.0A patent/CN118056186A/zh active Pending
- 2022-09-26 WO PCT/US2022/077008 patent/WO2023183057A2/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023183057A2 (en) | 2023-09-28 |
WO2023183057A4 (en) | 2024-01-11 |
WO2023183057A9 (en) | 2023-11-02 |
WO2023183057A3 (en) | 2023-11-30 |
US20230110628A1 (en) | 2023-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN118056186A (zh) | 通过量子任务的带外优先级排序实施使用服务质量(QoS)的量子计算服务 | |
US11630706B2 (en) | Adaptive limited-duration edge resource management | |
US9800465B2 (en) | Application placement through multiple allocation domain agents and flexible cloud scheduler framework | |
Vakilinia et al. | Modeling of the resource allocation in cloud computing centers | |
Belgacem | Dynamic resource allocation in cloud computing: analysis and taxonomies | |
US8458334B2 (en) | Optimized capacity planning | |
US20110202925A1 (en) | Optimized capacity planning | |
US11010195B2 (en) | K-tier architecture scheduling | |
WO2020113310A1 (en) | System and method for resource partitioning in distributed computing | |
Ruiz-Alvarez et al. | Toward optimal resource provisioning for cloud mapreduce and hybrid cloud applications | |
Sundas et al. | An introduction of CloudSim simulation tool for modelling and scheduling | |
Tchernykh et al. | Mitigating uncertainty in developing and applying scientific applications in an integrated computing environment | |
WO2023056203A1 (en) | Determination of quantum circuit compilation passes and/or compilation parameters optimized for one or more performance metrics | |
US10635492B2 (en) | Leveraging shared work to enhance job performance across analytics platforms | |
US10936370B2 (en) | Apparatus that generates optimal launch configurations | |
Loganathan et al. | Job scheduling with efficient resource monitoring in cloud datacenter | |
US11263130B2 (en) | Data processing for allocating memory to application containers | |
KR20230064963A (ko) | 클러스터 컴퓨팅 시스템에서의 리소스 할당 방법 및 장치 | |
Miranda et al. | Dynamic communication-aware scheduling with uncertainty of workflow applications in clouds | |
Ramu | Soft Computing Techniques to Analyze the Load Balancing in Cloud Environment | |
Sharma et al. | Adaptive Particle Swarm Optimization for Energy Minimization in Cloud: A Success History Based Approach | |
Sahu et al. | Multiobjective Prioritized Workflow Scheduling in Cloud Computing Using Cuckoo Search Algorithm | |
US20230266997A1 (en) | Distributed scheduling in container orchestration engines | |
Ramkumar | Making the Most of Serverless Accelerators | |
Barredo et al. | Precise makespan optimization via hybrid genetic algorithm for scientific workflow scheduling problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |