Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Also cache undefined Rij values #1634

Merged
merged 3 commits into from
Mar 25, 2021
Merged

Also cache undefined Rij values #1634

merged 3 commits into from
Mar 25, 2021

Conversation

rjgildea
Copy link
Contributor

If we know that the correlaton coefficient is undefined for this particular combination of data sets then we can cache that knowledge and avoid the cost of rediscovering this fact for other symmetry-related combinations of the same data sets.

This shouldn't change any results, and will only likely have any significant performance benefit when dealing with many sparse data sets (i.e. where there are many pairs of data sets where it isn't possible to calculate a valid correlation coefficient).

Co-authored-by: Daniel Paley dwpaley@lbl.gov

If we know that the correlaton coefficient is undefined for this particular
combination of data sets then we can cache that knowledge and avoid the cost
of rediscovering this fact for other symmetry-related combinations of the
same data sets.

This shouldn't change any results, and will only likely have any significant
performance benefit when dealing with many sparse data sets (i.e. where there
are many pairs of data sets where it isn't possible to calculate a valid
correlation coefficient).

Co-authored-by: Daniel Paley <dwpaley@lbl.gov>
@rjgildea rjgildea requested a review from dwpaley March 25, 2021 09:01
@codecov
Copy link

codecov bot commented Mar 25, 2021

Codecov Report

Merging #1634 (28600a3) into main (67bf7ff) will increase coverage by 0.00%.
The diff coverage is 100.00%.

❗ Current head 28600a3 differs from pull request most recent head a57a3e5. Consider uploading reports for the commit a57a3e5 to get more accurate results

@@           Coverage Diff           @@
##             main    #1634   +/-   ##
=======================================
  Coverage   66.63%   66.63%           
=======================================
  Files         616      616           
  Lines       68950    68950           
  Branches     9600     9600           
=======================================
+ Hits        45944    45946    +2     
+ Misses      21070    21068    -2     
  Partials     1936     1936           

@rjgildea rjgildea merged commit 52883bf into main Mar 25, 2021
@rjgildea rjgildea deleted the cosym-rij_cache branch March 25, 2021 20:03
ndevenish pushed a commit that referenced this pull request Mar 25, 2021
If we know that the correlaton coefficient is undefined for this particular
combination of data sets then we can cache that knowledge and avoid the cost
of rediscovering this fact for other symmetry-related combinations of the
same data sets.

This shouldn't change any results, and will only likely have any significant
performance benefit when dealing with many sparse data sets (i.e. where there
are many pairs of data sets where it isn't possible to calculate a valid
correlation coefficient).

Co-authored-by: Daniel Paley <dwpaley@lbl.gov>
DiamondLightSource-build-server added a commit that referenced this pull request Mar 26, 2021
Bugfixes
--------

- ``dials.cosym``: Cache cases where Rij is undefined, rather than recalculating each time. This can have significant performance benefits when handling large numbers of sparse data sets. (#1634)
- ``dials.cosym``: Fix factor of 2 error when calculating target weights (#1635)
DiamondLightSource-build-server added a commit that referenced this pull request Mar 27, 2021
Bugfixes
--------

- ``dials.cosym``: Cache cases where Rij is undefined, rather than recalculating each time. This can have significant performance benefits when handling large numbers of sparse data sets. (#1634)
- ``dials.cosym``: Fix factor of 2 error when calculating target weights (#1635)
DiamondLightSource-build-server added a commit that referenced this pull request Mar 28, 2021
Bugfixes
--------

- ``dials.cosym``: Cache cases where Rij is undefined, rather than recalculating each time. This can have significant performance benefits when handling large numbers of sparse data sets. (#1634)
- ``dials.cosym``: Fix factor of 2 error when calculating target weights (#1635)
DiamondLightSource-build-server added a commit that referenced this pull request Mar 29, 2021
Bugfixes
--------

- ``dials.cosym``: Cache cases where Rij is undefined, rather than recalculating each time. This can have significant performance benefits when handling large numbers of sparse data sets. (#1634)
- ``dials.cosym``: Fix factor of 2 error when calculating target weights (#1635)
DiamondLightSource-build-server added a commit that referenced this pull request Mar 30, 2021
Bugfixes
--------

- ``dials.cosym``: Cache cases where Rij is undefined, rather than recalculating each time. This can have significant performance benefits when handling large numbers of sparse data sets. (#1634)
- ``dials.cosym``: Fix factor of 2 error when calculating target weights (#1635)
DiamondLightSource-build-server added a commit that referenced this pull request Mar 30, 2021
Bugfixes
--------

- ``dials.cosym``: Cache cases where Rij is undefined, rather than recalculating each time. This can have significant performance benefits when handling large numbers of sparse data sets. (#1634)
- ``dials.cosym``: Fix factor of 2 error when calculating target weights (#1635)
- ``dials.cosym``: Fix broken ``engine=scipy`` option (#1636)
DiamondLightSource-build-server added a commit that referenced this pull request Mar 31, 2021
Bugfixes
--------

- ``dials.cosym``: Cache cases where Rij is undefined, rather than recalculating each time. This can have significant performance benefits when handling large numbers of sparse data sets. (#1634)
- ``dials.cosym``: Fix factor of 2 error when calculating target weights (#1635)
- ``dials.cosym``: Fix broken ``engine=scipy`` option (#1636)
DiamondLightSource-build-server added a commit that referenced this pull request Mar 31, 2021
Features
--------

- ``dials.cosym``: Significantly faster via improved computation of functional, gradients and curvatures (#1639)
- ``dials.integrate``: Added parameter ``valid_foreground_threshold=``, to require a minimum fraction of valid pixels before profile fitting is attempted (#1640)

Bugfixes
--------

- ``dials.cosym``: Cache cases where Rij is undefined, rather than recalculating each time. This can have significant performance benefits when handling large numbers of sparse data sets. (#1634)
- ``dials.cosym``: Fix factor of 2 error when calculating target weights (#1635)
- ``dials.cosym``: Fix broken ``engine=scipy`` option (#1636)
- ``dials.integrate``: Reject reflections with a high number of invalid pixels, which were being integrated since 3.4.0. This restores better merging statistics, and prevents many reflections being incorrect profiled as zero-intensity. (#1640)
DiamondLightSource-build-server added a commit that referenced this pull request Apr 1, 2021
Features
--------

- ``dials.cosym``: Significantly faster via improved computation of functional, gradients and curvatures (#1639)
- ``dials.integrate``: Added parameter ``valid_foreground_threshold=``, to require a minimum fraction of valid pixels before profile fitting is attempted (#1640)

Bugfixes
--------

- ``dials.cosym``: Cache cases where Rij is undefined, rather than recalculating each time. This can have significant performance benefits when handling large numbers of sparse data sets. (#1634)
- ``dials.cosym``: Fix factor of 2 error when calculating target weights (#1635)
- ``dials.cosym``: Fix broken ``engine=scipy`` option (#1636)
- ``dials.integrate``: Reject reflections with a high number of invalid pixels, which were being integrated since 3.4.0. This restores better merging statistics, and prevents many reflections being incorrect profiled as zero-intensity. (#1640)
DiamondLightSource-build-server added a commit that referenced this pull request Apr 1, 2021
Features
--------

- ``dials.cosym``: Significantly faster via improved computation of functional, gradients and curvatures (#1639)
- ``dials.integrate``: Added parameter ``valid_foreground_threshold=``, to require a minimum fraction of valid pixels before profile fitting is attempted (#1640)

Bugfixes
--------

- ``dials.cosym``: Cache cases where Rij is undefined, rather than recalculating each time. This can have significant performance benefits when handling large numbers of sparse data sets. (#1634)
- ``dials.cosym``: Fix factor of 2 error when calculating target weights (#1635)
- ``dials.cosym``: Fix broken ``engine=scipy`` option (#1636)
- ``dials.integrate``: Reject reflections with a high number of invalid pixels, which were being integrated since 3.4.0. This restores better merging statistics, and prevents many reflections being incorrect profiled as zero-intensity. (#1640)
- Fix rare crash in symmetry calculations when no resolution limit could be calculated (#1641)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants