4158c48dfd59d4618b85fd3eb37f6b5602b90933
Two waits on the critical path of a canonical rotation pass go: - the post-refinement gather (2-3.5 s on a 78 M-reflection sweep) now runs in the task that fits it, beside the chain; it reads only the reflections, and the chain waits for it before the space-group search, the first step that re-indexes them; - with one GPU the quality guard's merge used to have the card to itself while the main engine waited. It now runs beside the main engine wherever both fit the card's total memory (the main engine's DeviceBytes plus its reflection share for the guard, plus the 3 GB reserve the all-observation arm uses); otherwise it runs first as before and the main engine is ingested again after it. The main engine's first merge holds its per-frame write-back until the guard has read the outcomes (as the arm on a copy does), and the guard's numbers are recorded where the pass first needs them. Same merges, same numbers; only when the guard and the gather run changes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EizBKhTqrAYago9KJG3dA3
Jungfraujoch
Application to receive and analyse data from the PSI JUNGFRAU and EIGER detectors, together with
rugnux, its program for processing stored diffraction data - rotation and serial, macromolecular
and small-molecule - from images to merged reflections.
All documentation is now placed in docs/ subdirectory and for the current version hosted on Jungfraujoch Read The Docs page.
Languages
C++
77.9%
HTML
6%
C
4.7%
TypeScript
3.4%
Cuda
3%
Other
4.9%