CN112041859A - 使用分层存储在计算机上仿真量子电路 - Google Patents
使用分层存储在计算机上仿真量子电路 Download PDFInfo
- Publication number
- CN112041859A CN112041859A CN201980028977.5A CN201980028977A CN112041859A CN 112041859 A CN112041859 A CN 112041859A CN 201980028977 A CN201980028977 A CN 201980028977A CN 112041859 A CN112041859 A CN 112041859A
- Authority
- CN
- China
- Prior art keywords
- circuit
- sub
- tensor
- quantum
- slice
- 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
- 238000003860 storage Methods 0.000 title claims description 70
- 230000015654 memory Effects 0.000 claims abstract description 181
- 238000000638 solvent extraction Methods 0.000 claims abstract description 47
- 238000005192 partition Methods 0.000 claims abstract description 46
- 238000004088 simulation Methods 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims description 80
- 238000012545 processing Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 14
- 241000078511 Microtome Species 0.000 claims 3
- 239000002096 quantum dot Substances 0.000 description 48
- 238000010586 diagram Methods 0.000 description 31
- 238000004891 communication Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 239000000047 product Substances 0.000 description 8
- 230000001902 propagating effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000005233 quantum mechanics related processes and functions Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/80—Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
Abstract
这里描述的是输入量子电路的仿真,包括量子电路的机器可读规范。各方面包括基于用于张量切片而被识别的至少两组量子位将所述输入量子电路分区为一组子电路,其中所得子电路具有用于张量切片的相关量子位集。所述仿真可以分阶段进行,每个子电路一个阶段。与子电路相关的量子位集可用于将所述输入量子态电路的所述仿真量子态张量分区为量子态张量切片,并且所述子电路中的所述量子门可用于更新所述量子态张量切片成为已更新量子态张量切片。所述已更新量子态张量切片作为微切片存储到辅助存储器中。
Description
背景
本发明总体上涉及量子计算,并且更具体地涉及仿真量子电路。量子信息处理(量子计算)具有解决某些特定类型的数学问题的潜力,而这是常规机器计算难以解决的。量子计算机使用量子比特(量子位)对信息进行编码,其中量子位是量子信息的基本单位。量子电路基于量子力学现象,例如量子位叠加和量子位纠缠。
尽管量子计算具有潜在的益处,但是量子电路的制造困难且昂贵,并且遭受诸如缩放和量子去相干之类的各种问题的困扰。因此,已经使用可商购的常规(非量子)计算机进行的量子电路仿真,包括用于量化电路保真度以及评估正确性、性能和缩放比例,这是基于计算测量结果的量子态幅度(quantum state amplitudes)的能力。但是,由于幅度的数量随量子位的数量呈指数增长,因此使用现有技术计算测量结果的量子态幅度变得非常棘手,这使功能强大的超级计算机也无法承受。事实上,最近的出版物,“表征近期设备中的量子至上性”,作者BOIXO等,ARTICLES,NaturePhysics(2018),doi:10.1038/s41567-018-0124-x,指出:“具有7×7量子位和深度约40个周期的电路的输出幅度目前不可行。”因此,量子电路仿真仅限于具有较低电路深度的量子位数量相对较少的电路(电路深度是指该电路可以划分成在任何给定层最多可划分的层数一个门作用于给定的量子位)。
概要
以下给出了概述,以提供对本发明的一个或多个实施例的基本理解。该概述并非旨在标识关键或重要元素,也不旨在描绘本发明的特定实施例的任何范围或权利要求的任何范围。其唯一目的是以简化的形式呈现概念,作为稍后呈现的更详细描述的序言。
根据本发明的一个实施例,一种系统包括一个分区部件,所述分区部件基于至少两组确定的张量切片量子位分区包括机器可读规范的输入量子电路成为子电路,其中,所述子电路具有用于张量切片的相关量子位集。一个仿真组件基于所述子电路将所述输入量子电路分阶段地仿真为仿真量子态张量,每个子电路一个阶段,其中与子电路相关量子位集用于分区所述输入量子电路的所述仿真量子态张量成为量子态张量切片,并且所述子电路中的量子门被用于将所述量子态张量切片更新为已更新张量切片。读写组件将所述仿真量子态张量的所述已更新量子态张量切片作为微切片存储至辅助存储器。
所述读写组件可以以跨越所述辅助存储器的至少两个磁盘扇区的大小来写入微切片。所述读写组件可以进一步从所述辅助存储器中检索所述已更新量子态张量切片,并且所述仿真组件可以将另一个子电路处理为其他子电路张量,并用从所述辅助存储器中检索到的所述已更新量子态张量切片来更新所述其他子电路张量成为进一步已更新量子态张量切片。
根据本发明的一个实施例,一种计算机实现的方法包括:处理包括一个机器可读的量子电路规格的输入量子电路。所述处理包括基于被识别用于张量切片的至少两组量子位将所述输入量子电路分区为子电路组,其中,所述子电路组具有用于张量切片的相关量子位集。基于所述子电路组将仿真输入量子电路阶段化为一个仿真量子态张量,每个子电路一个级,其中与子电路相关的量子位集被用于将所述输入量子电路的所述仿真量子态张量分区为量子态张量切片,并将所述子电路中的量子门用于更新所述量子态张量切片成为已更新量子态张量切片。所述方法包括将所述仿真量子态张量的已更新量子态张量切片作为微切片存储至辅助存储器。
根据一个或多个实施例,提供了一种用于仿真量子电路的计算机程序产品,该计算机程序产品包括输入量子电路,所述输入量子电路包括量子电路的机器可读规范。所述产品包括计算机可读存储介质和存储在所述存储介质上的程序指令。所述程序指令可由处理组件执行以使所述处理器基于为张量切片而识别的至少两组量子位将所述输入量子电路分区为子电路组,其中所述子电路组具有相关量子位集用于张量切片。进一步的指令基于所述子电路组将仿真量子态张量分阶段仿真为已仿真量子态张量,每个子电路一个级,其中与子电路相关的量子位集被用于将所述输入量子电路的所述仿真量子态张量分区为量子态张量切片,并将所述子电路中的量子门用于更新所述量子态张量切片成为已更新量子态张量切片。所述方法包括将所述仿真量子态张量的已更新量子态张量切片作为微切片存储至辅助存储器。
进一步的指令可以包括将另一个子电路处理成其他子电路张量,从辅助存储器中检索已更新量子态张量切片,以及用从辅助存储器中检索到的所述已更新量子态张量切片来更新所述其他子电路张量成为进一步已更新量子态张量切片。将所述仿真量子态张量的所述已更新量子态张量切片作为微切片存储在辅助存储器可以包括将所述微切片存储在所述辅助存储器器的至少两个磁盘扇区中。
根据一个或多个实施例,一种计算机实现的方法,所述方法是由一设备执行操作地耦合到至少两个处理器,包括:仿真输入量子电路,包括一个量子电路的机器可读规范。所述仿真包括基于为张量切片而识别的至少两组量子位将所述输入量子电路分区为元子电路(meta sub-circuits),其中,至少一个所述元子电路超过单个处理器的所述存储器。所述方法包括将元子电路细分(sub-partitioning)为适合单个处理器的所述存储器的子-子电路(sub-sub-circuit),计算子-子电路的张量,并通过张量切分(tensor slicing)将所述张量收缩为张量切片。
所述方法可以进一步包括将另一个子电路的门用于所述张量切片以获得表示量子态数据的已更新张量切片并且所述已更新张量切片存储在辅助存储器中。所述辅助存储器可以包括一个或多个磁盘设备,并且所述方法可以进一步包括将量子态数据组织成微切片,其中,所述微切片的大小跨越所述辅助存储器的至少两个磁盘扇区。
根据一个或多个实施例,提供了一种用于仿真量子电路的包括一个机器可读规范的量子电路的输入量子电路的量子计算机程序产品。所述产品包括计算机可读存储介质和存储在所述存储介质上的程序指令。所述程序指令可由处理组件执行以使处理器基于识别出的用于张量切片的至少两组量子位将所述输入量子电路分区为元子电路,其中至少一个所述元子电路超出了一个处理器的存储器。所述程序指令子分区(sub-partition)元子电路成为子-子电路,所述子-子电路配合单个处理器的所述存储器,计算用于所述子-子电路的张量,以及通过张量切片将所述张量收缩(contract)为张量切片。
附图说明
图1是根据本发明的实施例的用于基于本文描述的技术来实现量子电路的仿真的组件的框图。
图2是根据本发明实施例的基于本文描述的技术来仿真量子电路的流程图。
图3是根据本发明的实施例的元切片的示意图,所述元切片包括跨越单个处理器的存储器的量子态数据的张量切片,并且具有相应的元子电路,所述元子电路被划分成适合于单个处理器的存储器的子-子电路用于进一步的张量切片和处理。
图4是根据本发明的实施例的深度为55的49量子位的量子电路的示意图,其通常属于一类随机产生的量子电路。
图5是根据本发明的实施例的深度为55的49量子位的量子电路的示意图,其被划分用于量子电路仿真。
图6是根据本发明的实施例的深度为83的49量子位的量子电路的示意图,其被划分用于量子电路仿真。
图7是根据本发明实施例的深度为111的49量子位的量子电路的示意图,该量子电路被划分用于量子电路仿真。
图8是根据本发明实施例的量子电路划分操作的流程图。
图9是根据本发明实施例的量子电路划分操作集的流程图。
图10是根据本发明的实施例的图9的量子电路划分操作的附加细节的流程图。
图11A-11C是根据本发明实施例的量子电路的预分区优化的图。
图12A是根据本发明的实施例的量子电路执行操作的流程图。
图12B是根据本发明的实施例的图12A的量子电路执行操作的附加细节的流程图。
图13是用于实现本文描述的技术的各个方面的系统的框图。
图14是用于实现本文描述的技术的各个方面的计算机实现的方法的框图。
图15是用于实现本文描述的技术的各个方面的另一种计算机实现的方法的框图。
图16是其中可以促进本文描述的本发明的一个或多个实施例的操作环境的框图。
具体实施方式
以下详细描述仅是说明性的,并不旨在限制本发明的实施例和/或本发明的实施例的应用或使用。此外,无意受到前面各节或“详细说明”部分中提供的任何明示或暗示信息的约束。
现在参考附图描述本发明的一个或多个实施例,其中,贯穿全文相似的参考标号用于指代相似的元件。在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的实施例的更透彻的理解。然而,很明显,在各种情况下,可以在没有这些具体细节的情况下实践本发明的实施例。
此外,应当理解,将根据给定的说明性架构来描述本发明;然而,在本发明的范围内可以改变其他架构、结构和/或操作。
应当理解的是,如本文所描述,“输入量子电路”被传统的计算机仿真实际上指的是一个机器可读规范的量子电路。还将理解,当诸如量子位的元件被称为耦合至或连接至另一元件时,它可以直接耦合至或连接至另一元件,或通过以下方式间接耦合至或连接至另一元件:可以存在一个或多个中间元素。相反,当且仅当元件被称为“直接”耦合或连接时不存在中间元件,也就是说,当且仅当元件被称为“直接连接”时或“直接耦合到”另一元件时不存在中间元件。
在本发明的至少一个实施例中,在说明书中对本原理的“一个实施例”或“一个实施例”及其其他变型的引用意味着包括结合该实施例描述的特定特征、结构、特性等。因此,在整个说明书的各个地方出现的短语“在一个实施例中”或“在一个实施例中”以及任何其他变型的出现不一定都指的是同一实施例。
现有的量子电路仿真的一个问题是仿真量子电路需要大量的存储器,由于存储器的限制,通常认为在49量子位以上是不可能的,或者至少是不实际的。更具体地说,一个7x7的量子位数组需要249个存储值来表示49个量子位的可能状态。当使用两个八字节浮点值来存储(复杂)量子位状态信息时,需要8拍字节(petabytes)的存储空间;一个56量子位的电路需要1艾字节(Exabyte)的存储空间。
这里描述的是使用张量来表示量子仿真中的量子态,以及使能够以切片计算电路的量子态的张量切片方法,而不是必须在主存储器中实现整个量子态。本文进一步描述的是,将计算组织成相对较大的张量切片。更进一步,如将理解的,辅助存储器在针对存储器内(in-memory)的合理电路深度来计算量子态之后使用,其中因为相对大的张量切片所以辅助存储器的使用是有效的。此外,本文基于量子电路分区中的选择与数据组织的选择相结合来描述所述辅助存储器的有效利用,这同时优化了对所述辅助存储器的全局读/写周期的数量以及执行读取和写入的效率。
注意本文所述的“辅助存储器”(或分层存储)包括辅助存储器的至少一个级别(level)。可以理解,本文所描述的框架可以被概括为解决一个(第二个)或更多级别的存储。任何此类存储级别都可以包含其自身的容量和访问特性,可以将其纳入仿真计算和存储分配中。因此,本文描述的技术不限于任何物理硬件或类型的存储设备,而是可以使用任何设备或设备的组合来将数据组织成微切片并且允许数据在硬件设备之间以块的形式传输。
如本文所使用的,术语“仿真”和“执行”(例如,相对于量子子电路)在本质上是同义的,因为(与仅是和真实事物近似的许多仿真相反)本文公开的仿真方法产生真实的、计算上有效的结果。如本文中所使用的,短语“索引变量”等是指导致访问期望的数据和/或存储器位置的任何类型的存储器寻址或索引。
从本文公开的本发明的至少一些实施例认识到,可以使用比通常假定更少的存储器来仿真量子电路。例如,本文公开的本发明的至少一些实施例将表示和仿真包括X个量子位的量子电路所需的存储空间从2X复杂值减小到该数量的一部分。更具体地,本文公开的本发明的至少一些实施例认识到,可以通过在两个或更多个子电路中具有纠缠的量子电路元件来将量子电路分区为子电路。在此公开的本发明的至少一些实施例进一步认识到,一些子电路的仿真结果可以在切片中计算,并且通过这样做,与常规预期相反,仿真整个量子电路所需的工作存储器可以是显著地减少。
现在参考附图,在附图中相同的数字表示相同或相似的元件,图1示出了其中可以实现本文描述的技术的通用系统100。在图1的示例中,以常规(非量子)计算机的形式提供了处理器102、存储器104和辅助存储器106,该计算机可以是超级计算机。如本文所述,分区部件108处理一个输入量子电路(即,一个用于仿真量子电路的机器可读规范)来将该输入量子电路分区为在存储器104中被表示为张量(阵列)的子电路。
张量切片组件110对存储器104中的张量进行切片,并且仿真组件112分阶段仿真所述输入量子电路,每个子电路为一个阶段,例如施加门,用来为该输入量子态电路提供仿真的量子态张量。读/写(出/入)辅助存储器组件114将用于所述输入量子态电路的仿真量子态张量的切片存储到辅助存储器,从辅助存储器106检索用于输入量子态电路的仿真量子态张量的切片。并根据用于张量切片的组合量子位将辅助存储器组织为微切片,其中,一组给定的量子位的切片被存储并作为多个微切片检索。
图2总结了图1的组件的示例操作。操作202表示接收(一个机器可读规范的)输入量子电路。操作204分析输入量子电路以识别将用于张量切片的至少两组量子位。操作206基于量子位的组将输入量子电路划分成多个子电路集,其中任何所得的子电路因此具有将用于张量切片的相关量子位的集合。
操作208表示分阶段地仿真所述输入量子电路,每个子电路一个阶段。与子电路相关一组量子位用于将该输入量子态电路的仿真量子态张量分区为切片,并且应用该子电路中的量子门来更新切片。
操作210表示将该输入量子态电路的仿真量子态张量的切片存储到辅助存储器106(图1)。操作212表示从所述辅助存储器106检索用于该输入量子态电路的仿真量子态张量的切片。操作214表示根据用于张量切片的量子位的组合集合将辅助存储器组织成微切片,其中用于给定的量子位集的切片被存储并作为微切片集被检索。
如本文所述,为了最小化辅助存储器的成本,将计算组织成相当大的张量切片,称为“元”切片。通常,张量切片越大,对辅助存储的读/写周期就越少。如图3所示,“元”切片330需要能够装入聚合(aggregate)主存储器104中,但不一定需要装入单个处理器(处理节点)的存储器中,例如处理器1的存储器304(1)用于处理器1 302(1)。在每个“元”子-电路中使用所述门时使用每个子-子电路用于处理器间切片以最小化通信应用,相应的“元”子电路332然后被子-分区(例如,通过图1的分区部件108)为子-子电路334(1)到344(N),使得公知的张量切片策略(图1的实施例中的张量切片部件110的一部分334(1)到344(N))可以被应用。
例如,可以在计算中应用一种已公开的方法(Thomas 和Damian SSteiger,“0.5拍字节仿真45量子位量子电路”,arXiv预印本,arXiv:1704.01127,(2017))。在此参考文献中,对电路进行了分区,以便子电路中的所有门都可以应用于基于每个切片的量子态张量更新,而无需在处理节点之间传递量子态信息。在此参考文献中,关于电路划分和张量切片,“全球”量子位用于跨处理节点进行索引,该处理节点对应于要进行切片的张量索引,而“本地”量子位对应于用于索引到存储在每个处理节点上的张量切片的张量索引。当子电路中所有非对角门(non-diagonal gates)仅应用于“本地”量子位时,零通信更新是可能的,实际上,通过选择“本地”量子位的不同子集并分析哪些门可以应用于零位来划分电路以产生相应的子电路。在仿真过程中,仅当仿真从一个子电路切换到另一个子电路时,才会发生处理节点之间的通信。在这些通信阶段中,将重新组织量子态张量的内存布局,以便根据对下一子电路进行仿真的需求,使用索引的新子集来“全局”跨处理节点进行索引,而不是“局部”在单个节点的内存中进行索引。
相反,本文描述的是电路划分,其中将所得张量存储在辅助存储器中,并且通过将所得张量的“元”切片加载到可用的聚合存储器中,在每个子电路的基础上更新量子态,应用将子电路的门连接到这些元切片,然后将更新的元切片写回到辅助存储中。尽管如此,通过将每个子电路进一步分区为子-子电路,可以在一定程度上利用上述公开的方法从而使元切片的相应子切片适合各个处理器的存储器。。
这里参考图8到图12B描述的电路分解方法,该方法可用于通过在第一次写入辅助存储器之前将量子状态计算到完全在内存中的合理深度来引导整个过程。举例来说,图5表示如何通过一次存储器读/写操作将分区扩展为从仿真49个量子位电路深度27(例如,如在2017年9月22日提交的美国专利申请序列号15/713,323中所述)能扩展到电路深度55。下文所述的图6表示如何通过两个存储读/写周期将仿真49个量子位的电路深度扩展到电路深度83,图7表示如何利用三个存储读/写周期将仿真49个量子位的划分扩展到电路深度27、到电路深度111,依此类推,直到任意深度。
图4的示例描绘了一个49量子位、深度55的量子电路,该量子电路通常属于一类随机生成的量子电路。在此示例中,量子位被排列为7x7阵列。给定的7x7正方形表示时间切片,并且将门应用于所述量子位,例如,在每个级别上应用的门(级别显示在左边界,例如0、9、17…49)。级别0是初始化级别。成对的黑点(每对都被灰色背景包围)代表受控Z(CZ)门。具有白色背景的其他灰色点代表各种单量子位门。
图5描绘了将图4所示的电路划分和分区为多个子电路,这些子电路使量子电路能够在当前可用的计算系统上进行仿真。将会理解,粒度(granularity)的多个级别(例如,张量元切片到微切片)允许仿真到本文所述的任意电路深度。
在图5的划分方案中,给定的正方形表示时间为7x7量子位阵列的时间切片,以及施加到量子位的门,例如,施加在每个级别的门(这些级别显示在左边界,例如,0,9,17…49)。级别0是初始化级别。
在此示例中,量子电路的量子位(对应于门)在图5中用数字1-4标记。用数字“1”标识(深灰色背景以上)的量子位表示属于在一个子电路中,用数字“2”标识的量子位(具有非常浅的灰色背景)表示属于另一子电路的门,在量子位中用数字“3”标识(中度至深灰色)背景)代表属于第三子电路的门,以数字“4”标识的量子位(具有浅灰色至中灰色背景)代表属于第四子电路的门。子电路(例如,通过1和2标识的)可以纠缠在一起,其中桥接门是受控的Z(CZ)门(其中一个量子位确定Pauli-Z操作是否应用于另一个量子位)。例如,如图5所示,可以将这些CZ门分配给任一子电路而不影响仿真电路的能力,并且可以将这些CZ门任意分配给底部子电路。
量子位的编号(结合阴影)显示了一种在子电路之间分配门以进行张量收缩和切片的方法。通常,该过程首先操作到深度27,然后循环应用计算的量子位的最后七行的值。在图5的示例中,为了扩展到级别27之外,使用了辅助存储器。也就是说,将分区应用于标识为3的量子位/门,然后应用于标识为4的量子位/门。
更具体地说,在图5的例子中,针对子张量-电路1和2计算以已知的方式。通过将最底下的7个量子位切片,将两个结果张量收缩为64TB切片。在第一个阶段,即阶段1(为强调起见,对应于标记为2的量子位的最后一行标记为第541行),对与标记为2的量子位相对应的量子位的底部行进行切片。在第二阶段,即阶段2,对与标记为3的量子位相对应的量子位的顶部行进行切片(为强调起见,标记为3的量子位的顶部行被标记为行542)。
在子电路3中的门被施加到每一个切片中,除了现在子电路3延伸超出深度27,直到深度55,并且更新的切片被送至储存器。对于子电路4,64TB切片从存储器中检索,对顶部的7个量子位进行切片,并且更新的切片被送回存储器。
关于图6和7,在子电路5的情况下,底部7个量子位被再次切片,得到从存储器中检索64TB切片,然后将更新的切片被送回存储器。在图6中(电路深度83),在第三阶段(阶段3)中也切割了底部一行的量子位(最后一行标记为643)。对于子电路6,顶部7个量子位被切片,从存储设备检索64TB切片和更新的切片或者处理或再发送回存储。在图7中(电路深度111),在第三阶段,阶段3中对量子位的底部行进行切片,在第四阶段(阶段4)中,将第四行量子位的顶部行进行切片(顶行标记为744)。
因此,本文所述的技术提供了通过利用辅助存储器而将7×7量子位、深度为27的随机电路的划分扩展为更大的深度,同时最小化读取/写入周期的数量。使用这种划分方案,可以仅使用一个读写周期来仿真以已知方式生成的7×7量子位深度为55的随机电路(图5),可以仿真7×7量子位深度为83的随机电路。仅使用两个读写周期(图6),依此类推,直到至少深度111(图7)。
在深度为55的电路的情况下,首先计算子电路1和2的张量,然后将得到的张量对收缩一次,每次一个切片。在执行子电路1的张量的收缩之前,通过遍历量子位43-49的可能值并将子电路2的张量切成这些值从而进行切片。然后,将属于图5中的子电路3的门施加到收缩结果,并且将所得到的更新后的切片传送到辅助存储器器。在此示例中,切片、收缩、应用门以及将结果发送到辅助存储器的过程重复128次,对于量子位43-49的128个可能值中的每个都一次。
为了完成深度55仿真,将属于图5中直到深度55的子电路4的门应用于传输到辅助存储器的中间结果上。这些门应用程序同样可以在切片中执行,这次以量子位1-7进行切片。为确保有效地执行从辅助存储器的检索,可以在辅助存储器中将数据组织为214个qi由量子位1-7和43-49的值索引的微切片,其中每个微切片包含235个对应于量子位8-42的复杂振幅(complex amplitudes)。因此,在上面讨论的在子电路3中应用门的阶段中,对于128个被切片的量子位43-49的值,将128个微切片写入与量子位1-7的128个可能值相对应的辅助存储中。在子电路4中施加门的当前阶段中,对于正在被切片的量子位1-7的128个值中的每一个,从辅助存储器中读取了128个微切片,对应于量子位43-49的128个可能值。一旦将这128个微切片的振幅加载到存储器中,子电路4中的门然后就可以应用。同样,一旦应用了这些门,就可以将每个更新的切片写回到存储器中。或者,可以在每个片段的基础上在内存中处理最终振幅。可以通过考虑所采用的计算机集群内辅助存储元件的物理分布以及其特性来实现图1所示的读/写(出/入)辅助存储组件114,以优化对微切片的读取和写入。该集群的通信网络,并利用微机读写过程中以及处理节点与存储元件之间的微机通讯中的并行性机会。例如,每个微切片可以以分布式的方式存储在多个物理磁盘驱动器中,以从并行性中受益,数据跨每个磁盘上的顺序扇区进行条带化以优化数据传输速率。
为了继续仿真到深度83(图6),将子电路4中的门施加到深度83,并将更新的切片写回到辅助存储器。一旦对子电路4的仿真中的所有切片完成了此过程,仿真就会继续进行到图6所示的子电路5,以仿真深度为83的其余门。除了本次,该过程以与对于子电路4相同的方式进行,对于现在正在被切片的量子位43-49的128个值中的每一个,从辅助存储器器中加载了128个微切片,其对应于量子位1-7的128个可能值。
类似地,为了将仿真继续到深度111(图7),子电路5中的门被施加到深度111,并且更新的切片被写回到辅助存储器。一旦对子电路5的仿真中的所有切片完成了此过程,仿真将继续进行到图7所示的子电路6,以仿真深度为111的其余门。本次,除了该过程以与本次对于子电路5相同的方式进行,对于现在正在被切片的量子位1-7的128个值中的每一个,从辅助存储器器中加载了与量子位43-49的128个可能值相对应的128个微切片逻辑文件。
根据本发明的一个或多个实施例,通常,最小化全局读/写周期的数量不能保证辅助存储器的有效利用。更具体地说,通常在使用辅助存储器时在块(磁盘扇区)中读取和写入数据,因此更新一个块中的单个数据项需要读取和重写整个块,因此,读取和写入的总量由存储区确定。在全局读/写周期中必须更新的块数。可以将电路分区中的选择与数据组织中的选择相结合,以便同时优化全局读/写周期的数量和执行读写的效率。
存储在磁盘上的量子态数据被组织成“微”切片。给定阶段中切片的所有量子位的并集以构造“元”切片,用于在磁盘上进行读写操作时进行切片,从而将数据组织为“微”切片。例如,在上面给出的示例中,在某些阶段对量子位1-7进行了切片,而在其他阶段对量子位43-49进行了切片,从而在每个阶段产生了不同的“元”切片。然后,将这些切片的量子位(即1位、7位、43位至49位)的并集用于创建“微”切片。因此,在计算阶段中的每个“元”切片对应于多个“微”切片。因此,“元”切片的读取和写入在“微”切片级别成为原子的,因此不会发生“微”切片的冗余读取和写入。
非冗余磁盘访问是通过保证每个“微”切片的大小来实现跨越多个磁盘扇区。文件系统的特性也会影响“微”切片的最佳大小。因此,可以考虑选择用于对哪些量子位进行切片以进行电路分区的优化过程,从而在各个阶段中产生适当大小的“微”切片。
参照图9,量子电路划分方法900从初始化(操作902)将用于将微切片索引为空集的全局量子位的集合开始。后续操作将添加到这组全局量子位中。这种量子位的数量决定了辅助存储上微切片的大小,因此,对用于索引微切片的全局量子位的数量设置了限制,以使微切片足够大以实现有效的辅助存储访问。
方法900继续进行识别和选择(操作904)与用于索引微切片的全局量子位的当前集合一致的子电路。在此上下文中的一致性意味着,与选定子电路关联的全局量子位,当添加到用于索引微切片的当前全局量子位的集合中时,不会导致所生成的全局量子位的集合用于索引微切片超过达到有效辅助存储器访问所需的此类量子位的最大数量。在操作904之后,将所选择的子电路的全局量子位添加(操作906)到将用于索引微切片的全局量子位的集合,然后从输入电路中去除(操作908)所选择的子电路中的门。然后检查更新的输入电路(操作910)以确定在输入电路中是否出现任何剩余的门,并且如果是,则量子电路划分方法900返回到操作904以识别并选择下一个子电路。如果没有门剩余,则电路划分以确定(操作912)被识别和选择的子电路的执行顺序而终止。
图10描绘了操作904的示例。该示例包括计算(操作1002)电流输入电路中的每个门所依赖的局部量子位的集合(以便应用),标识(操作1004)局部量子位,其与用于索引微切片的当前全局量子位集一致,并在可用的集合内存中最大化可应用的门数量,并识别和选择(操作1006)给定已识别的本地量子位。在操作1004中,一致性意味着将不包括在所识别的本地量子位中的全局量子位添加到用于索引微切片的当前全局量子位集合中不会导致所得到的用于索引微切片的全局量子位的集合超过达到有效辅助存储器访问所需的此类量子位的最大数量。
图9的操作904的示例还可以包括电路分解方法,为了通过完全在计算量子态到合理的深度来引导整个过程-存储器具有写入二次存储用于第一时间之前,在此参考图8至图12B和在美国专利申请序列号15/713323进行描述。
参照图8,量子电路划分方法800包括为每个初始阶段量子位创建(操作802)子电路,向子电路添加(操作804)后续阶段门,以及确定(操作806)所有相关的门已经被分配,如果是,则确定(操作808)执行顺序。
在分配了所有相关的门之前,操作810表示选择桥接门。操作812表示确定是否缠绕桥接的子电路,并且如果不缠绕,则关闭(操作814)桥接的子电路,或者如果是,则将桥接门添加(操作816)到缠绕的子电路之一。量子电路操作800使得能够以能够减少或最小化使用常规计算机和相关存储器来仿真量子电路所需的资源的方式来划分量子电路。
为每个初始阶段量子位创建(操作802)子电路可以包括:确定量子电路所需的量子位的数量(至少最初);以及初始化用于量子电路需要的为每个量子位定义子电路的数据结构。向子电路添加(操作804)后续阶段门可以包括向每个子电路添加仅需要来自当前被分配给该子电路的量子位的输入的未分配的下一个阶段门。该加法运算还可以包括确定分配给子电路的量子位的所有剩余未分配门是否都是对角线单一门(diagonal-unitarygate),如果是,则关闭该子电路,以与该封闭的子电路相同的分配量子位创建新的子电路,并将这个新的子电路标记为已创建的目的是为将所有剩余的未分配门是对角线单一门的量子位切片。关闭子电路可以包括将子电路标记为完成,以防止向该子电路添加其他门。
确定(操作806)是否已经分配的所有门可以包括确定未分配的门计数或某个其他指示符是否指示所有的门已经分配给了子电路。选择(操作810)桥接门可以包括选择未分配的下一个阶段门,该未分配的下一个阶段门需要来自至少一个当前被分配给子电路的量子位以及一个或多个当前未被分配给子电路的量子位的输入。换句话说,桥接门是需要当前创建的来自多个子电路的输入的门。
确定(操作812)是否使桥接的子电路纠缠可以包括估计备选方案的资源成本,在该备选方案中做出使桥接的子电路纠缠还是不纠缠的决定,比较与每个决策相关资源成本,然后选择成本最低的替代方案。关闭(操作814)桥接的子电路可以包括将子电路标记为完成,以防止将其他门添加到桥接的子电路。将桥接门分配给新的子电路(也是操作814的一部分)可以包括创建新的子电路,分配对这个新的子电路闭合的桥接子电路的量子位以及分配桥接门到这个新的子电路。
将桥接门添加到纠缠的子电路之一(操作816)可以包括将桥接门添加到子电路中包括的门的列表中。该添加操作还可以包括首先用等效的门组合来代替桥接门,其中新的桥接门变成对角线单一的。一个例子是用CZ门和哈达玛(Hadamard)门的组合代替CNOT门(图11A),如图11B所示。如图11C所示,这可以用这种等效的门组合代替CNOT门。进行这种替换后,新的桥接门将分配给一个桥接子电路,并且根据分配给它的量子位,可能将在此重写中引入的任何单量子位门分配给子电路。这些子电路。例如,在将CNOT门替换为CZ门的特定情况下,引入的哈达玛门被分配给子电路,该子电路被分配了相应的量子位,以符合向其添加后续阶段门的规则。上面结合操作804描述的子电路。另一方面,可以将CZ门分配给纠缠的子电路中的任何一个。
注意,图11A-11C是描绘优化量子电路的一个特定示例的一个示例性示意图。在本发明的一些实施例中,可以在本文公开的技术内的各个点处进行门替换(也称为电路重写)。例如,可以结合步骤816(图8)执行诸如图11B所示的重写之类的电路重写。更具体地,用CZ门和哈达玛门的等效配置代替桥接CNOT门可以减少当缠结相应的子电路时引入的缠结索引的数量,进而具有减少仿真生成的纠缠子电路所必需的存储器量的效果。
因此,图8示出了示例流程图,该流程图可用于例如为每个上述使用情况以及该技术的其他可能使用情况找到最小化浮点运算数量的电路分区本文所述。示例包括深度优先搜索、宽度优先搜、迭代加深深度优先搜索、Dijkstra算法和A*搜索。
例如,将图8所示的操作实现为深度优先的递归优化过程可涉及在决策点处引入循环以循环可能的决策选择,然后在这些循环内从这些点向前递归地调用图8所示的操作,以实现可能的选择,并在循环结束时返回优化所需成本度量的选择。这些决定点可以包括用于选择可分配的桥接门的操作810,用于选择是否缠结子电路的操作812,用于将桥接门分配给子电路的操作816以及用于确定子电路执行顺序的操作808。相反,可以通过应用经验法则在这些点上做出一些决策,而其他决策可以作为深度优先搜索的一部分包括在内。要最小化的所需资源成本度量可以包括最大内存需求,用于计算幅度的浮点运算的总数和/或用于计算单个幅度的浮点运算的总数。如果违反了期望的约束条件,也可以引入条件测试来放弃选择。所需的约束条件可以包括使仿真的总内存需求保持在指定的限制内。它们还可以包括深度优先进程本身消耗的总运行时间限制。可以实施深度优先处理,以根据所需的资源成本度量记录迄今为止找到的当前最佳选择集,以便在执行完整搜索之前(例如在运行时时)终止深度优先处理施加了限制,然后还可以从已执行的所述深度优先处理继续获得收益。
深度优先搜索过程有效地生成决策选择的可能序列的树以及由此引起的电路划分。广度优先搜索每次一个阶段地探索该树。广度优先搜索可以被实现为迭代加深的深度优先搜索,其中,对所做出的决策数目施加限制,并且一旦超过该限制,就放弃搜索树的分支。可以在搜索的深度上设置限制,或者在操作812上可以选择纠缠选择的次数。
图12A是根据本文阐述的本发明的至少一个实施例的量子电路执行的流程图。量子电路执行操作包括:接收(操作1202)有序的量子子电路集;分配(操作1204)不同的索引变量;传播(操作1206)索引变量;以及执行(操作1208)每个量子子电路。例示的量子电路操作可以使得能够执行被分区为子电路的量子电路。
接收(操作1202)量子子电路的有序集合可以包括:接收指向对象或数据结构的指针的有序列表,该对象或数据结构定义了包括其中所包含的门的每个量子子电路。在本发明的一个实施例中,每个量子子电路的定义实质上是类似于图8所示的执行计划的子电路执行计划。分配(操作1204)不同的索引变量可以包括将不同的索引变量分配给初始值。每个量子位的状态以及每个非对角单一门的输出。
传播(操作1206)索引变量可以包括从输入到输出迭代地传播每个对角单一门的索引变量。执行(操作1208)每个量子子电路可以包括执行每个量子子电路并以指定的顺序组合所生成的结果。
图12B是描绘图12A中描绘的执行操作1208的示例的流程图,其中子电路和组合结果可以包括构造(操作1210)张量的乘积和执行(操作1212)求和。
构造(操作1210)张量的乘积可以包括:在图12A的操作1204和1206中,识别属于子电路的门以及分配给那些门的索引变量,将这些索引变量作为下标分配给对应的张量用于子电路中的门,并将子电路的张量组装成按输入到输出顺序排列的产品。张量的乘积的构造(操作1210)还可以包括根据通过确定操作(例如,图8的操作808)到达的执行顺序,将与子电路的仿真结果相对应的张量组装为张量的乘积。
执行(操作1212)求和可包括按照上述构造操作1210中确定的输入到输出顺序计算子电路的张量的乘积,并对这些子电路内部的索引变量执行求和,如它们以确定的输入到输出顺序遇到。对整个电路内部的指标变量进行求和(操作1212)可以包括:当计算在上述构造操作1210中确定的用于组合子电路的仿真结果的张量的乘积时,对这些指标变量进行求和。
如果在一个量子位的电路中没有要仿真的门,或者该量子位的所有其余门都是对角线单一门,则在结合子电路的仿真结果之前可以引入for循环,循环一个或多个此类量子位的可能值。然后可以针对受影响的张量的切片计算随后的张量积及其总和,以减少后续计算的存储需求。
返回图12A的操作1208及其在图12B中示出的示例,在至少一个实施例中,可以从输入状态到输出状态有效地仿真子电路,该子电路从根据各个量子位的初始状态创建的初始子电路开始。使用这种方法,直到已经仿真了它们依赖于输入的先前子电路,才对随后的子电路进行仿真。每个子电路的仿真结果可以对应于m维张量,该张量可以在计算机内存中表示为m维数组。其他数据结构,例如线性阵列,也可以用来提供等效表示。
因此,本文描述了电路划分,其中所得张量整体上适合于可用集合存储器,或者可以基于已经计算并存储在集合存储器中的其他张量使用可用集合存储器来计算所得张量的切片。所得张量和/或它们的切片通常大于各个处理节点的存储器。现有的每个处理节点的存储器与本文描述的技术相结合,通过将子电路进一步分区为子子电路,从而使通信最小化,以使相应的子片可以适合各个节点的存储器。
此外,当量子态太大而无法容纳在聚合存储器中时,可以组合使用第二存储技术。由于辅助存储通常比主存储器要慢几个数量级,因此使用辅助存储的可行性取决于读/写周期数可以最小化的程度。为了实现这种最小化,本文描述了对电路的初始部分进行划分,以试图最大化可以使用可用的集合存储器进行仿真的门的数量,然后将所得的量子态按切片计算并写入辅助存储器。然后,可以根据聚合内存的大小,将已知的分区方法应用于电路中的其余门,将“本地”量子位的数量设置为更高,而不是局限于各个处理节点上可用的内存大小。所得的张量切片(“元”片)相对较大,从而允许在需要其他辅助存储读/写循环之前仿真更多的门。如本文所讨论的,然后可以将所得的子电路进一步分区为子-子电路,以在整体计算中最小化节点间的通信。
如在此阐述的,对于7×7量子位、深度27的随机电路如图4至图7中所示的划分方案可以扩展,以便也可以仅使用一个辅助存储器读/写周期来仿真7×7量子位、深度55的电路(图5),以及深度83(图6)、深度111(图7)等的电路。如图8-10中描绘的流程图可以被应用来构造图5至图7所示的划分方案。具体地,图8中的流程图800可以在图9中所示的循环的第一次迭代中在图9中的操作904的示例中使用,然后图10中的流程图1000可以在后续迭代中用作该操作904。在图9中所示的循环的第一次迭代中,操作904的一个例子可以应用在图8中的具有增加深度限制的流程图800多次以识别所述量子态可以完全在计算合理的深度-存储器具有前首次写入辅助存储。以这种方式,在图4到图7的情况下,可以将27确定为这样的合理深度。在深度极限被设置为27的情况下,当考虑在电路中在阶段7和8桥接第三行和第四行的CZ门时,可以通过遵循图8中的操作812的“是”分支来识别图5到图7中所示的子电路1和2,以及对于在子电路1和2严格内部出现的CZ门,则遵循操作812的“否”分支。这样做产生了分别对应于子电路1和2的两个多个有序子电路,如图5到图7所示。作为该过程的副产品,由于电路中直到深度27的所有剩余未分配门都是对角线单一门,因此也可以将量子位43-49标识为切片对象。量子位43-49因此可以成为被识别的全局量子位,以用于构造元切片的切片。当考虑在量子电路中在阶段15和16桥接第三行和第四行的任何一个CZ门时,可以通过随后跟随图8中的操作812的“否”分支来识别图5至图7所示的子电路3。当随后应用操作804时,然后可以识别子电路3中直至深度27的其余门。为了将划分扩展到深度27之外,可以在量子位43-49是全局的约束下继续操作804到深度27之外,因此,在将子电路3扩展到深度之外时,仅考虑应用于局部量子位1-42的门。这样做可以产生对应于如图5到图7所示的子电路3的分区。在图9所示的循环的第一次迭代中,将上述过程用作图9中的操作904的实施例,然后可以通过使用图10中的流程图1000做为后续迭代中的操作904来识别子电路4、5和6。应当注意的是,在操作904中使用流程图800不是必需的。然而,以上述方式使用流程图800可以增加在必须第一次写入辅助存储器之前可以仿真量子电路的深度。还应注意,已知的优化技术(例如深度优先搜索、广度优先搜索、迭代加深深度优先搜索、Dijkstra算法和A*搜索)可以与流程图900结合使用,以优化在操作904的实施例;例如,为了最大程度地减少总执行时间,同时考虑到计算成本、通信成本和二级存储访问成本。
一种已公开的方法(Riling Li,Bujiao Wu,Mingsheng Ying,Xiaoming Sun,andGuangwen Yang,,“神威-太湖之光上的量子至上电路仿真”,arXiv预印本arXiv:1804.04797,(2018))证明了计算≈50量子比特且深度>40的通用随机电路的单个振幅的估计的可行性,这被认为是当前技术无法实现的。相比之下,如上所述,具有超级深度的大于50量子位的通用随机电路可以在使用辅助存储器的超级计算机上计算出的所有振幅下完全仿真。由于磁盘读/写操作的成本较高,因此导致执行时间更长,但是对于正在研究的实例,速度的降低幅度却不到两倍。此外,最近的系统进步,例如基于NVRAM的突发缓冲区,可以对这些运行时间产生非常有益的影响。通过辅助存储器可用的更大的存储池允许进一步扩展量子电路仿真的边界。为此,量子电路可以在网格的边界上具有一组量子位,这些量子位周期性地不与几层门的其他量子位相互作用。特别是,对于7×7网格上的通用随机电路,边界上的一组7个量子位具有两层与其他行或列的两量子位交互作用,其后是没有进一步交互作用的六层(只有单量子位门或组中的两个量子门)。因此,对这些量子位进行切片非常有效。选择边界行或列之一,然后切片六层的相应量子位。独立仿真应用于其余量子位的电路。更具体地,该技术在网格的边界(例如,网格的底行)处对量子位进行切片,使用薛定谔方法以状态向量与存储器一样大的方式仿真电路的其余部分。对尽可能多的门层进行仿真,而不会引入其他纠缠指数。对于在相对的行/列(例如,网格的最上一行)上的量子位,这允许应用三十层以上的门,而对于更接近已被切片的量子位的量子位,在不增加内存占用之前,进程停止在较少的层数上。这将产生几个相同大小的片,并将其存储到磁盘中。为了施加更多的门,将启动一个新的子电路,在与前一个子电路(例如,网格的顶部行)中所切片成的行/列相反的行/列中对量子位进行切片,并使用薛定谔方法仿真其余电路。可以从磁盘上存储的片中加载初始状态,然后可以重复该过程。这会在子电路中产生“波形”模式,其中给定的子电路从量子位的顶部或底部行开始,然后扩展到电路的其余部分,直到它包含与量子位的起始集合相反的行,在该点它收缩回来。人们可以通过切片附加量子位,例如两行,减少存储器需求(而不是在磁盘存储要求)。即使没有磁盘操作,此处描述的技术也允许在7×7量子位网格上计算深度46电路的单个幅度。
如本文所述,使用辅助存储器的效率取决于读/写周期数可以最小化的程度。将249个量子幅度写入辅助存储器并读回它们所需的数据传输时间约为2至5个小时,传输速率约为1.0到2.2TB/秒。量子幅度可以以单精度和/或双精度存储格式存储;(当振幅以单精度存储时,仍可以双精度执行内存中计算,以最小化舍入误差的累积)。因此,只要可以将读取/写入周期的数量保持在最少,就可以使用辅助存储器。
图13表示一种系统,其包括分区组件(框1302),该分区组件基于所识别的至少两组量子位将包括量子电路的机器可读规范的输入量子电路分区为用于张量切片的子电路,其中子电路组具有用于张量切片的相关量子位集。仿真组件(框1304)基于所述子电路组分阶段仿真输入量子电路成为仿真量子状态张量,每个子电路一个阶段,其中与子电路相关的量子位集用于将所述输入量子电路的仿真量子状态张量分区为量子状态张量切片,并且所述子电路中的量子门用于将量子状态张量切片更新为已更新量子状态张量切片。读写组件(块1306)将所述仿真量子态张量的所述已更新量子态张量片作为微切片存储到辅助存储器。
输入量子电路可以包括至少四十九个量子位,并且具有至少五十的电路深度等级。
读写组件可以以跨越辅助存储器的至少两个磁盘扇区的大小来写入微切片。读写组件可以从辅助存储器中检索已更新量子态张量切片,而仿真组件可以将另一个子电路处理为其他子电路张量,并使用检索到的已更新量子态张量切片来更新其他子电路张量。从辅助存储器到进一步已更新量子态张量切片。读写组件可以将进一步已更新量子态张量切片存储在辅助存储器中。
划分组件可以将输入量子电路分区为与子电路相对应的量子位分区组,包括第一量子位分区组、第二量子位分区组、第三量子位分区组和第四量子位分区组。仿真组件可以将第三组的量子门施加到第一组和第二组的张量切片以获得更新的量子态张量,并且读写组件可以将已更新量子态张量切片从辅助存储器器读取到存储器中。仿真组件可以将第四组的量子门应用于已更新量子态张量切片以获得进一步已更新量子态张量。
图14表示示例性计算机实现的方法,其中操作1402表示处理包括量子电路的机器可读规范的输入量子电路。该处理可以包括基于被识别用于张量切片的至少两组量子位将输入量子电路分区(例如,由图1的划分组件108执行的操作1404)成子电路组,其中子电路具有相关量子位集用于张量切片。操作1406表示基于子电路的组将输入量子电路分阶段地仿真(例如,通过图1的仿真部件112)为仿真量子态张量,每个子电路一个阶段,其中与子电路相关的量子位集被用于将输入量子电路的仿真量子态张量分区为量子态张量切片,子电路中的量子门用于将量子态张量切片更新为已更新量子态张量切片。操作1408表示(例如,通过图1的读写组件114)将仿真量子态张量的已更新量子态张量切片做为微切片存储到辅助存储器。
将仿真的量子态张量的更新后的量子态张量切片存储为次级片可以包括将微切片存储在辅助存储器的至少两个磁盘扇区中。
各方面可以包括将另一个子电路处理成其他子电路张量,从辅助存储器的中检索已更新的量子态张量切片,以及用从辅助存储器中检索到的已更新量子态张量切片来更新其他子电路张量成为进一步已更新量子态张量切片。各方面可包括将进一步已更新量子态张量切片存储在辅助存储器中的处理。
将输入量子电路分区为子电路组可以包括将输入量子电路分区为第一子电路分区组、第二子电路分区组和第三子电路分区组,并存储已更新量子态张量切片可以包括将第三子电路分区组的门施加到与第一子电路分区组和第二子电路分区组相对应的张量切片上,以获得已更新的量子态张量切片。将输入量子电路分区为子电路组还可以包括:将输入量子电路分区为第四子电路分区组;以及从辅助存储器中获取更新后的量子态张量切片;用从辅助存储器获取的已更新量子态张量切片将其他子电路张量更新为进一步的已更新量子态张量切片可以包括施加第四子电路分区组的门。
如所理解的,图14的示例性操作一般来说可以以计算机程序产品实现的用于仿真量子电路,包括一个输入量子电路,该输入量子电路包括量子电路的机器可读规范机器可读规范。为此,计算机程序产品可以包括一个或多个计算机可读存储介质以及存储在一个或多个计算机可读存储介质上的程序指令。程序指令在被执行时可以对应于图14中例示的至少一些操作。
图15表示的示例性计算机实现的方法,其可以通过可操作地耦合到至少两个处理器的设备来执行的操作,其包括操作1502,其表示仿真输入量子电路,其包括一个量子电路的机器可读规范。操作1504表示基于为张量切片而识别的至少两组量子位将输入量子电路分区为多个子-子电路,其中至少一个子-子电路超过单个处理器的存储器。各方面可以包括子分区元子电路成为子-子电路,所述子-子电路与单个处理器(操作1506)的存储器内配合,计算用于子-子电路的张量(操作1508),并且通过张量切片收缩张量成张量切片(操作1510)。各方面可以包括将另一子电路的门应用到张量切片以获得表示量子态数据并存储在辅助存储器中的已更新的张量切片。各方面可以包括从辅助存储器中检索已更新的张量切片,施加另外其他子电路的门到已更新的张量切片,以获得进一步已更新张量切片。
辅助存储器设备可以包括一个或多个磁盘设备,并且各方面可以包括将元切片组织为微切片,其中,微切片的大小跨越辅助存储器设备的至少两个磁盘扇区,并且存储已更新的张量的切片到辅助存储器中可以包括存储微切片。替代地,或除磁盘设备之外,辅助存储器可以包括NVRAM、相变存储器、闪存等。此外,辅助存储器可以至少在一定程度上指“远程”存储器。例如,远程直接内存访问允许在不需要CPU干预的情况下有效地传输数据,因此可以与微型切片一起使用。注意,执行的操作不必是“内存对称的”,因为例如,节点(例如,节点0)可以将切片存储在另一个节点(例如,节点158)上,因为节点158具有更多的内存或具有相同的容量内存,但需要较少的资源。
如所理解的,图15的示例性操作一般来说可以以计算机程序产品实现用于仿真量子电路,包括一个输入量子电路,其包括量子电路的机器可读规范。为此,计算机程序产品可以包括一个或多个计算机可读存储介质以及存储在一个或多个计算机可读存储介质上的程序指令。程序指令在被执行时可以对应于图15中例示的至少一些操作。
为了提供本发明的各个方面的背景,图16以及以下讨论旨在提供可以在其中实现本发明的各个方面的合适环境的一般描述。图16示出了示例操作环境的框图,在该示例操作环境中,可以促进本文所述的本发明的一个或多个实施例。
参考图16,环境1600还可以包括计算机1612。计算机1612还可以包括处理单元1614、系统存储器1616和系统总线1618。系统总线1618耦合系统组件,包括:处理单元1614可以包括但不限于系统存储器1616。处理单元1614可以是各种可用处理器中的任何一个。双微处理器和其他多处理器体系结构也可以用作处理单元1614。系统总线1618可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线或外部总线和/或使用任何可用总线架构的本地总线,包括但不限于工业标准架构(ISA)、微通道架构(MSA)、扩展ISA(EISA)、智能驱动电子(IDE)、VESA本地总线(VLB)、外围组件互连(PCI)、卡总线、通用串行总线(USB)、高级图形端口(AGP)、火线(IEEE1394)和小型计算机系统接口(SCSI)。
系统存储器1616还可以包括易失性存储器1620和非易失性存储器1622。基本输入/输出系统(BIOS)包含诸如在启动期间在计算机1612内的元件之间传递信息的基本例程。存储在非易失性存储器1622中。计算机1612还可以包括可移动/不可移动、易失性/非易失性计算机存储介质。图16举例说明了磁盘存储设备1624。磁盘存储设备1624还可以包括但不限于磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡或记忆棒。磁盘存储装置1624还可以单独地或与其他存储介质组合地包括存储介质。为了促进磁盘存储设备1624与系统总线1618的连接,通常使用可移动或不可移动的接口,例如接口1626。图16还描绘了在适当的操作环境1600中描述的充当用户与用户界面中描述的基本计算机资源之间的中介的软件。这样的软件还可以包括例如操作系统1628。可以存储在磁盘存储器1624上的操作系统1628用于控制和分配计算机1612的资源。
系统应用程序1630利用操作系统1628通过程序模块1632和程序数据1634(例如存储在系统存储器1616或磁盘存储1624中的程序数据)对资源进行管理。应当理解的是,本公开内容可以是用各种操作系统或操作系统组合来实现。用户通过一个或多个输入设备1636向计算机1612输入命令或信息。输入设备1636包括但不限于诸如鼠标、跟踪球、手写笔、触摸板、键盘、麦克风、操纵杆之类的指示设备,游戏垫、卫星天线、扫描仪,电视调谐卡、数码相机、数码摄像机、网络摄像机等。这些和其他输入设备经由接口端口1638通过系统总线1618连接到处理单元1614。接口端口1638包括例如串行端口、并行端口、游戏端口和通用串行总线(USB)端口。输出设备1640使用一些与输入设备1636相同类型的端口。因此,例如,USB端口可以用于向计算机1612提供输入,以及将信息从计算机1612输出到输出装置1640。输出适配器1642被提供以说明有一些输出装置1640像监视器、扬声器和打印机,其他输出设备1640中需要特殊适配器。作为说明而非限制,输出适配器1642包括视频和声卡,其提供了输出设备1640和系统总线1618之间的连接方式。应当注意,其他设备和/或设备系统同时提供这输入和输出功能两者,例如远程计算机1644。
计算机1612可以使用到诸如远程计算机1644的一个或多个远程计算机的逻辑连接在联网环境中操作。远程计算机1644可以是计算机、服务器、路由器、网络PC、工作站、基于微处理器的设备、对等设备或其他公共网络节点等,并且通常还可以包括相对于计算机1612所述的许多或所有元素。为简洁起见,远程计算机1644仅存储器存储设备1646被图示。远程计算机1644通过网络接口1648逻辑上连接到计算机1612,然后经由通信连接1650物理地连接。网络接口1648包含有线和/或无线通信网络,例如局域网(LAN)、广域网(WAN)、蜂窝网络等。LAN技术包括光纤分布式数据接口(FDDI)、铜缆分布式数据接口(CDDI)、以太网、令牌环等。WAN技术包括但不限于点对点链接、电路交换网络(如集成服务数字网络(ISDN))及其上的变体、分组交换网络和数字用户线(DSL)。通信连接1650是指用来将网络接口1648连接到系统总线1618的硬件/软件。尽管为了说明清楚起见示出了计算机1612内部的通信连接1650,但是它也可以在计算机1612的外部。用于连接到网络接口1648的硬件/软件还可以仅出于示例性目的包括内部和外部技术,例如调制解调器包括常规电话级调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器和以太网卡。
本发明可以是处于任何可能的技术细节集成水平的系统、方法,装置和/或计算机程序产品。该计算机程序产品可以包括其上具有用于使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质。该计算机可读存储介质可以是有形设备,该有形设备可以保留和存储供指令执行设备使用的指令。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表还可以包括以下内容:便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、记忆棒、软盘、机械编码的设备,例如打孔卡或凹槽中的凸起结构,上面记录了指令,以及上述内容的任何适当组合。如本文所使用的,计算机可读存储介质不应被理解为本身是瞬时信号,例如无线电波或其他自由传播的电磁波,通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过网络(例如,互联网、局域网、广域网)下载到外部计算机或外部存储设备。区域网络和/或无线网络。该网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应的计算/处理设备内的计算机可读存储介质中。用于执行本发明的操作的计算机可读程序指令可以是汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据、集成电路的配置数据或以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似编程)的任何组合编写的源代码或目标代码语言。计算机可读程序指令可以完全在用户计算机上执行、部分可以作为独立软件包在用户计算机上执行、部分可以在用户计算机上执行、部分在远程计算机上或完全在远程计算机或服务器上。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者可以与外部计算机建立连接(用于例如,通过使用Internet服务提供商的Internet)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令来个性化电子电路,以执行本发明的各方面。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各方面。将理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以通过计算机可读程序指令来实现。可以将这些计算机可读程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器,从而使得该指令经由计算机的处理器或其他可编程数据处理来执行。在该装置中,创建用于实现流程图和/或框图方框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该介质可以指导计算机、可编程数据处理装置和/或其他设备以特定方式起作用。也可以将计算机可读程序指令加载到计算机、其他可编程数据处理设备或其他设备上,以使一系列操作动作在计算机、其他可编程设备或其他设备上执行以产生计算机实现的过程,例如在计算机、其他可编程装置或其他设备上执行的指令实现了流程图和/或框图方框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。就这一点而言,流程图或框图中的每个方框可以代表指令的模块、片段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,方框中指出的功能可以不按图中指出的顺序发生。例如,取决于所涉及的功能,实际上可以基本上同时执行连续示出的两个框,或者有时可以以相反的顺序执行这些框。
尽管上面已经在运行在一个或多个计算机上的计算机程序产品的计算机可执行指令的一般上下文中描述了主题,但是本领域技术人员将认识到,本公开内容也可以或可以是与其他程序模块结合实现。通常,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域技术人员将理解,可以利用其他计算机系统配置来实践本发明的计算机实现的方法,包括单处理器或多处理器计算机系统、小型计算设备、大型计算机以及手持式计算机、计算设备(例如PDA,电话)、基于微处理器或可编程的消费类电子产品或工业电子产品等。所示出的方面也可以在分布式计算环境中实践,在分布式计算环境中,任务由通过通信网络链接的远程处理设备执行。但是,本发明的某些方面(如果不是全部的话)可以在独立计算机上实践。在分布式计算环境中,程序模块可以位于本地和远程存储设备中。
如在本申请中使用的,术语“组件”、“系统”、“平台”,“接口”等可以指代和/或可以包括计算机相关实体或与计算机相关的具有一个或多个特定功能的可操作机器实体。本文公开的实体可以是硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用程序和服务器都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程中,并且一个组件可以位于一台计算机上和/或分布在两个或多个计算机之间。在另一个示例中,各个组件可以从其上存储有各种数据结构的各种计算机可读介质执行。组件可以例如根据具有一个或多个数据分组的信号经由本地和/或远程过程进行通信(例如,来自一个组件的数据与本地系统、分布式系统中和/或跨作为互联网通过信号与其他系统连接的网络的另一组件交互)。作为另一个示例,组件可以是具有由电气或电子电路操作的机械部件提供的特定功能的设备,该机械部件由处理器执行的软件或固件应用程序操作。在这种情况下,处理器可以在设备内部或外部,并且可以执行软件或固件应用程序的至少一部分。作为又一个示例,组件可以是通过不具有机械部件的电子组件提供特定功能的设备,其中电子组件可以包括处理器或其他装置,以执行至少部分地赋予电子组件功能的软件或固件。在一方面,组件可以经由虚拟机例如在云计算系统内仿真电子组件。
另外,术语“或”旨在表示包含性“或”而不是排他性“或”。也就是说,除非另有说明或从上下文可以清楚地看出,否则“X使用A或B”旨在表示任何自然的包含性排列。也就是说,如果X使用A;X使用B;或X使用A和B两者,则在上述任何情况下都满足“X使用A或B”。此外,在主题说明书和附图中使用的冠词“一”和“一个”通常应被解释为意指“一个或多个”,除非另有说明或从上下文清楚地理解为是单数形式。如本文所使用的,术语“示例”和/或“示例性”用于表示用作示例、实例或说明。为了避免疑问,本文公开的主题不受这些示例的限制。另外,本文中描述为“示例”和/或“示例性”的任何方面或设计不必被解释为比其他方面或设计优选或有利,也不意味着排除了那些本领域普通技术人员已知的等效示例性结构和技术。
如在本说明书中所采用的那样,术语“处理器”可以基本上指代任何计算处理单元或设备;包括但不限于单核处理器;具有软件多线程执行能力的单处理器;多核处理器;具有软件多线程执行能力的多核处理器;具有硬件多线程技术的多核处理器;并行平台;和具有分布式共享内存的并行平台。另外,处理器可以指集成电路、专用集成电路(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)。另外,本文公开的系统或计算机实现的方法的存储器组件旨在包括但不限于包括这些和任何其他合适类型的存储器。
上面已经描述的内容仅包括系统和计算机实现的方法的示例。当然,为了描述本发明的目的,不可能描述组件或计算机实现的方法的每种可能的组合,但是本领域的普通技术人员可以认识到,本发明的许多其他组合和置换是可能的。此外,在说明书、权利要求书、附录和附图中使用术语“包括”、“有”、“具有”等的程度时,这些术语旨在以类似于当在权利要求中被用作过渡词时术语“包括”被解释为“包括”。
已经出于说明的目的给出了本发明的各种实施例的描述,但并不意图是穷举性的或限于所公开的本发明的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变型对于本领域普通技术人员将是显而易见的。选择这里使用的术语是为了最好地解释本发明的实施例的原理,对市场上发现的技术的实际应用或对技术的改进,或者使本领域的其他普通技术人员能够理解这里公开的本发明的实施例。
Claims (15)
1.一种系统,包括
分区部件,所述分区部件基于为张量切片识别的至少两组量子位而将包括量子电路的机器可读规范的输入量子电路分区成为子电路,其中,所述子电路具有用于张量切片的相关量子位集;
仿真组件,所述仿真组件基于所述子电路将所述输入量子电路分阶段地仿真为仿真量子态张量,每个子电路一个阶段,其中与子电路相关的量子位集用于将所述输入量子电路的所述仿真量子态张量分区成为量子态张量切片,并且所述子电路中的量子门被用于将所述量子态张量切片更新为已更新量子态张量切片;以及
读写组件,所述读写组件将所述仿真量子态张量的所述已更新量子态张量切片作为微切片存储到辅助存储器。
2.根据权利要求1所述的系统,其中所述读写组件以跨越所述辅助存储器的至少两个磁盘扇区的大小来写入所述微切片,并且将进一步已更新量子态张量切片存储在所述辅助存储器中。
3.根据权利要求1所述的系统,其中所述读写组件从所述辅助存储器检索所述已更新量子态张量切片,并且其中所述仿真组件将另一子电路处理成其他子电路张量并用从所述辅助存储器中检索的所述已更新量子态张量切片更新所述其他子电路张量成为进一步已更新量子态张量切片。
4.根据权利要求1所述的系统,其中,所述分区部件将所述输入量子电路分区为与所述子电路相对应的量子位集,包括第一量子位分区组、第二量子位分区组、第三量子位分区组和第四量子位分区组,其中,所述仿真组件将所述第三量子位分区组的量子门应用于所述第一量子位分区组和所述第二量子位分区组的张量切片以获得所述已更新量子态张量,其中,所述读写组件从所述辅助存储器读取所述已更新量子态张量切片到存储器,并且其中所述仿真组件将所述第四量子位分区组的量子门应用于所述已更新量子态张量切片以获得进一步已更新量子态张量。
5.一种计算机实现的方法,包括:
通过可操作地耦合到处理器的设备处理包括量子电路的机器可读规范的输入量子电路,所述处理包括,
基于为张量切片所识别的至少两组量子位将所述输入量子电路分区为子电路组,其中,所述子电路组具有用于张量切片的相关量子位集;
基于所述子电路组将所述输入量子电路分阶段仿真为仿真量子态张量,每个子电路一个阶段,其中与子电路相关的量子位集用于将所述输入量子电路的所述仿真量子态张量分区为量子态张量切片,所述子电路中的量子门用于将所述量子态张量切片更新为已更新量子态张量切片;并且
将所述仿真量子态张量的所述已更新量子态张量切片作为微切片存储到辅助存储器。
6.根据权利要求5所述的计算机实现的方法,其特征在于将所述仿真量子态张量的所述已更新量子态张量切片作为微切片存储到辅助存储器器中包括将所述微切片存储在所述辅助存储器的至少两个磁盘扇区中。
7.根据权利要求5所述的计算机实现的方法,还包括:由所述设备将另一个子电路处理成其他子电路张量,从所述辅助存储器中检索所述已更新量子态张量切片,以及用从所述辅助存储器中检索到的所述已更新量子态张量切片更新所述其它子电路张量成为进一步已更新量子态张量切片。
8.根据权利要求7所述的计算机实现的方法,进一步包括:通过所述设备将所述进一步已更新量子态张量切片存储在所述辅助存储器中。
9.根据权利要求5所述的计算机实现的方法,其中将所述输入量子电路分区为所述子电路组包括将所述输入量子电路分区为第一子电路分区组、第二子电路分区组和第三子电路分区组,并且其中存储所述已更新量子态张量切片包括:将所述第三子电路分区组的门施加到与所述第一子电路分区组和所述第二子电路分区组相对应的张量切片上以得到所述已更新量子态张量切片。
10.根据权利要求9所述的计算机实现的方法,其中将所述输入量子电路分区为子电路组进一步包括:将所述输入量子电路分区为第四子电路分区组,并且进一步包括:从所述辅助存储器中检索所述已更新量子态张量切片,以及用从所述辅助存储器中检索到的所述已更新量子态张量切片将其他子电路张量更新为进一步已更新量子态张量切片,包括施加所述第四子电路分区组的门。
11.一种计算机实现的方法,包括:
通过可操作地耦合到处理器的设备来仿真包括量子电路的机器可读规范的输入量子电路,所述仿真包括:
基于为张量切片而识别的至少两组量子位将所述输入量子电路分区为多个元子电路,其中至少一个所述元子电路超过单个处理器的存储器;
将元子电路子分区为适合所述单个处理器的存储器的子-子电路;
计算所述子-子电路的张量;并且
通过张量切片将所述张量收缩成张量切片。
12.根据权利要求11所述的计算机实现的方法,进一步包括:由所述设备将另一子电路的门施加到所述张量切片,以获得表示量子态数据的已更新张量切片,以及将所述已更新张量切片存储在辅助存储器中。
13.根据权利要求12所述的计算机实现的方法,其特征在于,还包括:由所述设备从辅助存储器中检索所述已更新张量切片,将另一其他子电路的门施加到所述已更新张量切片以获得进一步已更新张量切片。
14.根据权利要求11所述的计算机实现的方法,其中,辅助存储器包括一个或多个磁盘设备,并且进一步包括:将合适的切片组织为微切片,其中所述微切片的大小跨越所述辅助存储器的至少两个磁盘扇区,并且,其中所述将已更新张量切片存储在所述辅助存储器中包括存储所述微切片。
15.一种用于仿真量子电路的计算机程序产品,其包括输入量子电路,所述输入量子电路包括量子电路的机器可读规范,所述计算机程序产品包括具有体现于其上的程序指令的一个或多个计算机可读存储介质,所述程序指令可由处理组件执行,使所述处理器执行根据权利要求5至14中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/974,326 | 2018-05-08 | ||
US15/974,326 US11100417B2 (en) | 2018-05-08 | 2018-05-08 | Simulating quantum circuits on a computer using hierarchical storage |
PCT/EP2019/059633 WO2019214907A1 (en) | 2018-05-08 | 2019-04-15 | Simulating quantum circuits on a computer using hierarchical storage |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112041859A true CN112041859A (zh) | 2020-12-04 |
Family
ID=66182592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980028977.5A Pending CN112041859A (zh) | 2018-05-08 | 2019-04-15 | 使用分层存储在计算机上仿真量子电路 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11100417B2 (zh) |
EP (1) | EP3791333A1 (zh) |
JP (2) | JP7240792B2 (zh) |
CN (1) | CN112041859A (zh) |
WO (1) | WO2019214907A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749809A (zh) * | 2021-01-14 | 2021-05-04 | 北京百度网讯科技有限公司 | 构造量子仿真系统的方法和装置 |
CN114091685A (zh) * | 2021-11-08 | 2022-02-25 | 北京百度网讯科技有限公司 | 深度学习框架的张量切分方法、装置、设备和存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11568293B2 (en) | 2018-07-18 | 2023-01-31 | Accenture Global Solutions Limited | Quantum formulation independent solver |
US11023638B2 (en) * | 2019-04-05 | 2021-06-01 | QC Ware Corp. | Method for reducing cost and increasing accuracy of variational quantum circuit optimization |
CN110765659A (zh) * | 2019-11-20 | 2020-02-07 | 大连理工大学 | 一种针对航空发动机故障诊断的支持三阶张量机建模方法 |
US20220092454A1 (en) * | 2020-09-24 | 2022-03-24 | Microsoft Technology Licensing, Llc | Mixing techniques for probabilistic quantum circuits with fallback |
CN112488317B (zh) * | 2020-11-27 | 2021-09-21 | 北京百度网讯科技有限公司 | 量子控制中的仿真方法、装置、经典计算机及存储介质 |
WO2023067727A1 (ja) * | 2021-10-20 | 2023-04-27 | 日本電信電話株式会社 | 量子コンピュータ検証装置及び方法 |
WO2023068464A1 (ko) * | 2021-10-21 | 2023-04-27 | 서울대학교산학협력단 | 저장장치를 이용한 양자 회로 시뮬레이션 시스템 및 그 동작 방법 |
CN114970865B (zh) * | 2022-05-25 | 2023-03-10 | 北京百度网讯科技有限公司 | 量子芯片上的量子电路处理方法、装置及电子设备 |
CN116167304B (zh) * | 2023-04-23 | 2023-07-25 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的油藏数值模拟gmres优化方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750945A (zh) * | 2015-04-17 | 2015-07-01 | 南通大学 | 一种量子电路仿真平台 |
US20170286858A1 (en) * | 2016-03-31 | 2017-10-05 | Board Of Regents, The University Of Texas System | System and method for emulation of a quantum computer |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353148B1 (en) | 2003-08-06 | 2008-04-01 | The United States Of America As Represented By The Secretary Of The Army | Generation of displays of solutions to physics problems represented by complex mathematical equations using quantum computations or simulation of quantum computations on classic computers |
US7657071B2 (en) * | 2005-04-11 | 2010-02-02 | Siemens Medical Solutions Usa, Inc. | Systems, devices, and methods for bundle segmentation in diffusion tensor magnetic resonance imaging |
US8209279B2 (en) * | 2007-09-07 | 2012-06-26 | Microsoft Corporation | Measurement-only topological quantum computation |
US9710586B2 (en) | 2012-07-02 | 2017-07-18 | Stellenbosch University | Automated state machine extraction for rapid-single flux-quantum circuits |
US20140026107A1 (en) | 2012-07-19 | 2014-01-23 | Microsoft Corporation | Method and system for optimal decomposition of single-qubit quantum circuits using standard quantum gates |
US9064067B2 (en) | 2012-08-06 | 2015-06-23 | Microsoft Technology Licensing, Llc | Quantum gate optimizations |
WO2015179753A1 (en) * | 2014-05-23 | 2015-11-26 | The Regents Of The University Of Michigan | Methods for general stabilizer-based quantum computing simulation |
WO2016168526A1 (en) * | 2015-04-14 | 2016-10-20 | University Of Utah Research Foundation | Advanced tensor decompositions for computational assessment and prediction from data |
JP6989387B2 (ja) | 2015-05-05 | 2022-01-05 | キンダイ、インコーポレイテッドKyndi, Inc. | 古典的なプロセッサで量子類似計算をエミュレートするためのquanton表現 |
AU2015413915B2 (en) | 2015-11-06 | 2019-09-12 | Google Llc | In-situ quantum error correction |
US10185916B2 (en) * | 2016-06-09 | 2019-01-22 | Raytheon Bbn Technologies Corp. | Quantum circuit for high dimensional schur transform |
WO2018165021A1 (en) * | 2017-03-10 | 2018-09-13 | Rigetti & Co., Inc. | Modular control in a quantum computing system |
US11188820B2 (en) * | 2017-09-08 | 2021-11-30 | International Business Machines Corporation | Deep neural network performance analysis on shared memory accelerator systems |
US11250190B2 (en) * | 2017-09-22 | 2022-02-15 | International Business Machines Corporation | Simulating quantum circuits |
US11093679B2 (en) * | 2018-03-14 | 2021-08-17 | International Business Machines Corporation | Quantum circuit decomposition by integer programming |
-
2018
- 2018-05-08 US US15/974,326 patent/US11100417B2/en active Active
-
2019
- 2019-04-15 EP EP19717899.9A patent/EP3791333A1/en not_active Withdrawn
- 2019-04-15 CN CN201980028977.5A patent/CN112041859A/zh active Pending
- 2019-04-15 WO PCT/EP2019/059633 patent/WO2019214907A1/en unknown
- 2019-04-15 JP JP2020549603A patent/JP7240792B2/ja active Active
-
2021
- 2021-07-19 US US17/378,853 patent/US20210342731A1/en active Pending
-
2022
- 2022-10-19 JP JP2022167975A patent/JP7481075B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750945A (zh) * | 2015-04-17 | 2015-07-01 | 南通大学 | 一种量子电路仿真平台 |
US20170286858A1 (en) * | 2016-03-31 | 2017-10-05 | Board Of Regents, The University Of Texas System | System and method for emulation of a quantum computer |
Non-Patent Citations (1)
Title |
---|
ANDERSON AVILA 等: "Optimizing D-GM quantum computing by exploring parallel and distributed quantum simulations under GPUs arquitecture", 2016 IEEE CONGRESS ON EVOLUTIONARY COMPUTATION (CEC), 1 July 2016 (2016-07-01), pages 5146 - 5153, XP055603464, DOI: 10.1109/CEC.2016.7748342 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749809A (zh) * | 2021-01-14 | 2021-05-04 | 北京百度网讯科技有限公司 | 构造量子仿真系统的方法和装置 |
CN112749809B (zh) * | 2021-01-14 | 2021-12-14 | 北京百度网讯科技有限公司 | 构造量子仿真系统的方法和装置 |
CN114091685A (zh) * | 2021-11-08 | 2022-02-25 | 北京百度网讯科技有限公司 | 深度学习框架的张量切分方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3791333A1 (en) | 2021-03-17 |
US20210342731A1 (en) | 2021-11-04 |
JP2021521504A (ja) | 2021-08-26 |
US20190347575A1 (en) | 2019-11-14 |
JP7481075B2 (ja) | 2024-05-10 |
JP7240792B2 (ja) | 2023-03-16 |
US11100417B2 (en) | 2021-08-24 |
JP2022191443A (ja) | 2022-12-27 |
WO2019214907A1 (en) | 2019-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7481075B2 (ja) | 階層型ストレージを使用したコンピュータ上の量子回路のシミュレーション | |
CN111052122B (zh) | 模拟量子电路 | |
Barbierato et al. | Performance evaluation of NoSQL big-data applications using multi-formalism models | |
Osher et al. | Laplacian smoothing gradient descent | |
WO2020151129A1 (zh) | 量子机器学习框架构建方法、装置、量子计算机及计算机存储介质 | |
US11586792B2 (en) | Scheduling fusion for quantum computing simulation | |
US11003811B2 (en) | Generating samples of outcomes from a quantum simulator | |
US11775721B2 (en) | Quantum circuit decomposition by integer programming | |
US11194554B2 (en) | Efficient quantum adaptive execution method for quantum circuits | |
Pednault et al. | Pareto-efficient quantum circuit simulation using tensor contraction deferral | |
Barbierato et al. | Modeling apache hive based applications in big data architectures | |
US20200104747A1 (en) | Local optimization of quantum circuits | |
Codish et al. | Sorting nine inputs requires twenty-five comparisons | |
JP7381723B2 (ja) | 量子操作実行方法及び装置、量子操作の制御波形の生成方法及び装置、量子操作チップ、並びにコンピュータ装置及びプログラム | |
US20210142197A1 (en) | Methods and systems for diverse instance generation in artificial intelligence planning | |
CN113544710A (zh) | 量子算法的编译 | |
US11080606B2 (en) | Parallelization techniques for variable selection and predictive models generation and its applications | |
Li et al. | An application-oblivious memory scheduling system for DNN accelerators | |
Jain | Towards Robust and Scalable Large Language Models | |
Hughey | Tumbling down the GraphBLAS rabbit hole with SHMEM | |
Marchal et al. | Minimizing i/os in out-of-core task tree scheduling | |
Witzke et al. | Proactive Resource Management to Optimize Distributed Workflow Executions | |
Song | Improving Distributed Graph Processing by Load Balancing and Redundancy Reduction | |
Meyer et al. | Linear programming on a GPU: a case study | |
Li | Reliability evaluation and optimal design of multi-state weighted systems |
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 |