Design a dynamic bypass pipeline
Objective
Design a new pipeline architecture that can handle dynamically changing between bypassed ifos in postcoh, or at least develop a solution that allows us to run multiple bypass pipelines in parallel given our hardware constraints.
Summary
Currently, our bypass branch must be hard-coded with the full set of detector (ifo) streams, as well as the partitioned ifos (i.e. bypassed ifos). This means that if we set up a pipeline with HLV and set Virgo to be bypassed, the pipeline will remain in this configuration for the entire duration of its run - it cannot be changed without shutting the pipeline off and restarting.
The ideal setup for bypass should be something that is dynamic, or at least can handle the case of selecting arbitrary detector streams after based on some reasonable and well researched decision function.
Possible Tests for Implemented Solution
Ideally, we would like to run a set of injection tests and verify that the results of our bypass pipeline are correct. For example, some potential tests that we might want to run are:
- Compare a HL run before the bypass commit with a HL bypass V run after the bypass commit.
- Compare a HLV run before the bypass commit with a HL bypass V run after the bypass commit.
- Compare a HLV run before the bypass commit with a HLV run after the bypass commit - disabling all bypass logic should yield no changes to our pipeline outputs.
- Bypassing any combination of valid detectors should still produce valid scientific results.
- Verify whether or not bypass code preserves determinism.