cctbx / cctbx_project

Computational Crystallography Toolbox
https://cci.lbl.gov/docs/cctbx
Other
208 stars 111 forks source link

Optimize setup performance and memory use by removing MPI.gather #920

Closed Baharis closed 10 months ago

Baharis commented 10 months ago

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 and stage_two_refiner.py into a common class and utilizing MPI.Allreduce and iterators in lieu of MPI.gather and lists. Changes include:

Baharis commented 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.

Baharis commented 10 months ago

Merged after agreement by @dermen and tacit agreement of @vganapati and @Trzs during the weekly CCTBX meeting.