Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: ctrl_mpexec
-
Labels:
-
Story Points:1
-
Epic Link:
-
Sprint:DB_F20_06
-
Team:Data Access and Database
-
Urgent?:No
Description
In DM-26119 I learned that when pipetask uses multiprocessing we never instantiate an Instrument and therefore we never define the filters for that instrument in the global singleton.
In single process mode it's fine because at some point an Instrument is created.
Modify pipetask multiprocessing such that the dataIds are scanned for the "instrument" dimension and we call Instrument.fromName(dataId["instrument"], registry). Currently we only expect one instrument.
When the singleton is removed it's likely that some related initialization will be needed to register the filters but we assume that would allow the same initialization for multiple instruments.
CC/ Krzysztof Findeisen, John Parejko in case they have come across this problem before.
I want to add that it's not just in multiprocessing that the Instrument isn't instantiated. I've noticed that when running my in-progress fgcmcal pipetask that I have to instantiate the Instrument manually. So in a single process for some tasks, the Instrument is created somewhere, incidentally, but not through any explicit pattern. Should this be explicitly done somewhere in pipetask as well/instead of the multiprocessing run?