Avatar for the BLAST-ImpactX user
BLAST-ImpactX
impactx
BlogDocsChangelog

Performance History

Latest Results

Doc: ADIOS2 2.10 -> 2.12 (#1670) * Doc: ADIOS2 2.10 -> 2.12 Update ADIOS2 to the last major release. Potentially overcoming deadlocks on Perlmutter with `bp5` + `v` encoding. * Doc: Perlmutter c-blosc -> c-blosc2 ADIOS2 dropped c-blosc (v1) support in 2.9 and only supports c-blosc2 via `ADIOS2_USE_Blosc2`. The `ADIOS2_USE_Blosc=ON` option was silently ignored, so ADIOS2 was built without Blosc compression. Build c-blosc2 2.23.1 and require it in ADIOS2. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Fix: `git prune --tags` Could otherwise not find tags on busy repos like ADIOS2. --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
development
3 days ago
Python: `set()` Checks on Copies, Then Writes Review follow-up, now that #1381 is in. `set()` promises all-or-nothing, and before #1381 the only way to keep that promise was to write and undo: `_SET_VALIDATORS` pre-checked `nslice`, `int_order` and `mapsteps` in Python, a copy of the C++ rules, and any other rejection (`DipEdge.R`, element-dependent array lengths) was caught by rolling back a journal. Checking on throwaway elements first was ruled out, because constructing one allocated a `GPUDataRegistry` entry that was never freed. #1381 removed that registry and added `Element.copy(**overrides)`, so `set()` is now two passes: every write is made on copies, and only once all of them succeed on the elements themselves. The element's own setter decides what is valid, with no second list of rules in Python, and nothing half-written is ever visible to user code in between. A rejection gets a note naming the property, value and element, since the element's message need not name the property. Each step of the check is a copy with a single override, so it is the same assignment in the same order as the write that follows. A pair of parameters that can only change length together is therefore rejected up front rather than passing the check and failing half way through the write. `copy()` refuses the Twiss settings a `BeamMonitor` keeps by name, which trying on a copy would change on the original, so `set()` refuses them too. With the lattice holding the elements themselves, an element may sit at several positions: it is written and counted once. Writes go to the elements taken at the start, so user code run during `set()` cannot redirect them by moving elements. The `Programmable` concern from review is gone with the copies, and is covered by a test. Also brings the docs in line with the lattice after #1381: `delete()` no longer rebuilds the lattice from clones, and `set()` joins the how-to. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
ax3l:topic-elements-set
4 days ago

Latest Branches

CodSpeed Performance Gauge
0%
Doc: ADIOS2 2.10 -> 2.12#1670
3 days ago
d2cc3eb
ax3l:doc-adios-2.12.1
CodSpeed Performance Gauge
0%
Python: Bulk `set()` and `select(has=...)`#1599
4 days ago
56b62f9
ax3l:topic-elements-set
CodSpeed Performance Gauge
0%
4 days ago
df96c4b
cemitch99:user_specified_wake
© 2026 CodSpeed Technology
Home Terms Privacy Docs