Avatar for the deepmodeling user
deepmodeling
reacnetgenerator
BlogDocsChangelog

Performance History

Latest Results

[pre-commit.ci] pre-commit autoupdate updates: - [github.com/astral-sh/ruff-pre-commit: v0.17.2 → v0.17.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.17.2...v0.17.4) - [github.com/pre-commit/mirrors-clang-format: v23.1.3 → v23.1.5](https://github.com/pre-commit/mirrors-clang-format/compare/v23.1.3...v23.1.5) - [github.com/MarcoGorelli/cython-lint: v0.22.0 → v0.22.1](https://github.com/MarcoGorelli/cython-lint/compare/v0.22.0...v0.22.1)
pre-commit-ci-update-config
3 days ago
test: exercise pooled route IDs in worker processes
hcustc-bot:fix/pool-miso-before-hmm
9 days ago
fix: pool isomer-equivalent observations before HMM filtering
hcustc-bot:fix/pool-miso-before-hmm
9 days ago
feat: separate coordinate-inferred order changes in reaction counts
hcustc-bot:fix/coordinate-order-events-2530
9 days ago
fix: make HMM molecule routes deterministic (#2529) Concurrent detection and HMM completion order can change which molecule wins an overlapping atom/frame cell, moving `.route` transitions between otherwise identical runs. This orders retained HMM records by numeric atom indices, bond endpoint pairs, and bond orders before assigning molecule IDs. A disk-backed structural index and result spool keep definitions and signals aligned without retaining every result in memory. Overlaps explicitly select the largest canonical molecule ID, independently of write order. Conflict flags remain available to reaction-event filtering, and HDF5 molecule ranges retain their independent HMM signals. This is a deterministic tie-breaker, not a chemical confidence rule; molecule IDs, species ordering, and route positions can change relative to older releases, including serial runs. The HMM guide documents these semantics and temporary-disk costs. Validation: 730 core tests passed on Linux, including repeated 1/2/8-worker runs under fork and spawn, reversed detection results, delayed short/long HMM tasks, overlapping-record permutations, and normalized HDF5 manifests containing nonempty transition evidence. GUI/report/CLI and benchmark-fixture suites were excluded from this local core run; the private methane trajectory and macOS were not tested. Ruff and diff checks passed. Fixes #2528. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary by CodeRabbit * **Bug Fixes** * Molecule results now appear in a consistent order regardless of processing order or worker configuration. * Overlapping molecule assignments consistently favor the higher-ID molecule. Repeated assignments from the same molecule no longer register as conflicts. * **Documentation** * Added guidance on filtering overlapping molecules, conflict handling, route counts, and resource usage. * Documented possible differences in molecule IDs, species ordering, and routes compared with older releases. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: hcustc-bot <268120833+hcustc-bot@users.noreply.github.com>
master
9 days ago
fix: make HMM molecule routes deterministic
hcustc-bot:fix/hmm-deterministic-routes-2528
9 days ago
perf: cache immutable native event participant metadata (#2526) Native timeline output repeatedly rebuilds a species index and rereads immutable molecule definitions/range pages for reaction participants. Cache the species index, atom/bond arrays and small per-molecule range windows inside one open file. Validation creates fresh range state over stored bytes. Atom/bond arrays retain at most 8 MiB across 8192 entries; oversized definitions bypass the cache. Range data retains at most 1 MiB of shared blocks plus 4096 windows of up to 64 intervals (4 MiB), and 4096 ID bounds. Python headers, the species-name index and temporary arrays are additional. Window gaps/unknown edges fall back correctly; per-event presence, overlap, atom conservation, species, bond-change and aggregate checks remain in place. The schema, scientific identity rules and worker policy are unchanged. Three alternating fresh-process pairs on the same Linux host/dependencies/native extension, 32 requested processes, CPUs 0–31 and one native math thread: | Full DETECT→MATRIX workload | Official ffefc395 median | Candidate median | | --- | ---: | ---: | | 201 frames, miso=0, HMM off | 55.520 s | 20.889 s | | 5001 initial frames, miso=1, HMM off | 53.576 s | 51.094 s | | 5001 middle frames, miso=1, HMM on | 33.256 s | 33.898 s | The dense window improves 2.66×; the sparse-HMM control observes 1.9% more time. Imports, initialization/input preparation and subsequent validation/indexing are outside timing. Separate 201-frame audits observed 1242.2→1523.7 MiB peak process-tree PSS, so no small-window memory improvement is claimed. A separate single 5001-frame dense pair, 32 requested processes and CPUs 32–47 for both versions, observed candidate 459.054 s versus deployed fork 708.967 s; PSS was 2748.7 versus 2732.7 MiB. The fork has another native schema/identity conventions and is a contextual production control. These are window measurements with concurrent acceptance work, not a complete-trajectory or cross-platform guarantee. Validation: - Full suite at `db2719f`: **769 passed**, 5 skipped, 6 xfailed, 3 non-strict XPASS (`python -m pytest -q` from the repository root in the pinned environment). The earlier 763 count predates six interval-window tests. - Review follow-up: **123 targeted cases pass**, including 13 additional benchmark/invalid-species-index cases; a real `spawn` CLI run with a nonzero frame offset also validates. The benchmark records requested and effective parameters separately and publishes measurements only after native validation. - Ruff 0.17.2 and configured ty 0.0.15 pass. - All nine matched official/candidate pairs pass native validators and preserve 12 fingerprints of exact graphs/names, intervals, populations and reaction evidence after internal-ID normalization. - The final 5001-frame output independently passes full native validation and preserves all 2,239,475 event instances against unmodified official output. Interpretation metadata and shapes/dtypes also agree. Internal species/molecule IDs can be renumbered between runs; trajectory atom indices, bond orders and times remain exact. - Downstream native-to-index acceptance checks all 82,001 dense201 candidate events, atom/bond/time evidence, continuity, abundance and trajectory mappings; online queries work without rereading the native source. The official large reference was independently checked through all 2,239,475 events. [Methods, controls and reproduction](https://github.com/hcustc/reacnetgenerator/blob/perf/cache-native-participant-metadata/benchmarks/native_participant_metadata.md), [24 timing/audit samples and source hashes](https://github.com/hcustc/reacnetgenerator/blob/perf/cache-native-participant-metadata/benchmarks/native_participant_metadata_timings.csv), [standalone bounded-window benchmark](https://github.com/hcustc/reacnetgenerator/blob/perf/cache-native-participant-metadata/benchmarks/native_participant_metadata.py). Raw production trajectories, HDF5 outputs and derived indexes are not included. The 250001-frame production trajectory has not been rerun. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary by CodeRabbit * **Performance** * Timed-output validation can handle repeated participant and range lookups more efficiently, while retaining existing validation checks and event ordering. * **Documentation** * Added guidance on validation behavior and cache limits, plus benchmark results and instructions for reproducing performance measurements. * **Benchmarking** * Added a tool to measure native-output pipeline timing on a selected trajectory window and publish results only after validation succeeds. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
master
10 days ago

Latest Branches

CodSpeed Performance Gauge
+1%
[pre-commit.ci] pre-commit autoupdate#2527
3 days ago
dde312f
pre-commit-ci-update-config
CodSpeed Performance Gauge
-25%
9 days ago
c63db6f
hcustc-bot:fix/pool-miso-before-hmm
CodSpeed Performance Gauge
+16%
feat: separate coordinate-inferred bond-order changes in reaction counts#2531
9 days ago
db8484c
hcustc-bot:fix/coordinate-order-events-2530
© 2026 CodSpeed Technology
Home Terms Privacy Docs