f88ff0440dbd06dfed36b5eb7b36720b858ea582
With the GPU resident, the host ingest swept the source reflections four times (background and h histogram, sort keys, the in-range build, the device staging), bucket-sorted the keys and cut the raw-hkl runs: 5-6 s of host time per engine on a 78 M-reflection sweep, run twice beside the quality guard. Now the frames' reflections are copied once, through two pinned buffers, to the card, where the per-frame background is summed, the reflections are ordered by two stable radix passes ((image, index), then raw hkl - the one order the host's total comparator gives), cut into runs by run-length encoding, filtered by the resolution range and compacted. The observations, the runs and their order are the host ingest's to the bit; a new GPU test checks the layout against the host's sort and cut. The geometry smoothing still runs on the host in this step, on arrays read back. The all-observation arm's engine is cloned after the main engine's device ingest (its DeviceBytes are known only then) and copies the runs on the card as well. DeviceBytes now also covers the ingest's own peak (90 bytes per reflection, 64 per run before the cut). Measured: p.hkl and MTZ data identical on cytc and 7qij. 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%