DIALS core meeting 2021-05-06
Previous Actions
- MG: organise a typing intro lecture, likely to happen in June.
- ND to set up a
cbflib_adaptbx
pull request for MAR detector fixes. Verify withlabelit_regression
. - dx2 proposal
- MG to put in a PR to create a proposal in the proposal-space
- MG+ND: Come up with a proposal to move away from all code being in header files and consolidate into a single library
- Move to
hdf5plugin
- MG to come up with a set of spells to use
hdf5plugin
$ conda install hdf5plugin mamba $ mamba remove hdf5-external-filter-plugins{,-bitshuffle,-bzip2,-lz4}
- GW to run a performance comparison
- Provided an initial version of performance comparison code – we can run this with different plugins to assess whether there is any difference in run-time just paging through the data.
- MG to come up with a set of spells to use
- Cosym clustering code removal: (discussion) Merge dials/dials#1647
- Has downstream had the correction commits?
- cbflib conda-forge package
- ND: Try using old cbflib 0.9.6 (allowing regenerated pycbf) to see if it would be suitable for DIALS/dxtbx to release just the old version
- AB: Create PR to DIALS for
xfel_regression
tests for further discussion/study. →dials#1671, see below.
Agenda
hdf5plugin
performance evaluation
HDF5 performance evaluation – comparing hdf5plugin
with hdf5-external-plugins
package. simply read 3,600 images from an Eiger 16M data set:
import h5py
import sys
import time
with h5py.File(sys.argv[1], "r") as f:
shape = f["/entry/data/data"].shape
t0 = time.time()
for j in range(shape[0]):
image = f["/entry/data/data"][j]
t1 = time.time()
print(f"Reading {shape[0]} images took {(t1-t0):.2f}s")
Using hdf5-external-plugins
:
$ time dials.python benchmark.py ../data/*nxs
Reading 3600 images took 270.23s
real 4m30.382s
user 2m46.693s
sys 1m43.610s
With hdf5plugin
:
Added
import hdf5plugin
to imports then run:
$ time dials.python benchmark.py ../data/*nxs
Reading 3600 images took278.19s
real 4m38.331s
user 2m39.540s
sys 1m58.604s
8s of 280 or so more time (2.5%) → this may or may not be a thing we care about, but the performance is comparable. EOF.
Outcome: We will move to hdf5plugin
, make a pull request and then review.
Adding XFEL-regression to dials Azure tests (dials#1671)
- MG has updated the Azure scripts for DIALS tests in #1676.
- MG looked at using pre-built cctbx in tests.
- For dxtbx this works nicely. Relevant PR is dxtbx#351, which is ready to be merged.
- Didn’t want to spend considerable effort getting this to work for dials before having the dxtbx PR above signed off.
- Have timeout problems gone away?
- Have we resolved issue of protocols for merging PRs/making changes when tests fail?
- Tests will run in the PR build only, so not on every push
Outcome: Merge dxtbx#351, then MG to look at the actual XFEL-regression pull request
cbflib conda-forge package
- Keeping tests passing on Debian downstream - this is an essential use case and new releases cannot cause debian changes in any way
- HB estimates graduate student project with approximately 3 months of effort required
- Action: Nick to do testing: Trying current release - regenerate pycbf but leave old sources; and see if it works
- we could just release 0.9.6 on conda-forge with some light patching over the top if this works
dxtbx#288 “Construct Experiments directly” post-merge outstanding issues
Python 3.6 Support
- Releases are now built with 3.8
- Do we want to consider dropping support for 3.6?
We currently have an agreement in place in dials#1327 to follow conda-forge which aim to follow NEP-29. This is less well defined than following NEP-29.
Outcome: Put in a proposal (“DC3”) to follow NEP-29 directly, with a bit of additional allowance around releases, as in dials#1327.
⇒ DC3 proposal written up in dials/kb#5
Updating pre-commits
We currently update the black pre-commit whenever a new version appears.
While this is currently a rare occurrence, it is annoying for one commit (due to the installation time), and possibly requires updating other packages in the environment (eg. pre-commit
itself).
Q: Should we stop automatically updating pre-commits and turn those updates into conscious moves?
Outcome: Yes. ND to remove.
Next meeting
Thursday, May 20th, 4pm UK (BST), 8am PDT.