Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
runtime_audit_validation.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 """Runtime audit validation: stable provenance and partition audit record shape.
3 
4 Emits one shared runtime-audit record across supported workload classes and
5 checks that provenance, runtime-path labels, summary fields, and partition
6 record shapes remain stable.
7 
8 Run with:
9  python benchmarks/density_matrix/partitioned_runtime/runtime_audit_validation.py
10 """
11 
12 from __future__ import annotations
13 
14 import argparse
15 import json
16 import sys
17 from pathlib import Path
18 
19 REPO_ROOT = Path(__file__).resolve().parents[3]
20 if str(REPO_ROOT) not in sys.path:
21  sys.path.insert(0, str(REPO_ROOT))
22 
23 from benchmarks.density_matrix.partitioned_runtime.common import build_initial_parameters
24 from benchmarks.density_matrix.planner_surface.common import (
25  build_phase2_continuity_vqe,
26  build_software_metadata,
27 )
28 from benchmarks.density_matrix.planner_surface.workloads import (
29  iter_microcase_descriptor_sets,
30  iter_structured_descriptor_sets,
31 )
32 from squander.partitioning.noisy_planner import build_phase3_continuity_partition_descriptor_set
33 from squander.partitioning.noisy_runtime import (
34  build_runtime_audit_record,
35  execute_partitioned_density,
36 )
37 
38 SUITE_NAME = "phase3_partitioned_runtime_runtime_audit"
39 ARTIFACT_FILENAME = "runtime_audit_bundle.json"
40 DEFAULT_OUTPUT_DIR = (
41  REPO_ROOT
42  / "benchmarks"
43  / "density_matrix"
44  / "artifacts"
45  / "partitioned_runtime"
46  / "runtime_audit"
47 )
48 ARTIFACT_CORE_FIELDS = (
49  "suite_name",
50  "status",
51  "software",
52  "summary",
53  "cases",
54 )
55 
56 
57 def _audit_case(descriptor_set, metadata: dict) -> dict:
58  parameters = build_initial_parameters(descriptor_set.parameter_count)
59  runtime_result = execute_partitioned_density(descriptor_set, parameters)
60  audit = build_runtime_audit_record(runtime_result, metadata=metadata)
61  audit["case_name"] = audit["provenance"]["workload_id"]
62  return audit
63 
64 
65 def build_cases() -> list[dict]:
66  continuity_vqe, _, _ = build_phase2_continuity_vqe(4)
67  continuity_audit = _audit_case(
69  {"case_kind": "continuity"},
70  )
71  micro_metadata, micro_descriptor_set = next(iter(iter_microcase_descriptor_sets()))
72  micro_audit = _audit_case(micro_descriptor_set, micro_metadata)
73  structured_metadata, structured_descriptor_set = next(
75  )
76  structured_audit = _audit_case(structured_descriptor_set, structured_metadata)
77  return [continuity_audit, micro_audit, structured_audit]
78 
79 
80 def build_artifact_bundle(cases: list[dict]) -> dict:
81  top_level_keys = {frozenset(case.keys()) for case in cases}
82  summary_key_sets = {frozenset(case["summary"].keys()) for case in cases}
83  partition_key_sets = {
84  frozenset(case["partitions"][0].keys()) for case in cases if case["partitions"]
85  }
86  runtime_paths = {case["runtime_path"] for case in cases}
87  bundle = {
88  "suite_name": SUITE_NAME,
89  "status": "pass"
90  if len(top_level_keys) == 1
91  and len(summary_key_sets) == 1
92  and len(partition_key_sets) == 1
93  and len(runtime_paths) == 1
94  else "fail",
95  "software": build_software_metadata(),
96  "summary": {
97  "total_cases": len(cases),
98  "top_level_schema_count": len(top_level_keys),
99  "summary_schema_count": len(summary_key_sets),
100  "partition_schema_count": len(partition_key_sets),
101  "runtime_path_count": len(runtime_paths),
102  "continuity_cases": sum(
103  case["metadata"].get("case_kind") == "continuity" for case in cases
104  ),
105  "methods_cases": sum(
106  case["metadata"].get("case_kind")
107  in {"microcase", "structured_family"}
108  for case in cases
109  ),
110  },
111  "cases": cases,
112  }
113  missing = [field for field in ARTIFACT_CORE_FIELDS if field not in bundle]
114  if missing:
115  raise ValueError(
116  "Runtime audit bundle missing required fields: {}".format(
117  ", ".join(missing)
118  )
119  )
120  return bundle
121 
122 
123 def write_artifact_bundle(bundle: dict, output_dir: Path = DEFAULT_OUTPUT_DIR) -> Path:
124  output_dir.mkdir(parents=True, exist_ok=True)
125  output_path = output_dir / ARTIFACT_FILENAME
126  output_path.write_text(json.dumps(bundle, indent=2, sort_keys=True) + "\n")
127  return output_path
128 
129 
130 def main(argv: list[str] | None = None) -> int:
131  parser = argparse.ArgumentParser(description=__doc__)
132  parser.add_argument(
133  "--output-dir",
134  type=Path,
135  default=DEFAULT_OUTPUT_DIR,
136  help="Directory to write the runtime audit bundle into.",
137  )
138  parser.add_argument(
139  "--quiet",
140  action="store_true",
141  help="Suppress per-case console output.",
142  )
143  args = parser.parse_args(argv)
144 
145  cases = build_cases()
146  bundle = build_artifact_bundle(cases)
147  output_path = write_artifact_bundle(bundle, output_dir=args.output_dir)
148 
149  if not args.quiet:
150  for case in cases:
151  print(
152  "{case_name}: runtime_path={runtime_path}, partitions={partition_count}".format(
153  case_name=case["case_name"],
154  runtime_path=case["runtime_path"],
155  partition_count=case["summary"]["partition_count"],
156  )
157  )
158  print("Wrote {}".format(output_path))
159 
160  return 0 if bundle["status"] == "pass" else 1
161 
162 
163 if __name__ == "__main__":
164  raise SystemExit(main())
def build_phase2_continuity_vqe
def build_phase3_continuity_partition_descriptor_set
def build_software_metadata()