Closed Baharis closed 10 months ago
I took the freedom to ask you all for reviews because:
This branch should be probably squash-merged into a single commit, and then can be easily merged to frontier
.
Merged after agreement by @dermen and tacit agreement of @vganapati and @Trzs during the weekly CCTBX meeting.
This is the change to diffBragg discussed during today's and Monday's meeting. It heavily optimizes performance and memory use of diffBragg for experiments with a very large (>100 000 000) total number of reflections. This is achieved by moving previously separate calculations from across
ensemble_refine_launcher.py
andstage_two_refiner.py
into a common class and utilizingMPI.Allreduce
anditerator
s in lieu ofMPI.gather
andlist
s. Changes include:simtbx/diffBragg/ensemble_refine_launcher.py
:HiAsu
responsible for managing Miller indices;HiAsu
;_get_unique_Hi
until a better implementation is ready;_mem_usage
with newsimtbx/diffBragg/utils.py
memory_report
;simtbx/diffBragg/hopper_ensemble_utils.py
mem_usage
functionality tomemory_report
+LOGGER.info
for more general logging which now correctly reports where it has been called;simtbx/diffBragg/refiners/stage_two_refiner.py
:HiAsu
from the launcher instead of recalculating statistics;simtbx/diffBragg/utils.py
:memory_report
function which can be called anywhere to report memory use.simtbx/command_line/stage_two.py
:max_sigz
phil par (defaults to 10.) to reject experiments diverged during stage1