Architecture Decision Records#
Every decision that shapes the library, or changes an earlier decision, is recorded here as an
ADR: NNNN-short-title.md with the sections Status, Context, Decision and
Consequences. ADRs are written when their decision is first exercised. An ADR is never
rewritten after it is accepted; a later ADR marks it “Superseded by NNNN”.
ADR |
Title |
Status |
|---|---|---|
Name: dynG |
Accepted |
|
License and credit |
Accepted |
|
Language and toolkit floors (C++17, CUDA >= 12.4, sm_75, CCCL 3.x memory-resource shape) |
Accepted |
|
Naming conventions |
Accepted |
|
Algorithm contract |
Accepted under delegation with the 0.1 API freeze (2026-09-29, ADR 0023) |
|
Default index types (edge_t = int32 with checked construction) |
Accepted (M1b) |
|
Batch and graph semantics |
Proposed (M1a draft; amended in M2a: set semantics and the unweighted graph) |
|
The Python package (nanobind bindings, the typed layer, dtype dispatch, array lifetimes, locking) |
Accepted under delegation (2026-09-30) |
|
Parity and goldens |
Proposed (M1a draft) |
|
Approval checkpoints |
Accepted |
|
Workspace sharing (scratch memory owned by |
Proposed (M1b) |
|
CUDA execution resources (streams, memory, errors, warm-up) |
Proposed (M1b) |
|
The CUDA sssp engine, engine selection, placement and the resident device graph |
Proposed (M1b); item 2 superseded by 0026 |
|
The GPU clock state in the CUDA performance gate |
Accepted (2026-09-28: option B, the gate is read at locked clocks; default-clock readings are reported, not gated) |
|
Merge policy (merge commits for milestone and integration work, squash for contributions, no rebase) |
Accepted (INT1); amended 2026-10-14 (merge commits only) |
|
The resident device graph under set semantics (device set apply, lazily downloaded host copy), and Step 0 once per update |
Accepted (2026-09-29, by the author; written in M2b, amended by the M2b review) |
|
The power cap and the base clock lock in the cycle_count CUDA gate (a case whose GPU cannot hold the boost lock is read at the base lock) |
Accepted (2026-09-29, by the author) |
|
The conformance kit, the algorithm registry and the scaffold (registry-driven kit, C8’s reservations and container work, the scope of new_algorithm.py) |
Accepted under delegation (2026-09-29) |
|
The 0.1 API review and freeze (the review’s findings and fixes, |
Accepted under delegation (2026-09-29) |
|
Reading a refactor against an earlier dynG build (rounds over heap layouts, bimodal regions read mode by mode) |
Accepted under delegation (2026-09-30) |
|
The command line as a Python console script (generated flags, |
Accepted under delegation (2026-09-30) |
|
The sssp operators engine on CUDA (the multi-kernel, non-cooperative engine, byte-identical to the fused one) and the engine choice of 0.2 |
Accepted under delegation (2026-09-30) |
|
The mosp API (0.2) and mosp as a composition of K sssp problems |
Accepted under delegation (2026-09-30) |
|
mosp in Python and on the command line (0.2) |
Accepted under delegation (2026-10-01) |
|
The packing window, where the host and CUDA backends follow different originals (non-canonical input trees) |
Accepted (2026-10-06, by the author: option A) |
|
The CUDA plugin wheels |
Accepted under delegation (2026-10-06) |
|
Choosing a CUDA plugin (the driver’s major, the version pin), the CPU fallback with |
Accepted under delegation (2026-10-06) |
|
The CUDA plugin wheels in CI and in the release workflow (cibuildwheel with the CUDA toolkits pinned file by file, the GPU-less fallback smoke test, one publishing environment pair per distribution, the wheel-vs-parity row) |
Accepted under delegation (2026-10-06) |
|
The tutorial algorithms: registered with maturity |
Accepted under delegation (2026-10-06) |
|
Reader fuzzers ( |
Accepted under delegation (2026-10-06) |
|
The mosp API review and freeze (0.2): the review’s findings and amendments, the frozen headers following the manifests’ maturity, both API checks failing on a mosp change |
Accepted under delegation (2026-10-07; the maturity |
|
The CBST trace format 1 and the link-time recorders of ESCHER-GPU@abcf9b2 and MOSP_ESCHER@4b86159 (the originals’ unchanged objects relinked with |
Accepted under delegation (2026-10-07) |
|
The CBST host model ( |
Accepted under delegation (2026-10-07) |
|
The port of ESCHER-GPU@abcf9b2’s CBST store ( |
Accepted under delegation (2026-10-07) |
|
The staged merge of MOSP_ESCHER@4b86159’s CBST behaviours, part 1 (the staging preset |
Accepted under delegation (2026-10-07) |
|
The CBST presets and automatic compaction, part 2 of the staged merge ( |
Accepted under delegation (2026-10-08) |
|
The hypergraph container on the ESCHER store (PLAN 5.2 and the sketch reconciled; dead rows empty; |
Accepted under delegation (2026-10-13) |
|
The |
Accepted under delegation (2026-10-14) |
|
The hypergraph’s update path and the conformance kit’s container axis (the two-phase transaction; |
Accepted under delegation (2026-10-14) |
|
The hypergraph scaffold and the requirements of a hypergraph manifest ( |
Accepted under delegation (2026-10-14) |
|
Hypergraph files, hypergraph batch files, the binary batch format |
Accepted under delegation (2026-10-14) |
|
The hypergraph in Python ( |
Accepted under delegation (2026-10-14) |
|
The hypergraph API review and freeze (0.3): the review of |
Accepted under delegation (2026-10-14; stable from 0.3.0: awaits the author) |
Planned (PLAN Section 12.3): 0005 layout, 0007 framework, 0008 backends, 0012 versioning and stability.