2 """Mandatory workload planner surface validation. 4 Builds the required 2 to 4 qubit microcases and the structured noisy 5 `U3` / `CNOT` workload families, then verifies that all of them enter the same 6 canonical Phase 3 planner contract. 9 python benchmarks/density_matrix/planner_surface/mandatory_workload_surface_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 build_software_metadata
24 from benchmarks.density_matrix.planner_surface.workloads
import (
25 MANDATORY_NOISE_PATTERNS,
26 STRUCTURED_FAMILY_NAMES,
28 iter_microcase_surfaces,
29 iter_structured_surfaces,
31 from squander.partitioning.noisy_planner
import (
33 PLANNER_OP_KIND_NOISE,
36 SUITE_NAME =
"phase3_planner_surface_workload_surface" 37 ARTIFACT_FILENAME =
"mandatory_workload_surface_bundle.json" 38 DEFAULT_OUTPUT_DIR = (
39 REPO_ROOT /
"benchmarks" /
"density_matrix" /
"artifacts" /
"planner_surface" 41 ARTIFACT_CORE_FIELDS = (
52 payload = surface.to_dict()
54 "case_kind": case_kind,
55 "case_name": payload[
"workload_id"],
57 "requested_mode": payload[
"requested_mode"],
58 "source_type": payload[
"source_type"],
59 "workload_id": payload[
"workload_id"],
60 "qbit_num": payload[
"qbit_num"],
61 "operation_count": payload[
"operation_count"],
62 "gate_count": payload[
"gate_count"],
63 "noise_count": payload[
"noise_count"],
66 for op
in payload[
"operations"]
67 if op[
"kind"] == PLANNER_OP_KIND_GATE
71 for op
in payload[
"operations"]
72 if op[
"kind"] == PLANNER_OP_KIND_NOISE
74 "planner_operations": payload[
"operations"],
80 cases: list[dict] = []
84 cases.append(
_surface_case(
"structured_family", metadata, surface))
87 print(
"Mandatory workload planner surfaces:")
90 " {case_name}: q={qbit_num}, ops={operation_count}, gates={gate_count}, noise={noise_count}".format(
98 payload_key_sets = {frozenset(case.keys())
for case
in cases}
99 operation_key_sets = {
100 frozenset(case[
"planner_operations"][0].
keys())
for case
in cases
if case[
"planner_operations"]
102 passed_cases = sum(case[
"status"] ==
"pass" for case
in cases)
104 "suite_name": SUITE_NAME,
106 if passed_cases == len(cases)
and len(payload_key_sets) == 1
and len(operation_key_sets) == 1
108 "requested_mode":
"partitioned_density",
111 "total_cases": len(cases),
112 "passed_cases": passed_cases,
113 "microcase_count": sum(case[
"case_kind"] ==
"microcase" for case
in cases),
114 "structured_family_count": sum(
115 case[
"case_kind"] ==
"structured_family" for case
in cases
117 "required_structured_families": list(STRUCTURED_FAMILY_NAMES),
118 "required_structured_qubits": list(STRUCTURED_QUBITS),
119 "required_noise_patterns": list(MANDATORY_NOISE_PATTERNS),
120 "payload_schema_count": len(payload_key_sets),
121 "operation_schema_count": len(operation_key_sets),
125 missing = [field
for field
in ARTIFACT_CORE_FIELDS
if field
not in bundle]
128 "Mandatory workload surface bundle missing required fields: {}".format(
136 output_dir.mkdir(parents=
True, exist_ok=
True)
137 output_path = output_dir / ARTIFACT_FILENAME
138 output_path.write_text(json.dumps(bundle, indent=2, sort_keys=
True) +
"\n")
142 def main(argv: list[str] |
None =
None) -> int:
143 parser = argparse.ArgumentParser(description=__doc__)
147 default=DEFAULT_OUTPUT_DIR,
148 help=
"Directory to write the mandatory workload surface bundle into.",
153 help=
"Suppress per-case console output.",
155 args = parser.parse_args(argv)
162 print(
"Wrote {}".format(output_path))
164 return 0
if bundle[
"status"] ==
"pass" else 1
167 if __name__ ==
"__main__":
168 raise SystemExit(
main())
def build_artifact_bundle
def iter_structured_surfaces
def write_artifact_bundle
def build_software_metadata()
def iter_microcase_surfaces()