本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
比较模拟器
本节通过描述一些概念、限制和用例,帮助您选择最适合您的量子任务的 Amazon Braket 仿真器。
在本地模拟器和按需模拟器之间进行选择 (SV1,,TN1) DM1
本地模拟器的性能取决于托管本地环境的硬件,例如用于运行模拟器的 Braket 笔记本实例。按需模拟器在 AWS 云端运行,旨在超越典型的本地环境。按需模拟器针对较大的电路进行了优化,但是每个量子任务或批量子任务会增加一些延迟开销。如果涉及许多量子任务,这可能意味着需要权衡取舍。鉴于这些一般性能特征,以下指导可以帮助您选择如何运行模拟,包括带有噪声的仿真。
对于模拟:
-
如果员工人数少于 18 人qubits,请使用本地模拟器。
-
使用 18-24 时qubits,请根据工作负载选择模拟器。
-
当雇用人数超过 24 人时qubits,请使用按需模拟器。
对于噪声模拟:
-
当雇用少于 9 人时qubits,请使用本地模拟器。
-
使用 9-12 时qubits,请根据工作负载选择模拟器。
-
如果雇用人数超过 12 人qubits,请使用DM1。
什么是状态向量模拟器?
SV1是一个通用的状态向量模拟器。它存储量子态的全波函数,并按顺序将栅极运算应用于该状态。它存储了所有可能性,即使是极不可能的也是如此。SV1模拟器执行量子任务的运行时间随着电路中门的数量而线性增加。
什么是密度矩阵模拟器?
DM1用噪声模拟量子电路。它存储系统的全密度矩阵,并按顺序应用电路的栅极和噪声运算。最终的密度矩阵包含有关电路运行后量子态的完整信息。运行时间通常随操作数线性扩展,随操作数呈指数级扩展。qubits
什么是张量网络模拟器?
TN1将量子电路编码成结构化图。
-
图的节点由量子门组成,或qubits。
-
图形的边缘表示大门之间的连接。
由于这种结构,TN1可以为相对较大和复杂的量子电路找到仿真解。
TN1需要两个阶段
通常,TN1采用两阶段方法来模拟量子计算。
-
排练阶段:在这个阶段,TN1想出一种高效地遍历图表的方法,包括访问每个节点,这样你就可以获得你想要的测量结果。作为客户,您看不到此阶段,因为您可以同时TN1执行这两个阶段。它完成了第一阶段,并根据实际限制决定是否单独执行第二阶段。在模拟开始后,您对该决定没有任何意见。
-
收缩阶段:此阶段类似于经典计算机中计算的执行阶段。该阶段由一系列矩阵乘法组成。这些乘法的顺序对计算难度有很大的影响。因此,首先要完成排练阶段,以便在图中找到最有效的计算路径。在排练阶段找到收缩路径后,将电路的大门收TN1缩在一起以生成仿真结果。
TN1图表类似于地图
比喻地说,你可以将底层TN1图表与城市的街道进行比较。在采用规划网格的城市中,使用地图可以很容易地找到通往目的地的路线。在一个街道计划外、街道名称重复等的城市中,通过查看地图可能很难找到通往目的地的路线。
如果TN1没有进行排练阶段,那就像在城市的街道上漫步寻找目的地,而不是先看地图。就步行时间而言,花更多的时间看地图确实可以获得回报。同样,排练阶段也提供了有价值的信息。
你可能会说,它对它所TN1穿越的底层电路的结构有一定的 “意识”。它在排练阶段获得了这种意识。
问题类型最适合每种类型的模拟器
SV1非常适合于主要依赖于具有一定数量的qubits和门的任何类别的问题。通常,所需时间会随着门数的增加而线性增长,而不取决于门的shots数量。 SV1通常比 28 岁以下TN1的电路快qubits。
SV1对于较高的qubit数字,可能会变慢,因为它实际上模拟了所有可能性,即使是极不可能的也是如此。它无法确定可能出现哪些结果。因此,要进行30-qubit评估,SV1必须计算 2^30 个配置。由于内存和存储限制,AmazonBraket SV1 模拟器的限制为 34 qubits 是一个实际限制。你可以这样想:每当你qubit向中添加一个SV1,问题就会变得困难两倍。
对于许多类别的问题,与利用图的结构相比SV1,TN1可以在现实时间内评估更大的电路。TN1它本质上是从一开始就跟踪解决方案的演变,并且仅保留有助于高效遍历的配置。换句话说,它保存配置以创建矩阵乘法的顺序,从而简化计算过程。
因为TN1,qubits和门的数量很重要,但图表的结构更重要。例如,非常擅长评估栅极为短TN1距离的电路(图表)(也就是说,每个qubit门仅通过栅极连接到其最近的邻居qubits),以及连接(或门)具有相似范围的电路(图表)。的典型范围TN1是让每人只qubit与 5 点qubits之外的其他qubits人交谈。如果结构的大部分可以分解为更简单的关系,例如这些关系,可以用更多、更小或更均匀的矩阵表示,则可以轻松地TN1进行评估。
的局限性 TN1
TN1可能比SV1根据图表的结构复杂度慢一些。对于某些图表,由于以下两个原因之一,会在排练阶段结束后TN1终止仿真并显示状态:FAILED
-
找不到路径 — 如果图形太复杂,则很难找到一条好的遍历路径,模拟器就会放弃计算。 TN1无法进行收缩。您可能会看到类似于以下内容的错误消息:
No viable contraction path found.
-
收缩阶段太困难了 — 在某些图表中,TN1可以找到遍历路径,但是评估起来非常漫长且非常耗时。在这种情况下,收缩非常昂贵,以至于成本高得令人望而却步,而是在排练阶段之后TN1退出。您可能会看到类似于以下内容的错误消息:
Predicted runtime based on best contraction path found exceeds TN1 limit.
注意
TN1即使没有进行收缩并且您会看到状态,您也需要支付排练阶段的费用。FAILED
预测的运行时间也取决于shot计数。在最坏的情况下,TN1收缩时间线性地取决于计数。shot该电路可以用更少shots的钱进行合约。例如,您可以提交一个包含 100 的量子任务shots,该任务TN1决定不可合约,但是如果您只有 10 的量子任务重新提交,则会继续收缩。在这种情况下,要获得 100 个样本,你可以shots为同一电路提交 10 个 10 个量子任务,最后合并结果。
作为最佳实践,我们建议您始终使用几个shots(例如 10)来测试您的电路或电路等级,以了解您的电路有多难TN1,然后再继续使用更高的数量shots。
注意
形成收缩阶段的一系列乘法从小的 nxN 矩阵开始。例如,2-qubit门需要一个 4x4 矩阵。在被判定为过于困难的收缩期间所需的中间矩阵是巨大的。这样的计算需要几天才能完成。这就是为什么 Amazon Braket 不尝试极其复杂的收缩的原因。
并发
所有 Braket 模拟器都允许您同时运行多个电路。并发限制因模拟器和区域而异。有关并发限制的更多信息,请参阅配额页面。