Daskify LISA Instrument
As discussed during the simulation optimization workshop from 25.-29.11.2024 in Paris, we will convert LISA Instrument to use Dask to handle arbitrarily long time series.
The strategy for this purpose is to create smaller feature branches on top of one main branch.
The current envisioned order of features is:
- Noise generation [JB]
- Only involves noises.py
- Create a new module dasknoise.py and keep the interface unchanged (except for this additional chunk parameter)
- Needs to Daskify pyplnoise
- This is expected to break determinism when using the same master seed. Once this is done, the remaining Daskification can be checked with equalities, as it should remain deterministic.
- Daskify init (time array creation) [Olaf]
- Chunked evaluation of interpolants [Wolfgang]
- Implement a utility function (if needed, but not sure, probably can just use map_overlap)
- Change reading of fplan, orbits, and glitch files to return interpolants
- Call those interpolants with Dask arrays
- Chunked filtering and downsampling [Wolfgang]
- Utility function for IIR/FIR filter
- Replace aafilter and downsample functions
- Chunked interpolation
- Implement chunked interpolation
- Replace GW file reading
- Main simulation code
- Daskify simulate_noises and simulate and lock function
- Clock inversion
- Writing to HDF5 (easy)
All changes to the main code are directly applied to the lisainstrument.instrument.Instrument
class.
Edited by Olaf Hartwig