Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
c79db30
Register frustration-free for ED challenge 36
Jul 27, 2026
8c6ed11
Register frustration-free for MPS challenge 81
Jul 28, 2026
c672a4f
Expand challenge 81 reference inputs
Jul 28, 2026
6db43b8
Build validated finite-temperature impurity foundation
Jul 28, 2026
98552ce
Add resumable TDVP step state
Jul 28, 2026
8416aa3
Add atomic MPS checkpoint generations
Jul 28, 2026
df240c4
Resume complete impurity observable workflow
Jul 28, 2026
2a96d44
Fix observable resume state invariants
Jul 28, 2026
6d5fe0c
Document endpoint policy and Krylov resume
Jul 28, 2026
3b96ed8
Handle cooperative MPS runner continuation
Jul 28, 2026
6a725e9
Bind checkpoint source in MPS provenance
Jul 28, 2026
32857cf
Make convergence cells scheduler-resumable
Jul 28, 2026
de64764
Preserve checkpoint generations after completion
Jul 28, 2026
e9ec4c2
Close validation staging race
Jul 28, 2026
6c776cd
Calibrate impurity solver cluster resources
Jul 28, 2026
938bb89
Close calibration telemetry trust chain
Jul 29, 2026
9958d2f
Accept Julia checkpoint canonical floats
Jul 29, 2026
5b472d5
Design finite bath star-to-chain mapping
Jul 29, 2026
f0ed2ea
Add deterministic finite bath chain mapping
Jul 29, 2026
a4d9d89
Bind chain mappings to finite bath artifacts
Jul 29, 2026
eb0240f
Preserve published chain mapping on cleanup failure
Jul 29, 2026
552b035
Preserve published bath on cleanup failure
Jul 29, 2026
05f251c
Add chain geometry to finite bath ED
Jul 29, 2026
dccd818
Restore direct star ED caller compatibility
Jul 29, 2026
e670634
Verify star and chain thermal equivalence
Jul 29, 2026
0e83680
Add finite chain MPO geometry
Jul 29, 2026
fdd3ba2
Verify finite chain MPO spectra and Hermiticity
Jul 29, 2026
3e079f8
Validate chain mappings in the Julia runner
Jul 29, 2026
1b8ba4f
Replay chain mapping diagnostics in Julia runner
Jul 29, 2026
f1c4c35
Make chain diagnostic replay self contained
Jul 29, 2026
1b484ed
Reject cross-geometry MPS checkpoints
Jul 29, 2026
ae1bab2
Verify star and chain MPS observables
Jul 29, 2026
48d33ab
Add explicit chain requests to acceptance
Jul 29, 2026
80638aa
Reject inconsistent acceptance geometry
Jul 29, 2026
4be274f
Add finite chain convergence capability
Jul 29, 2026
63f19c9
Close chain mapping provenance validation
Jul 29, 2026
d0d43d1
Make chain corruption assertions specific
Jul 29, 2026
9e3fdea
Document explicit finite chain execution
Jul 29, 2026
cae8edd
Design QN-conserving impurity purification
Jul 29, 2026
d3fab50
Fix QN documentation whitespace
Jul 29, 2026
f740609
Correct QN purification implementation contract
Jul 29, 2026
cbc0990
Complete QN purification contract details
Jul 29, 2026
9d2e864
Close remaining QN purification plan gaps
Jul 29, 2026
2e5546a
Add QN dual identity purification
Jul 29, 2026
fa4f197
Seal QN validated chain capability
Jul 29, 2026
d11bf8d
Bind QN specs to immutable parameters
Jul 29, 2026
45c82ce
Bind QN purification identity digest
Jul 29, 2026
917f31c
Validate QN Electron MPO capability
Jul 29, 2026
38fda95
Complete QN MPO capability probe
Jul 29, 2026
d13ef05
Remove QN probe Python dependency
Jul 29, 2026
8801cc8
Harden QN canonical capability evidence
Jul 29, 2026
620038d
Bind Green branches to QN sectors
Jul 29, 2026
f3a9b7e
Validate QN branch resume sectors
Jul 29, 2026
d222e07
Allow non-QN terminal observable resume
Jul 29, 2026
96f7e1f
Verify QN purification against direct ED
Jul 29, 2026
d69ee46
Complete QN equivalence coverage
Jul 29, 2026
9b12652
Fix QN sector test site identity
Jul 29, 2026
6059db1
Add Task4 convergence diagnostics
Jul 29, 2026
72cb070
Fix Task4 probe module loading
Jul 30, 2026
621b740
feat(cthyb): add analytic semicircular bath
Jul 30, 2026
b6e0d83
Design production CT-HYB reference path
Jul 29, 2026
23fabd4
Correct CT-HYB production implementation contract
Jul 29, 2026
1838a85
Close final CT-HYB production design blockers
Jul 29, 2026
0207c6c
Lock CT-HYB production test runtime
Jul 29, 2026
a944ebb
Harden CT-HYB lock verification
Jul 29, 2026
d7475ff
feat(cthyb): define canonical production input
Jul 29, 2026
2644635
fix(cthyb): harden production input contract
Jul 29, 2026
4f70f7c
feat(cthyb): retain validated raw chain evidence
Jul 30, 2026
2589498
Add N_b=12 QN resource benchmark
Jul 30, 2026
6d86c96
Fix explicit QN benchmark artifacts
Jul 30, 2026
d841e48
feat(cthyb): close source-bound pilot lifecycle
Jul 30, 2026
b73d6ae
fix(cthyb): traverse execute-only cluster paths
Jul 30, 2026
0989431
fix(cthyb): satisfy real Solver tau mesh
Jul 30, 2026
cf35bdf
fix(cthyb): normalize real Solver completion
Jul 30, 2026
72d15c7
fix(cthyb): retain exact invoked controls
Jul 30, 2026
300c5bc
fix(cthyb): bind conda runtime versions
Jul 30, 2026
7af146e
fix(cthyb): preserve opaque Solver checkpoint
Jul 30, 2026
5c759ff
fix(cthyb): register HDF reconstructors
Jul 30, 2026
62b41b5
feat(cthyb): execute hash-bound calibration cells
Jul 30, 2026
2931280
fix(cthyb): place micromamba offline flag globally
Jul 30, 2026
2013c48
fix(cthyb): bind Slurm source paths
Jul 30, 2026
b54d2dd
fix(cthyb): qualify finite-basis estimator
Jul 30, 2026
e8bcc07
fix(cthyb): retain Legendre-only raw state
Jul 30, 2026
c507202
fix(cthyb): select estimator truncations safely
Jul 30, 2026
b656f02
fix(cthyb): separate measured basis from cutoff
Jul 30, 2026
1d1e029
fix(cthyb): power qualification from variance
Jul 30, 2026
da86046
fix(cthyb): refresh scaling seed namespace
Jul 30, 2026
8a08b6b
fix(cthyb): project exact impurity symmetries
Jul 30, 2026
7716942
docs(ch81): preserve honest challenge report
Jul 30, 2026
0ba718c
fix(ch81): satisfy report whitespace checks
Jul 30, 2026
bec8463
docs(ch81): foreground verified technical progress
Jul 30, 2026
6492ccd
docs(ch81): link standalone submission
Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
# Challenge 81 Restartable Production Design

## Goal

Complete the four-day acceptance line for Challenge #81 before attempting the
β=100 research extension. The immediate target is a controlled continuous-bath
calculation at β=16 or β=32, followed by a CT-HYB comparison and a complete
observable and resource error budget.

The physical setup remains:

- particle-hole-symmetric spinful Anderson impurity model;
- `D=1`, `U=0.8`, `Gamma=0.1`, `epsilon_d=-U/2`, and `mu=0`;
- deterministic purification of the complete interacting finite-bath
Hamiltonian;
- impurity occupancy, double occupancy, and spin-resolved `G(tau)` on the
shared `tau/beta={0,1/4,1/2,3/4,1}` grid.

The existing small-bath MPS-versus-ED gate remains binding at maximum absolute
error `1e-6`. The observed accepted fixture error is approximately `4.63e-8`.

## Current evidence

The first scheduler-bounded `N_b=12`, β=16, `dt=0.05`, `maxdim=512` pilot used
four Julia threads and an 8 GB allocation. It reached thermal step 48 of 320,
or β≈2.4, in 30 minutes before the scheduler timeout. Maximum link dimension
reached 54, peak RSS was approximately 3.1 GB, local Krylov calls converged,
and reported truncation errors remained below `1e-12`.

This is a runtime and restartability failure, not evidence of a numerical
instability. The original wall-time estimator materially underestimated the
direct-star TDVP cost.

## Chosen strategy

Use reliability-first uniform two-site TDVP:

1. make every long thermal and Green-function evolution restartable;
2. calibrate CPU scaling and the wall-time model from measured segments;
3. complete the `N_b=12` β=16 anchor and its controlled sweeps;
4. proceed to β=32 and `N_b=24`;
5. implement QN-conserving purification and star-to-chain mapping before any
`N_b=48` production execution;
6. run CT-HYB and assemble the final error budget;
7. only then pursue implicit logarithmic evolution, adaptive bond expansion,
and β=100.

Directly submitting longer non-restartable jobs is rejected because scheduler
or node failures would discard hours of work. Optimization-first development
is deferred because it delays the minimum accepted scientific result.

## Restart architecture

### Checkpoint contents

A checkpoint is an immutable, hash-bound snapshot containing:

- canonical request and request SHA256;
- Julia project, Manifest, model, bath, and source identities;
- solver settings and effective TDVP subdivision settings;
- phase (`thermal`, `green_up_particle`, `green_up_hole`,
`green_down_particle`, or `green_down_hole`);
- tau-point index where applicable;
- completed step count, current beta endpoint, and target endpoint;
- serialized MPS state and normalization-log accumulator;
- bounded diagnostics accumulated so far;
- wall time, peak RSS, Julia threads, BLAS threads, and actual link dimensions;
- checkpoint schema and writer versions.

Resume is fail-closed. Any mismatch in request, bath, code/runtime identity,
solver settings, phase, dimensions, or diagnostic history rejects the
checkpoint instead of silently starting from it.

### Publication

Each checkpoint is written to a unique same-directory staging path, flushed,
fsynced, independently reloaded and validated, and atomically renamed.
Completion artifacts remain separate from checkpoints and are published only
after all phases and scientific gates pass.

At most one valid current checkpoint exists per convergence cell. Previous
valid checkpoints are retained as immutable audit generations until the cell
completes. Abandoned staging files are archived explicitly.

### Scheduler behavior

The Slurm wrapper obtains the job time limit and start time from Slurm. It
requests a graceful checkpoint before a conservative shutdown margin. SIGTERM
also requests a checkpoint. A checkpointed incomplete cell exits with a
distinct retryable status; scientific or provenance failures remain
non-retryable.

Repeated array submission validates the current checkpoint and resumes the
same cell. It never treats a checkpoint as a completed result.

## Runtime calibration

Run bounded `N_b=12` segments with 4, 8, and 16 CPU threads using identical
physical and solver inputs. Each segment records:

- steps and beta advanced per wall-clock second;
- time per sweep as a function of maximum link dimension;
- Julia and BLAS thread counts actually observed;
- CPU utilization and peak RSS from Slurm;
- checkpoint write/read time and size;
- observable-independent TDVP diagnostics.

Select the smallest allocation within 10% of the best measured throughput per
node. Memory requests use measured peak RSS with a safety factor; unused memory
is not a performance target.

The resource estimator is recalibrated from measured segment telemetry. It
must report uncertainty and a conservative wall-time recommendation rather
than claiming a universal analytic coefficient.

## Production sequence

1. Complete and validate the `N_b=12`, β=16, `dt=0.05`, `maxdim=512` anchor.
2. Complete β=16 timestep controls at `dt={0.2,0.1,0.05}`.
3. Complete β=16 bond controls at `maxdim={128,256,512}`.
4. Repeat the controlled anchor and required controls at β=32.
5. Run the `N_b=24` anchors and quantify bath-size change.
6. Implement and validate QN purification and star-to-chain mapping against
dense ED and the existing small-bath MPS path.
7. Permit `N_b=48` only after both optimization capability gates pass.
8. Run production CT-HYB with matching model, bath/hybridization convention,
beta, and tau grid.
9. Publish MPS–ED–CT-HYB comparisons and the split error/resource budget.

Independent cells may run as a Slurm array after their common checkpoint
implementation passes local and reduced-cluster tests. Multiple jobs must not
write the same cell or checkpoint generation.

## Error handling

- Scheduler timeout with a validated checkpoint: retryable and resumable.
- SIGTERM with a validated checkpoint: retryable and resumable.
- OOM, invalid MPS, nonfinite values, failed Krylov convergence, excessive
truncation, maxdim saturation, or provenance mismatch: fail closed.
- Corrupt or stale checkpoints: archive and reject; never overwrite evidence.
- Missing progress or diagnostics: reject the convergence claim.
- CT-HYB autocorrelation or sampling failure: report as an unresolved
comparator, not as agreement.

## Verification

Tests must cover:

- exact checkpoint round trip for a small MPS;
- interrupted-versus-uninterrupted equality within named numerical tolerance;
- request/config/source mismatch rejection;
- corrupt and partial checkpoint rejection;
- atomic-publication rollback and concurrent-writer exclusion;
- thermal and every Green branch resume point;
- Slurm shutdown-margin and SIGTERM paths;
- repeated submission skipping completed cells and resuming only incomplete
cells;
- telemetry and resource-estimator calibration semantics.

A reduced cluster integration test must demonstrate at least two scheduler
jobs continuing one cell before any multi-hour production array is submitted.

## Acceptance

The core milestone is complete only when:

- the existing finite-bath `1e-6` MPS–ED gate remains passing;
- at least one β=16 or β=32 continuous-bath result has controlled timestep,
bond, and bath errors;
- the result is cross-checked against production CT-HYB or a valid GTEMPO
reference;
- the final artifact reports observables, split errors, wall time, peak memory,
and per-bond dimensions with complete provenance.

If controlled β=16 or β=32 cannot be reached, an automated convergence-failure
report is acceptable only when it includes the validated reachable frontier,
resource scaling, error diagnostics, and reproducible restartable workflow.
16 changes: 16 additions & 0 deletions tracks/ed/solutions/frustration-free/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# frustration-free — Interacting Thouless pumps

## Team

| | |
|---|---|
| **Team name** | frustration-free |
| **Members** | 蒋玮琪 (`jiangweiqi001`), 陈硕 (`ChS-YHWH`), 马追景 (`desitterf`) |

## Challenge

| Row | |
|---|---|
| **Challenge** | Determine when Hubbard interactions preserve, destroy, or generate quantized Thouless pumping by comparing the many-body Chern number, minimum gap, adiabatic polarization winding, and finite-time transported charge—going beyond static noninteracting topology with exact many-body and real-time diagnostics. |
| **Catalog issue** | `Addresses #36` — “[challenge]: Exact diagonalization benchmark for interacting Thouless pumps,” released by Chen Cheng, Lanzhou University. |
| **Track** | `tracks/ed/solutions/frustration-free/` — selected from the issue’s `Method: Exact Diagonalization` field. |
1 change: 1 addition & 0 deletions tracks/mps/solutions/frustration-free/.python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12.13
Loading