SPB Git

spb/wp40_uqo

Public MIT
4.6 KB · 23 lines markdown
1# docs/risks.md — risk register (Phase 0, 2026-11-02; update at every gate)23| # | Risk | Likelihood | Impact | Mitigation / decision | Owner phase |4|---|---|---|---|---|---|5| R1 | **No FP64 on Metal** → GPU estimates drift from FP64 references on long reductions (390 000 bars, ill-conditioned X'X) | certain (verified) | high | FP32 + Kahan/pairwise reductions; sufficient statistics accumulated per chunk then combined in FP64 on CPU; mixed-precision policy per method; tolerances per method; GPU paths that cannot meet tolerance are flagged `precision=fp32-approx`, not silently accepted | 3, 4 |6| R2 | GPU does not beat the 18-core CPU for small/medium workloads (realistic for 1-day RV on one series) | high | medium (it is a *result*, not a failure) | Publish break-even charts and CPU-wins cases (charter §8); auto backend picks CPU below measured break-even | 3, 6 |7| R3 | GARCH optimization on GPU unstable (nonconvex, constraints) | medium | medium | GPU only evaluates batched likelihoods/gradients; CPU optimizer (L-BFGS-B / Nelder–Mead with transforms) drives; report convergence codes; never mark non-converged fits as success | 4 |8| R4 | FinData rate limit (600/min) / export caps (31 d per 1m call, 12 y per export) | certain | low | token bucket, retries with `Retry-After`, exports chunked ≤ 10 y, on-disk cache keyed by (dataset, version, symbol, range) with SHA-256 | 2 |9| R5 | Duplicate last session in exports (base + delta layouts, WP 39) | high | low | dedupe on (instrument_id, timestamp_utc), counted in QualityReport | 2 |10| R6 | License breach by committing real bars or figures that reveal raw prices | low | critical | `.gitignore` for `*.parquet`/`data/`; pre-commit hook scanning for `fd_` keys and large binaries; paper tables show only aggregates/ratios; fixtures synthetic | all |11| R7 | Secret leakage (`FINDATA_API_KEY`) in logs/manifests | low | critical | client redacts `Authorization` header; manifests store key *prefix hash* only; `scripts/check_no_secrets.sh` in CI | 2, 8 |12| R8 | Thermal throttling / background load on the laptop biases benchmarks | medium | medium | record `pmset -g therm`, load average, and `powermetrics` when available; randomized order, warm-ups, ≥ 5 repetitions, medians + bootstrap CIs; rerun flagged outliers | 6 |13| R9 | Cluster nodes lack Homebrew/cmake in SSH PATH; m2m8b lacks developer tools; 7 nodes unreachable | certain | low | self-contained static bundle built on the laptop; nodes that stay unreachable are reported as "not tested" in E7 | 6 |14| R10 | Production interference (FinData on M3U96a, Ka apps on M4M64a/b, gateway M1M32) | low | high | those nodes excluded from timing runs (M1M32: ≤ 2-minute microbench only, off-hours); never install software on nodes; no sudo | 6 |15| R11 | Arrow C++ dependency makes wheels/Linux builds heavy | medium | medium | Arrow optional (`RAID_WITH_ARROW`); core library and tests build without it; Parquet reader behind an interface; Python path can fall back to pyarrow → NumPy views | 1 |16| R12 | `clang` 21 does not know `-mcpu=apple-m5` | certain | low | use `-mcpu=apple-m4` on M5/M6 hosts (recorded in manifest); ISA difference irrelevant for the claims | 1 |17| R13 | Reference software definitional differences (BPV constants, HARQ scaling, GARCH initialization, HAC bandwidth, DoF of HC corrections) | high | high (validation tables) | per-method registry pins the exact competitor options; tests compare under identical conventions; discrepancies documented, not hidden | 4 |18| R14 | Scope creep (Tier B/C lists) | high | medium | gates: Tier B only after Tier A passes; Tier C only with validated inputs; RESEARCH_STATUS lists "not implemented" honestly | 5 |19| R15 | Survivorship / PIT issues if a HAR-X uses fundamentals | medium | medium | methods paper uses market covariates only (realized measures, returns, VIX-type indices from FinData index bars); no fundamentals in Tier A experiments | 4, 6 |20| R16 | Nondeterministic GPU reductions (threadgroup scheduling) break bitwise reproducibility | certain | low | deterministic reduction order within fixed threadgroup sizes; `ExecutionPlan.deterministic=true` forces fixed-order tree reductions; nondeterminism bound reported when disabled | 3 |21| R17 | Energy claims without an instrument | medium | medium | energy reported only from `powermetrics` samples (requires sudo on the laptop, password available to the owner); otherwise "not measured" | 6 |22| R18 | Paper claims not traceable to artifacts | medium | high | every table/figure generated by `experiments/scripts/*` from `experiments/results/*.json` with SHA-256 in `experiments/manifests/`; Phase 8 reproduction from clean checkout | 7, 8 |23
Files · ae5a4e6ff6df81cef716eacbb5d51143a008d45b
Menu

Theme