b736c4cefb7400c6685d47e10cc5a4c58dd30db5
The ingest term was 90 bytes per reflection and 64 per run. Measured with cudaMemGetInfo at each step of IngestUpload/IngestSort (relative to the free memory before the observation arrays): - the second radix sort is the peak where runs are few: the 66 B of observation arrays, by_image, perm, key, key_sorted and cub's alternate key/value buffers of a plain SortPairs - 102.3-103.0 B per reflection on 7qij (51.1 M, 52.2 M, 78.1 M reflections) and 4nwv (32.7 M); - the cut is the peak where runs are many: 98 B per reflection plus 56 per run (4nwv, 15.4 M runs: 125.8 B per reflection, 4106 MB against 3923 MB from the old formula); - the upload holds the 66 B beside the two 64 MB staging buffers (~150 MB measured). Now max(103 B per reflection + 58 B per run, 66 B per reflection + 160 MB): 2-4% above every measured peak, where the old formula was 10% under on 7qij (7170 MB against 7986 MB for the main engine) and 4.5% under on 4nwv. Its only consumer is whether the all-observation arm goes beside the main engine, which changes when that merge runs, not what it gives. 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%