跳转至

05 执行 Bundle 模型

目的

本章定义基于 Bundle 的执行工件模型。

核心规则

程序执行必须表示为一组协同工件,而不是单一文本文件。Bundle 是执行、回放、审计与交换的规范性交付单元。

参考 Word 草案明确建议使用 Bundle,而不是把单独的 .qasm 文件当作完整交付物。本仓库将这一点保留为规范性架构规则。

Bundle 组成

v0.1 的执行 Bundle 以以下内容为中心:

  • canonical UQCI program
  • manifest.json
  • devicespec.json
  • calset.json
  • 可选的 pulseir.json
  • 可选的兼容导出,如 program.qasm

只要保持版本清楚且不模糊 required artifact 的角色,Bundle 中也可以附带其他补充性元数据工件。

Manifest 的角色

Manifest 是工件清单与入口描述文件。它标识 Bundle 版本、profile 上下文、工件路径、完整性相关元数据以及可选目标信息。

在实际工具链中,Manifest 可以为交换或执行流指定一个主要入口工件;但这一便利性不应改变更深层的原则,即 UQCI IR 仍然是语义真源。

Sidecar 语义

如果执行依赖设备约束或校准状态,那么 DeviceSpecCalSet 不是可选注释,而是完成执行上下文所需的规范性 sidecar。

它们的角色分工如下:

  • DeviceSpec 描述设备能力与约束边界
  • CalSet 描述版本化运行时校准上下文
  • Manifest 描述 Bundle 本身作为可审计、可转移工件的组织形式

Bundle 目标

Bundle 模型用于支持:

  • 程序可交换
  • 执行前提可验证
  • 结果可追踪
  • 失败后可回放、可调试、可审计

推荐目录形态

参考草案给出了一种简洁的 Bundle 目录形态,包括程序入口、Manifest、设备描述、校准集以及可选的 pulseir 与 metadata 文件。仓库实现可以在文件名上做出局部调整,但其概念结构应保持可识别、可追踪、可审计。

与兼容导出的关系

当 Bundle 中包含 OpenQASM 文件时,该文件仍是兼容工件。canonical 真源仍然是 UQCI program 及其规范性 sidecar。

这一点对 OQ-0 到 OQ-X 的导出流程尤其重要。Bundle 可以携带 OpenQASM 以服务交换、检查或工具链集成,但执行语义仍需由 sidecar 工件共同补足。

实用性约束

v0.1 中的执行 Bundle 应保持务实。它需要足够丰富,以保留执行前提与互操作语义;但也不应膨胀到把所有实验性工件都定义成强制项。

相关章节