Repository navigation
v0.7.0: no-replay TPE continuation, portable checkpoints, exact bounded threading - #9
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release 0.7.0
This is a breaking minor release, not 0.6.1. Legacy row-only TPE continuation
rebuilds deterministically without historical proposals. Matching saved sampler
checkpoints retain exact continuation. Grid/random behavior is unchanged.
Independent-review fixes
PFHTPE2checkpoints serialize each MT19937-64 engine as312 explicit uint64 words and a position, independent of standard-library stream
formats. Compiler/stdlib/target/floating-point build identity is enforced;
incompatible builds rebuild rather than exit 4. Both CI platforms verify the
checked-in two-engine golden and its future-word hash.
replay_contract: ordered_batches_v1; TPE continuation has its owncontinuation_contract: sampler_checkpoint_v2. Breaking changes quote the oldpromises and document the new enum, C++ interface, concurrent const source reads,
row-only/JSONL limitation, old-reader rejection and internal threads.
kill both actual mutants: one extra reservoir draw and skipped RNG restoration.
4,096 rows × 32 inputs; independent unmodified-v0.6.0 serial hashes are pinned.
shorter histories rebuild. Only compact cached model lists are serialized, so
stale full-history lists cannot inflate switch-transition checkpoints.
resource failure, and honor affinity plus Linux cgroup v1/v2 quotas. C++/work.json
max_threads/ native--tpe-max-threadsnever change proposal bits.not authenticity; warm files are trusted input.
Exactness and validation
GCC/libstdc++ and Apple-clang/libc++ restore the same canonical engine golden.
Full sampler exchanges in both directions rebuild with exit zero because their
numerical builds differ; same-build checkpoints restore. Actual v0.5.0 and v0.6.0
runner oracles each pass 91 cases, including bounded reservoir-seven checkpoints.
Benchmark protocol, old censored replay boundaries, reviewed timing tables and
gate evidence are documented in
benchmarks/noreplay/README.md.AWS 8-vCPU / 8-GiB gates: Release, ASan/UBSan and TSan each pass 31/31 CTests;
Python passes 70/70; the real-strategy E2E passes 12 continuation cases plus the
canonical seven-trade/four-metric comparison. Ruff 0.15.20 check and format check
pass; Doxygen has zero warnings and validates 247 HTML files. The pinned Optuna
smoke CSV and metadata sidecar are retained with verified hashes.
All six refreshed full-history batch hashes match the v0.6.0 serial baseline.
500k × 32 takes 69.167101 seconds before / 16.534632 after (4.18x), and 2M × 32
takes 287.644111 / 70.008436 (4.11x), for eight cold-cache proposals including
acquisition. Bounded switch-1000 remains a different estimator and an owner
decision; no estimator default changes. These are sampler-only diagnostics, not
Cloud Run timings or an SLA.
No engine/codegen gitlink changes. Do not merge or tag this PR.