[PIPE2D-506] Migrate code to use LSST gen3 middleware Created: 07/Jan/20  Updated: 26/May/22  Resolved: 26/May/22

Status: Done
Project: DRP 2-D Pipeline
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Story Priority: Normal
Reporter: hassan Assignee: price
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Screen Shot 2022-05-06 at 3.21.20 PM.png     PNG File Screen Shot 2022-05-06 at 3.28.15 PM.png    
Issue Links:
Blocks
blocks PIPE2D-597 DRP and ICS have conflicting requirem... Open
is blocked by PIPE2D-598 Upgrade base LSST stack to latest ver... Done
Relates
relates to PIPE2D-1031 Check quality of Gen3 reduction compa... Open
Story Points: 4
Sprint: 2DDRP-2022 B, 2DDRP-2022 C, 2DDRP-2022 D
Reviewers: hassan

 Description   

Following PIPE2D-442, the 2D DRP pipeline makes use of the LSST stack v18.1.0 that contains the generation-3 (Gen3) middleware for pipeline tasks and butler I/O. The gen2 middleware that is currently being used by the pipeline will be phased out around the end of 2020. To avoid potential disruptions during commissioning, migrate code to use the gen3 middleware.



 Comments   
Comment by price [ 05/Mar/20 ]

This ticket should be blocked on another ticket to upgrade the LSST base stack.

Because a ready Gen3 middleware is not yet available, and Gen2 will be supported for at least another year, I suggest we needn't think about this ticket for another six months. The right time to think about this will be when LSST start using Gen3 for their fortnightly RC2 runs.

Comment by price [ 05/Mar/22 ]

Thought: the Gen3 butler doesn't care about filename templates. We're going to need a facility to extract files from the butler and write them with the correct filename template for distribution.

Comment by price [ 03/May/22 ]

I've got the entire calib and science pipelines working under Gen3. There is more work that needs to be done, but having this merged will allow us to work on the below tasks one by one:
1. Add scripts to export products from the Gen3 datastore.
2. Check quality of Gen3 reduction compared to Gen2.
3. Add Gen3 support to bootstrapDetectorMap and new flux calibration tasks from NAOJ.
4. Check that we can run real data with Gen3.
5. Write Gen3 PFS user guide.
6. Port weekly to Gen3.
7. Set up shared Gen3 datastore with Postgresql registry.
8. Regenerate Subaru calibs with Gen3.
9. Investigate bash completion for "butler" and "pipetask" commands.
10. Investigate parsl plugin for processing on cluster.

This effectively replaces PIPE2D-598: there's little point in merging that one if we're going to merge this one soon after, as it requires another change to the base LSST stack, from 23.0.0 to w_2022_17.

Comment by hassan [ 07/May/22 ]

Reviewed pull requests related to this ticket. Changes look fine.

Also looked at the pfsMerged output from an example SuNSS visit (71280) processed with the tickets\PIPE2D-506 branches and with a recent weekly w.2022.18. A 'spectral image' (generated using the showAllSpectraAsImage utility but setting the flux as the difference of the flux values between the two processing runs is shown in figures and In general the difference is close to zero, with the difference at the blue end being noiser. A strange feature around 502nm for fiberIds around 338 is seen. As suggested by Paul, and agreed, this should not stop the merging of this ticket. Future work on such anomalies can be addressed as part of PIPE2D-1031.

Comment by rhl [ 07/May/22 ]

I'd have expected the results to be equal to close to machine precision. This needs to be investigated, but doing so as part of PIPE2D-1031 is fine.

Comment by price [ 07/May/22 ]

My first guess is that there are configuration parameters that differ between the pipelines. This is exactly what PIPE2D-1031 was created for. We will not drop Gen2 support until we are convinced the Gen3 pipeline is performing at the level of Gen2.

Comment by price [ 10/May/22 ]

Merging this work soon is important, since there are a bunch of changes that I don't want to conflict with other work. On the other hand, we don't want to merge such a large change right before the observing run on the off chance that it causes problems. I propose to merge immediately after the observing run, and in the mean time base other non-urgent work off of this ticket branch.

Comment by price [ 26/May/22 ]

Merged.

Generated at Sat Feb 10 15:54:11 JST 2024 using Jira 8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b.