2 """Mandatory workload partition-descriptor validation. 4 Builds one continuity-reference descriptor case plus the required 2 to 4 qubit 5 microcases and structured noisy `U3` / `CNOT` workload families, then verifies 6 that all of them emit the same partition-descriptor schema. 9 python benchmarks/density_matrix/planner_surface/mandatory_workload_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 (
24 build_phase2_continuity_vqe,
25 build_software_metadata,
27 from benchmarks.density_matrix.planner_surface.workloads
import (
28 MANDATORY_NOISE_PATTERNS,
29 STRUCTURED_FAMILY_NAMES,
31 iter_microcase_descriptor_sets,
32 iter_structured_descriptor_sets,
34 from squander.partitioning.noisy_planner
import build_phase3_continuity_partition_descriptor_set
36 SUITE_NAME =
"phase3_planner_surface_workload_descriptors" 37 ARTIFACT_FILENAME =
"mandatory_workload_descriptor_bundle.json" 38 DEFAULT_OUTPUT_DIR = (
44 /
"mandatory_workload" 46 ARTIFACT_CORE_FIELDS = (
57 payload = descriptor_set.to_dict()
59 "case_kind": case_kind,
60 "case_name": payload[
"workload_id"],
62 "requested_mode": payload[
"requested_mode"],
63 "source_type": payload[
"source_type"],
64 "workload_id": payload[
"workload_id"],
65 "qbit_num": payload[
"qbit_num"],
66 "partition_count": payload[
"partition_count"],
67 "descriptor_member_count": payload[
"descriptor_member_count"],
68 "gate_count": payload[
"gate_count"],
69 "noise_count": payload[
"noise_count"],
70 "max_partition_qubits": payload[
"max_partition_qubits"],
71 "max_partition_span": payload[
"max_partition_span"],
72 "partition_member_counts": payload[
"partition_member_counts"],
73 "descriptor_partitions": payload[
"partitions"],
79 cases: list[dict] = []
87 "continuity_reference",
88 {
"qbit_num": 4,
"workload_id": continuity_descriptor_set.workload_id},
89 continuity_descriptor_set,
96 cases.append(
_descriptor_case(
"structured_family", metadata, descriptor_set))
99 print(
"Mandatory workload partition descriptors:")
102 " {case_name}: q={qbit_num}, partitions={partition_count}, members={descriptor_member_count}".format(
110 payload_key_sets = {frozenset(case.keys())
for case
in cases}
111 partition_key_sets = {
112 frozenset(case[
"descriptor_partitions"][0].
keys())
114 if case[
"descriptor_partitions"]
117 frozenset(case[
"descriptor_partitions"][0][
"members"][0].
keys())
119 if case[
"descriptor_partitions"]
and case[
"descriptor_partitions"][0][
"members"]
121 passed_cases = sum(case[
"status"] ==
"pass" for case
in cases)
123 "suite_name": SUITE_NAME,
125 if passed_cases == len(cases)
126 and len(payload_key_sets) == 1
127 and len(partition_key_sets) == 1
128 and len(member_key_sets) == 1
130 "requested_mode":
"partitioned_density",
133 "total_cases": len(cases),
134 "passed_cases": passed_cases,
135 "continuity_reference_count": sum(
136 case[
"case_kind"] ==
"continuity_reference" for case
in cases
138 "microcase_count": sum(case[
"case_kind"] ==
"microcase" for case
in cases),
139 "structured_family_count": sum(
140 case[
"case_kind"] ==
"structured_family" for case
in cases
142 "required_structured_families": list(STRUCTURED_FAMILY_NAMES),
143 "required_structured_qubits": list(STRUCTURED_QUBITS),
144 "required_noise_patterns": list(MANDATORY_NOISE_PATTERNS),
145 "payload_schema_count": len(payload_key_sets),
146 "partition_schema_count": len(partition_key_sets),
147 "member_schema_count": len(member_key_sets),
151 missing = [field
for field
in ARTIFACT_CORE_FIELDS
if field
not in bundle]
154 "Mandatory workload descriptor bundle missing required fields: {}".format(
162 output_dir.mkdir(parents=
True, exist_ok=
True)
163 output_path = output_dir / ARTIFACT_FILENAME
164 output_path.write_text(json.dumps(bundle, indent=2, sort_keys=
True) +
"\n")
168 def main(argv: list[str] |
None =
None) -> int:
169 parser = argparse.ArgumentParser(description=__doc__)
173 default=DEFAULT_OUTPUT_DIR,
174 help=
"Directory to write the mandatory workload descriptor bundle into.",
179 help=
"Suppress per-case console output.",
181 args = parser.parse_args(argv)
188 print(
"Wrote {}".format(output_path))
190 return 0
if bundle[
"status"] ==
"pass" else 1
193 if __name__ ==
"__main__":
194 raise SystemExit(
main())
def build_artifact_bundle
def build_phase2_continuity_vqe
def write_artifact_bundle
def iter_structured_descriptor_sets
def build_phase3_continuity_partition_descriptor_set
def build_software_metadata()
def iter_microcase_descriptor_sets