使用 Amazon Braket 混合作业运行混合作业 - Amazon Braket

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon Braket 混合作业运行混合作业

要使用 Amazon Braket 混合作业运行混合作业,您首先需要定义算法。您可以通过使用 Amazon Braket Python 编写算法脚本以及其他依赖文件来定义它,也可以使用 Amazon Braket Python 或SDKPennyLane如果您想使用其他(开源或专有)库,则可以使用 Docker 定义自己的自定义容器镜像,其中包括这些库。有关更多信息,请参阅自带容器 (BYOC)

无论哪种情况,接下来都要使用 Amazon Braket 创建混合作业 API,您可以在其中提供算法脚本或容器,选择混合作业要使用的目标量子设备,然后从各种可选设置中进行选择。为这些可选设置提供的默认值适用于大多数用例。要让目标设备运行 Hybrid JobQPU,你可以在按需模拟器(例如 SV1, DM1 或者 TN1),或者经典的混合作业实例本身。使用按需模拟器或QPU,您的混合作业容器可以API调用远程设备。使用嵌入式仿真器,仿真器与算法脚本嵌入在同一个容器中。中的闪电模拟 PennyLane 器嵌入了默认的预建混合作业容器供您使用。如果您使用嵌入式 PennyLane 模拟器或自定义模拟器运行代码,则可以指定实例类型以及要使用的实例数量。有关每种选择的相关费用,请参阅 Amazon Braket 定价页面

流程图显示了用户与 Amazon Braket 组件API、任务实例以及混合任务QPU、按需任务和嵌入式任务的模拟器的交互。结果存储在亚马逊简单存储服务存储桶中,并使用亚马逊在 Amazon Braket 控制台 CloudWatch 上进行分析。

如果您的目标设备是按需模拟器或嵌入式模拟器,Amazon Braket 会立即开始运行混合任务。它会启动混合作业实例(您可以在中自定义实例类型 API call),运行您的算法,将结果写入 Amazon S3,然后释放您的资源。此版本的资源可确保您只需为实际使用的资源付费。

每个量子处理单元 (QPU) 的并发混合作业总数受到限制。如今,任何给定时间都只能QPU在上运行一个混合作业。队列用于控制允许运行的混合作业的数量,以免超过允许的限制。如果您的目标设备是QPU,则您的混合作业将首先进入选定任务的任务队列QPU。Amazon Braket 启动所需的混合作业实例,并在设备上运行您的混合作业。在算法持续时间内,您的混合作业具有优先访问权限,这意味着混合作业中的量子任务优先于设备上排队的其他 Braket 量子任务,前提是该作业的量子任务每隔几分钟提交QPU一次。混合任务完成后,资源就会被释放,这意味着您只需为实际使用的资源付费。

注意

设备是区域性的,您的混合任务与主设备在 AWS 区域 同一设备上运行。

在模拟器和QPU目标场景中,您都可以选择将自定义算法指标(例如哈密顿能量)定义为算法的一部分。这些指标会自动报告给亚马逊, CloudWatch 然后在亚马逊Braket控制台中以近乎实时的方式显示。

注意

如果您想使用GPU基于的实例,请务必使用 Braket 上嵌入式模拟器中可用的GPU基于的模拟器之一(例如)。lightning.gpu如果您选择其中一个CPU基于嵌入式模拟器(例如lightning.qubit、或braket:default-simulator),则GPU不会使用,并且可能会产生不必要的成本。