05 执行 Bundle 模型¶
目的¶
本章定义基于 Bundle 的执行工件模型。
核心规则¶
程序执行必须表示为一组协同工件,而不是单一文本文件。Bundle 是执行、回放、审计与交换的规范性交付单元。
参考 Word 草案明确建议使用 Bundle,而不是把单独的 .qasm 文件当作完整交付物。本仓库将这一点保留为规范性架构规则。
Bundle 组成¶
v0.1 的执行 Bundle 以以下内容为中心:
- canonical UQCI program
manifest.jsondevicespec.jsoncalset.json- 可选的
pulseir.json - 可选的兼容导出,如
program.qasm
只要保持版本清楚且不模糊 required artifact 的角色,Bundle 中也可以附带其他补充性元数据工件。
Manifest 的角色¶
Manifest 是工件清单与入口描述文件。它标识 Bundle 版本、profile 上下文、工件路径、完整性相关元数据以及可选目标信息。
在实际工具链中,Manifest 可以为交换或执行流指定一个主要入口工件;但这一便利性不应改变更深层的原则,即 UQCI IR 仍然是语义真源。
Sidecar 语义¶
如果执行依赖设备约束或校准状态,那么 DeviceSpec 与 CalSet 不是可选注释,而是完成执行上下文所需的规范性 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 应保持务实。它需要足够丰富,以保留执行前提与互操作语义;但也不应膨胀到把所有实验性工件都定义成强制项。