1 from __future__
import annotations
6 from dataclasses
import dataclass
7 from functools
import lru_cache
8 from pathlib
import Path
9 from typing
import Any, Iterable
11 REPO_ROOT = Path(__file__).resolve().parents[3]
12 if str(REPO_ROOT)
not in sys.path:
13 sys.path.insert(0, str(REPO_ROOT))
15 from benchmarks.density_matrix.correctness_evidence.common
import (
16 CORRECTNESS_PACKAGE_SCHEMA_VERSION,
17 build_selected_candidate,
19 from benchmarks.density_matrix.evidence_io
import write_artifact_bundle
20 from benchmarks.density_matrix.planner_surface.common
import (
21 build_software_metadata,
23 from benchmarks.density_matrix.planner_surface.workloads
import (
24 DEFAULT_STRUCTURED_SEED,
27 from squander.partitioning.noisy_runtime
import (
28 execute_sequential_density_reference,
31 PERFORMANCE_EVIDENCE_CASE_SCHEMA_VERSION =
"performance_evidence_record_v1" 32 PERFORMANCE_EVIDENCE_BENCHMARK_PACKAGE_SCHEMA_VERSION =
"performance_evidence_package_v1" 33 PERFORMANCE_EVIDENCE_SUMMARY_SCHEMA_VERSION =
"performance_evidence_summary_v1" 34 PERFORMANCE_EVIDENCE_PHASE31_CASE_SCHEMA_VERSION =
"performance_evidence_phase31_record_v1" 36 PERFORMANCE_EVIDENCE_BENCHMARK_SLICE_CONTINUITY =
"continuity_anchor" 37 PERFORMANCE_EVIDENCE_BENCHMARK_SLICE_STRUCTURED =
"structured_performance" 39 PERFORMANCE_EVIDENCE_REFERENCE_BACKEND_INTERNAL =
"sequential_density_descriptor_reference" 40 PERFORMANCE_EVIDENCE_REFERENCE_BACKEND_EXTERNAL =
"qiskit_aer_density_matrix" 42 PERFORMANCE_EVIDENCE_STATUS_COUNTED =
"counted_supported" 43 PERFORMANCE_EVIDENCE_STATUS_DIAGNOSIS_ONLY =
"diagnosis_only" 44 PERFORMANCE_EVIDENCE_STATUS_EXCLUDED =
"excluded" 45 PERFORMANCE_EVIDENCE_STATUS_NOT_REVIEW_CASE =
"not_review_case" 47 PERFORMANCE_EVIDENCE_PRIMARY_STRUCTURED_SEED = DEFAULT_STRUCTURED_SEED
48 PERFORMANCE_EVIDENCE_ADDITIONAL_STRUCTURED_SEEDS = (
49 DEFAULT_STRUCTURED_SEED + 1,
50 DEFAULT_STRUCTURED_SEED + 2,
52 PERFORMANCE_EVIDENCE_REVIEW_NOISE_PATTERN =
"sparse" 53 PERFORMANCE_EVIDENCE_REPETITIONS = 3
55 PHASE31_COUNTED_BUILD_POLICY_ID =
"phase31_scalar_only_v1" 56 PHASE31_COUNTED_BUILD_FLAVOR =
"scalar" 57 PHASE31_COUNTED_SIMD_ENABLED =
False 58 PHASE31_COUNTED_TBB_ENABLED =
False 59 PHASE31_COUNTED_THREAD_COUNT = 1
60 PHASE31_COUNTED_CLAIM_BUILD =
True 62 DEFAULT_OUTPUT_ROOT = (
63 REPO_ROOT /
"benchmarks" /
"density_matrix" /
"artifacts" /
"performance_evidence" 71 return DEFAULT_OUTPUT_ROOT / slice_dir_name
76 "build_policy_id": PHASE31_COUNTED_BUILD_POLICY_ID,
77 "build_flavor": PHASE31_COUNTED_BUILD_FLAVOR,
78 "simd_enabled": PHASE31_COUNTED_SIMD_ENABLED,
79 "tbb_enabled": PHASE31_COUNTED_TBB_ENABLED,
80 "thread_count": PHASE31_COUNTED_THREAD_COUNT,
81 "counted_claim_build": PHASE31_COUNTED_CLAIM_BUILD,
88 metadata[
"correctness_evidence_package_schema_version"] = CORRECTNESS_PACKAGE_SCHEMA_VERSION
94 from benchmarks.density_matrix.correctness_evidence.bundle
import (
95 build_correctness_package_payload,
99 return {case[
"workload_id"]: dict(case)
for case
in payload[
"cases"]}
102 @lru_cache(maxsize=1)
104 from benchmarks.density_matrix.correctness_evidence.bundle
import (
105 build_correctness_package_payload,
109 return tuple(dict(case)
for case
in payload[
"negative_cases"])
113 return int(resource.getrusage(resource.RUSAGE_SELF).ru_maxrss)
116 @dataclass(frozen=
True)
118 density_matrix: DensityMatrix
121 trace_deviation: float
126 descriptor_set, parameters: Iterable[float]
127 ) -> SequentialReferenceMeasurement:
128 start = time.perf_counter()
130 runtime_ms = (time.perf_counter() - start) * 1000.0
131 trace = complex(density_matrix.trace())
133 density_matrix=density_matrix,
134 runtime_ms=runtime_ms,
136 trace_deviation=float(abs(trace - 1.0)),
137 rho_is_valid=
bool(density_matrix.is_valid(tol=1e-10)),
def build_package_software_metadata()
def build_phase31_counted_build_metadata()
def build_correctness_package_payload()
def build_boundary_evidence()
def execute_sequential_density_reference
Execute a sequential density reference.
def performance_evidence_output_dir
def build_correctness_reference_index()
def build_selected_candidate()
def build_software_metadata()
def measure_sequential_density_reference