2 """Continuity partition-descriptor validation. 4 Builds the required 4, 6, 8, and 10 qubit Phase 2 continuity-anchor workloads 5 and verifies that each one emits a conforming partition-descriptor set through 6 the continuity entry route. 9 python benchmarks/density_matrix/planner_surface/continuity_descriptor_validation.py 12 from __future__
import annotations
17 from pathlib
import Path
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))
23 from benchmarks.density_matrix.planner_surface.common
import (
25 build_phase2_continuity_vqe,
26 build_software_metadata,
28 from squander.partitioning.noisy_planner
import (
29 DEFAULT_PARTITION_DESCRIPTOR_MAX_QUBITS,
30 build_phase3_continuity_partition_descriptor_set,
33 SUITE_NAME =
"phase3_planner_surface_continuity_descriptors" 34 ARTIFACT_FILENAME =
"continuity_descriptor_bundle.json" 35 DEFAULT_OUTPUT_DIR = (
41 /
"continuity_descriptor" 43 REQUIRED_QUBITS = (4, 6, 8, 10)
44 ARTIFACT_CORE_FIELDS = (
57 payload = descriptor_set.to_dict()
62 density_noise=[dict(item)
for item
in vqe.density_noise],
66 "case_name": f
"phase2_xxz_hea_q{qbit_num}_continuity",
67 "case_kind":
"phase3_planner_surface_continuity_descriptors",
69 "requested_mode": payload[
"requested_mode"],
70 "source_type": payload[
"source_type"],
71 "workload_id": payload[
"workload_id"],
72 "parameter_count": payload[
"parameter_count"],
73 "partition_count": payload[
"partition_count"],
74 "descriptor_member_count": payload[
"descriptor_member_count"],
75 "gate_count": payload[
"gate_count"],
76 "noise_count": payload[
"noise_count"],
77 "max_partition_qubits": payload[
"max_partition_qubits"],
78 "max_partition_span": payload[
"max_partition_span"],
79 "partition_member_counts": payload[
"partition_member_counts"],
80 "continuity_descriptor_pass": (
81 payload[
"partition_count"] > 0
82 and payload[
"descriptor_member_count"]
83 == payload[
"gate_count"] + payload[
"noise_count"]
84 and payload[
"max_partition_qubits"]
85 == DEFAULT_PARTITION_DESCRIPTOR_MAX_QUBITS
87 "descriptor_partitions": payload[
"partitions"],
94 passed_cases = sum(case[
"status"] ==
"pass" for case
in cases)
95 descriptor_passes = sum(case[
"continuity_descriptor_pass"]
for case
in cases)
97 "suite_name": SUITE_NAME,
99 if passed_cases == len(cases)
and descriptor_passes == len(cases)
101 "requested_mode":
"partitioned_density",
104 "total_cases": len(cases),
105 "passed_cases": passed_cases,
106 "continuity_descriptor_passes": descriptor_passes,
107 "required_qubits": list(REQUIRED_QUBITS),
108 "required_pass_rate": 1.0,
109 "actual_pass_rate": passed_cases / len(cases)
if cases
else 0.0,
113 missing = [field
for field
in ARTIFACT_CORE_FIELDS
if field
not in bundle]
116 "Continuity descriptor bundle missing required fields: {}".format(
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")
133 print(
"Continuity partition descriptors:")
136 " q={qbit_num}: partitions={partition_count}, members={descriptor_member_count}, span={max_partition_span}, continuity_pass={continuity_descriptor_pass}".format(
143 def main(argv: list[str] |
None =
None) -> int:
144 parser = argparse.ArgumentParser(description=__doc__)
148 default=DEFAULT_OUTPUT_DIR,
149 help=
"Directory to write the continuity descriptor bundle into.",
154 help=
"Suppress per-case console output.",
156 args = parser.parse_args(argv)
163 print(
"Wrote {}".format(output_path))
165 return 0
if bundle[
"status"] ==
"pass" else 1
168 if __name__ ==
"__main__":
169 raise SystemExit(
main())
def build_phase2_continuity_vqe
def write_artifact_bundle
def build_phase3_continuity_partition_descriptor_set
def build_software_metadata()
def build_artifact_bundle