1 from __future__
import annotations
3 from time
import perf_counter
5 from benchmarks.density_matrix.partitioned_runtime.common
import build_initial_parameters
6 from benchmarks.density_matrix.planner_calibration.common
import (
8 build_planner_candidates,
10 from benchmarks.density_matrix.planner_surface.common
import (
11 build_phase2_continuity_vqe,
13 from benchmarks.density_matrix.planner_surface.workloads
import (
14 DEFAULT_STRUCTURED_SEED,
15 MANDATORY_NOISE_PATTERNS,
16 STRUCTURED_FAMILY_NAMES,
18 build_microcase_descriptor_set,
19 build_structured_descriptor_set,
20 mandatory_microcase_definitions,
22 from squander.partitioning.noisy_planner
import (
23 build_phase3_continuity_partition_descriptor_set,
26 PLANNER_CALIBRATION_CASE_KIND_CONTINUITY =
"continuity" 27 PLANNER_CALIBRATION_CASE_KIND_MICROCASE =
"microcase" 28 PLANNER_CALIBRATION_CASE_KIND_STRUCTURED =
"structured_family" 29 PLANNER_CALIBRATION_CONTINUITY_QUBITS = (4, 6, 8, 10)
30 DENSITY_SIGNAL_CONTINUITY_QUBITS = (4,)
31 DENSITY_SIGNAL_MICROCASE_IDS = (
"microcase_4q_partition_boundary_triplet",)
32 DENSITY_SIGNAL_STRUCTURED_FILTER = {
33 "family_name":
"layered_nearest_neighbor",
35 "noise_patterns": (
"sparse",
"dense"),
40 candidate: PlannerCandidate,
44 planning_time_ms: float,
45 family_name: str |
None =
None,
46 noise_pattern: str |
None =
None,
47 seed: int |
None =
None,
50 "candidate_id": candidate.candidate_id,
51 "planner_family": candidate.planner_family,
52 "planner_variant": candidate.planner_variant,
53 "max_partition_qubits": candidate.max_partition_qubits,
54 "case_kind": case_kind,
55 "source_type": descriptor_set.source_type,
56 "workload_family": descriptor_set.source_type,
57 "workload_id": descriptor_set.workload_id,
58 "qbit_num": descriptor_set.qbit_num,
59 "planning_time_ms": planning_time_ms,
60 "family_name": family_name,
61 "noise_pattern": noise_pattern,
67 candidates: tuple[PlannerCandidate, ...] |
None =
None,
72 for candidate
in active_candidates:
73 for qbit_num
in PLANNER_CALIBRATION_CONTINUITY_QUBITS:
75 start = perf_counter()
78 workload_id=f
"phase2_xxz_hea_q{qbit_num}_continuity",
79 max_partition_qubits=candidate.max_partition_qubits,
81 planning_time_ms = (perf_counter() - start) * 1000.0
86 case_kind=PLANNER_CALIBRATION_CASE_KIND_CONTINUITY,
87 planning_time_ms=planning_time_ms,
89 metadata[
"topology"] = topology
90 yield metadata, descriptor_set, parameters, hamiltonian
94 candidates: tuple[PlannerCandidate, ...] |
None =
None,
99 for candidate
in active_candidates:
101 start = perf_counter()
103 definition[
"case_name"],
104 max_partition_qubits=candidate.max_partition_qubits,
106 planning_time_ms = (perf_counter() - start) * 1000.0
110 case_kind=PLANNER_CALIBRATION_CASE_KIND_MICROCASE,
111 planning_time_ms=planning_time_ms,
112 noise_pattern=definition[
"noise_pattern"],
115 yield metadata, descriptor_set, parameters,
None 119 candidates: tuple[PlannerCandidate, ...] |
None =
None,
121 active_candidates = (
124 for candidate
in active_candidates:
125 for family_name
in STRUCTURED_FAMILY_NAMES:
126 for qbit_num
in STRUCTURED_QUBITS:
127 for noise_pattern
in MANDATORY_NOISE_PATTERNS:
128 start = perf_counter()
132 noise_pattern=noise_pattern,
133 seed=DEFAULT_STRUCTURED_SEED,
134 max_partition_qubits=candidate.max_partition_qubits,
136 planning_time_ms = (perf_counter() - start) * 1000.0
140 case_kind=PLANNER_CALIBRATION_CASE_KIND_STRUCTURED,
141 planning_time_ms=planning_time_ms,
142 family_name=family_name,
143 noise_pattern=noise_pattern,
144 seed=DEFAULT_STRUCTURED_SEED,
147 yield metadata, descriptor_set, parameters,
None 151 candidates: tuple[PlannerCandidate, ...] |
None =
None,
153 active_candidates = (
162 candidates: tuple[PlannerCandidate, ...] |
None =
None,
164 active_candidates = (
167 continuity_qbits = set(DENSITY_SIGNAL_CONTINUITY_QUBITS)
168 microcase_ids = set(DENSITY_SIGNAL_MICROCASE_IDS)
169 structured_noise_patterns = set(DENSITY_SIGNAL_STRUCTURED_FILTER[
"noise_patterns"])
174 if metadata[
"qbit_num"]
in continuity_qbits:
175 yield metadata, descriptor_set, parameters, hamiltonian
180 if metadata[
"workload_id"]
in microcase_ids:
181 yield metadata, descriptor_set, parameters, hamiltonian
187 metadata[
"family_name"] == DENSITY_SIGNAL_STRUCTURED_FILTER[
"family_name"]
188 and metadata[
"qbit_num"] == DENSITY_SIGNAL_STRUCTURED_FILTER[
"qbit_num"]
189 and metadata[
"noise_pattern"]
in structured_noise_patterns
191 yield metadata, descriptor_set, parameters, hamiltonian
def iter_planner_calibration_candidate_cases
def iter_density_signal_cases
def build_microcase_descriptor_set
def build_phase2_continuity_vqe
def mandatory_microcase_definitions()
def build_initial_parameters
def iter_planner_calibration_continuity_cases
def iter_planner_calibration_microcase_cases
def iter_planner_calibration_structured_cases
def build_phase3_continuity_partition_descriptor_set
def build_planner_candidates
def _metadata_from_descriptor
def build_structured_descriptor_set